Anecdotally, I sometimes notice my computer fan spinning ferociously... it's almost always because I have left a firefox tab with linkedin open somewhere.
Are they bit coin mining or are they just incompetent?
I wonder to what extent the complexity of the rust language hurts performance. We all only have so much mental capacity, if much of it is spent on the various different intersections of rust's features, that reduces how much we can spend on making things fast.
The alternatives with the potential to be as fast (C, C++, D, zig) are more complex in this regard because they make memory safety and lifetime tracking something that you have to keep track of in your head. Rust's biggest win is removing that mental overhead while allowing you to achieve the same performance as those other languages.
Other languages remove lifetime tracking by making you track it in very limited spots. Instead of "for each individual object", you track it for "this particular kind of object in this part of my application".
I.e. don't need to keep track of the memory for each allocation in my HTTP request and make sure I clean it up before closing the connection, I can just allocate some memory _per request_, put stuff in it, and at the end it gets cleaned up, whether I used the memory or not.
Some languages have the idea of "memory allocators" as a native construct, so that you can actually start thinking about managing memory in more sensible terms than "everything individually", e.g. Odin lang.
Rust also hides allocation, and both the standard library and community best practices encourage many smaller allocations, which makes it much harder to reason about performance characteristics of your code.
So what you say is definitely true if you do an allocation heavy, heap fragmenting, RAII style of programming. Which is the context Rust was born in, right? A kind of C++ app dev context where that was (is?) the prevailing meta.
You're also completely glossing over the incredible complexity you get in all thee weird intersection of rust features. And there are a LOT of features. Reasoning about those are not free from a mental overhead stand point.
Does it? In Rust you allocate by calling a function. That's exactly the same as C. Are there any langauges that don't allow you to hide allocation behind a function call?
> So what you say is definitely true if you do an allocation heavy, heap fragmenting, RAII style of programming.
I don't think Rust encourages lots of small allocations. Most of the Rust code I work with does a lot of arena allocation (using crates like https://github.com/orlp/slotmap) and reusing of allocations. And for that matter a lot of stack allocation avoiding the heap entirely. And it's borrowing system is fantastic for working with shared pointers to data without having to worry that something might accidentally overwrite it.
> You're also completely glossing over the incredible complexity you get in all thee weird intersection of rust features.
I don't really buy that Rust is complex. More complex than C I suppose (but C just pushes all the complexity into making you write 5x more application code), but closer to something like Java than something like C++.
The borrow checker definitely adds complexity over Java. But Rust also removes complexity that is in Java. For example, inheritance and exceptions. Overall I do think Rust is a bit more complex than Java, but I don't think the difference is all that great.
I don't think Rust is all that complex. On the other hand Java has many obscure features like serialVersionUID. For that matter, even fucking JavaScript is more complex than Rust with its var vs let, == vs ===, how, e.g., an empty array is false, parsing Date, how to make a "deep copy," etc, and TypeScript's type system can run Doom.
As a bit of an aside, I've gotten back into deno after seeing bun get bought out by an AI company.
I really like it. Startup times are now better than node (if not as good as bun). And being able to put your whole "project" in a single file that grabs dependencies from URLs reduces friction a surprising amount compared to having to have a whole directory with package.json, package-lock.json, etc.
It's basically my "need to whip up a small thing" environment of choice now.
IE as the right is becoming more anti-Israel, you find a lot more pro Islamic Republic stuff there these days. The boomer and zoomer right are very different beasts.
I don't follow the left as closely these days, but imagine there are a myriad of opinions on the matter.
Roger Waters is a boomer but reflects the zoomer left well. (To be clear I will be forever grateful to him for his music but he should really stop talking when it comes to the Iranian and Ukrainian people)
right, Russia/Ukraine is another thing which isn't as neatly left/right as people think.
I used to read the English version of Russia today, and it was almost comical to seem them oscillate articles that fit the "Based Mother Russia of Traditional Values" trope, then right next to it nostalgic Tankie stuff or the anti "Western Imperialist" think pieces. It's like they didn't even know who their useful idiots were anymore.
This is very well said - it is much nicer and more professional than the sentiments I could express on the matter.
The age of niche tech microcelebrities is on us. It existed a bit in the past (ESR, Uncle Bob, etc), but is much more of a thing now. Some of them make great content and don't say ridiculous things. Others not so much.
Are they bit coin mining or are they just incompetent?
reply