That’s the case of for any optimization work, really
- 0 Posts
- 46 Comments
The problem is not the conclusion*. The problem is that the method used to reach it is terrible.
As you say, you could look at license popularity on GitHub, and the author should have done something like that, but even those statistics have to be interpreted carefully:
Each data point corresponds to the rank of a license based on the count of unique developers who uploaded code to a repository subject to the terms of that license during a given quarter.
In other words, this measures how many developers are commiting code under each license, and thus is more of a reflection of the popularity of software under each license, rather than the licenses themselves.
Perhaps a more meaningful measure would be how many (unique) repositories are created with each license, since a developer commiting code to a repo does not mean that they favor the license of that repo. I couldn’t find numbers for 2025, but amusingly these totals from 2020 suggest that no license is the most popular license, followed by MIT and then Apache
* The majority of my own code is MIT, by a large margin-
The way to really optimize Python code, is by reducing the amount of Python code in your program, since Python itself is dog slow. Instead, you want to offload as much of the work as possible to modules written in compiled languages. So completely switching to Rust, or another compiled language, is simply taking that strategy to its logical conclusion
fruitcantflyto
Privacy•Is DeleteMe.org real? Looks too good to not be a data stealing scam.
4·5 days agoIf it sounds too good to be true, then it’s probably not true
Loop labels are rare, but they lead to much simpler/clearer code when you need them. Consider how you would implement this kind of loop in a language without loop variables:
'outer: while (...) { 'inner: while (...) { if (...) { // this breaks out of the outer loop, not just the inner loop break 'outer; } } // some code here }In C/C++ you’d need to do something like
bool condition = false; while (...) { while (...) { if (...) { condition = true; break; } } if (condition) { break; } // some code here }Personally, I wouldn’t call it ugly, either, but that’s mostly a matter of taste
C++ is even worse, due to templates and the so-called most vexing parse. Initializing with
{}mitigated the latter somewhat, but came with its own set of woes
In practice, type inference in Rust is not a problem since the language is so strongly typed. In fact, it is more strongly typed than both C and C++, and will force you to cast values explicitly in cases where C and C++ will happily mess up your variables without warning. The absence of type inference would also be a major pain, since nested types such as iterators can get quite complex and very verbose. If you’ve programmed using older C++ standards, then you know this pain
I believe that it is useful in a few places. cppreference.com mentions templates as one case:
Trailing return type, useful if the return type depends on argument names, such as
template<class T, class U> auto add(T t, U u) -> decltype(t + u);or is complicated, such as inauto fpif(int)->int(*)(int)The syntax also matches that of lambdas, though I’m not sure that adding another way of specifying regular functions actually makes the language more consistent, since most code still uses the old style.
Additionally, the scope of the return type matches the function meaning that you can do
auto my_class::my_function() -> iterator { /* code */ }instead of
my_class::iterator my_class::my_function() { /* code */ }which is kinda nice
With Rust you safe 1 char, and gain needing to skip a whole line to see what type something is.
Honestly, the Rust way of doing things feels much more natural to me.
You can read it as
- Define a function,
- with the name
getoffmylawn, - that takes a
Lawnargument namedlawn, - and returns a
bool
Whereas the C function is read as
- Do something with a
bool? Could be a variable, could be a function, could be a forward declaration of a function, - whatever it is, it has the name
getoffmylawn, - there’s a
(, so all options are still on the table, - ok, that’ a function, since it takes a
Lawnargument namedlawn, that returns abool
Amusingly, modern C++ allows you to copy the rust signature nearly 1:1:
auto getofmylawn(Lawn lawn) -> Option<Teenager> { return lawn.remove(); }
At this point the people complaining about Rust at every opportunity have become more annoying than the “rewrite it in Rust” people ever were
fruitcantflyto
Steam•Over 19,000 games have released on Steam in 2025, with nearly half seeing fewer than 10 reviews
21·12 days agoI’m sure that these are gems, but they are not hidden; going by Steamdb, these games are all in the top 3% most popular games on Steam, based on the total number of reviews:
- Toem: 9,500 reviews on Steam
- Ghost of a Tale: 5,000 reviews on Steam
- Lost in Random: 5,000 reviews on Steam
- We Were Here: 31,000 reviews on Steam
Almost forgot: I don’t think that I can name a truly hidden gem, but Deathbulge is pretty good and has a mere 360 reviews on Steam. Which is still more than the vast majority of indies, of course.
The article is about an internal kernel API: They can easily rename those, since they are not exposed to user-space.
But you seem to be talking about the
killcommand and/or thekillfunction, that are part of the POSIX and C standards, respectively. Renaming either would break a shit-ton of code, unless you merely aliased them. And while I agree thatkillis a poor name, adding non-standard aliases doesn’t really offer much benefit
I set the timestamps of my music to its original release date, so that I can sort it chronologically… OK, I don’t actually do that, but now I’m tempted
fruitcantflyto
Hardware•Redditor receives rocks instead of $1200 RTX 5080 GPU, Best Buy investigation finds no issue
9·20 days agoMy point was taking a picture of a box of rocks doesn’t prove the rocks were there before you opened the box. And if you disagree, explain your reasoning.
Those rocks don’t look igneous to me, so they have most likely been there for millions, if not billions of years before they opened the box
How the fuck can it not recover the files?
Undeleting files typically requires low-level access to the drive containing the deleted files.
Do you really want to give an AI, the same one that just wiped your files, that kind of access to your data?
What do you want me to write?
To meet the bar set by onlinepersona, you’d need to write safe C code, not just some of the time, but all of the time. What you appear to be proposing is to provide evidence that you can write safe C code some of the time.
It’s like if somebody said “everyone gets sick!”, and some other person stepped up and said “I never get sick. As proof, you can take my temperature right now; see, I’m healthy!”. Obviously, the evidence being offered is insufficient to refute the claim being made by the first person
I’m surprised that you didn’t mention Zig. It seems to me to be much more popular than either C3 or D’s “better C” mode.
It is “FUD” if you ask why it’s still const by default.
I’d be curious if you could show any examples of people asking why Rust is const by default being accused of spreading “FUD”. I wasn’t able to find any such examples myself, but I did find threads like this one and this one, that were both quite amiable.
But I also don’t see why it would be an issue to bring up Rust’s functional-programming roots, though as you say the language did change quite a lot during its early development, and before release 1.0. IIRC, the first compiler was even implemented in OCaml. The language’s Wikipedia page goes into more detail, for anyone interested. Or you could read this thread in /r/rust, where a bunch of Rust users try to bury that sordid history by bringing it to light
Makes memory unsafe operations ugly, to “disintensivise the programmer from them”.
From what I’ve seen, most unsafe rust code doesn’t look much different compared to safe rust code. See for example the Vec implementation, which contains a bunch of unsafe blocks. Which makes sense, since it only adds a few extra capabilities compared to safe rust. You can end up with gnarly code of course, but that’s true of any non-trivial language. Your code could also get ugly if you try to be extremely granular with
unsafeblocks, but that’s more of a style issue, and poor style can make code in any language look ugly.Has a pretty toxic userbase
At this point it feels like an overwhelming majority of the toxicity comes from non-serious critics of Rust. Case in point, many of the posts in this thread
That bug does sound bad, but it is not clear to me how a BTRFS specific bug relates to it supposedly being more difficult to recover (or backup) when using whole-disk encryption with LUKS. It seems like an entirely orthogonal issue to me




If anything, self-hosting puts you more at risk, since in that case the government will know exactly who to lock up, or $5 wrench, until they get the information they want