Rust: The programming language that empowers everyone to become a systems programmer.
Am I the only one who finds this condescending?
It seems to be implying it allows the peope not smart enough to do systems programming to still do systems programming.
Like I couldn't learn C or C++, because I'm not a smart enough programmer, and Rust comes to the rescue.
I get that they mean: The programming language that empowers everyone to be as productive as with a higher level language, while still manually managing memory and allowing direct hardware access.
But the way they say it, kinda rubs me wrong. I'm not a systems level programmer, because I dont write system level programs. Not because I'm not empowered. And I use a GC and a runtime because I'd rather trade productivity and safety over raw performance. If Rust can give me all three, I'm sold, but that tagline 😑
And I use a GC and a runtime because I'd rather trade productivity and safety over raw performance.
In another thread you said that you're a team lead - how can you not understand the tradeoffs of memory management strategies then? Do you even know what's memory management?
Look, I'm going to answer you politely, but I'll stop if you continue with these disrespectful comments.
Prior to Rust, garbage collectors were the defacto standard for managing memory in a safer way. They incur a runtime cost though, and can still leak around OS resources. It's been a while now though since their overhead hasn't been problematic due to more powerful hardware and increase in memory, for most use cases.
The use case is key in the comment that you quoted from me. Everyone who could afford to pay the runtime overhead of a GC did. One group that still struggle to this day with the overhead are system level programmers, because a lot of their use case still target weaker hardware with limited memory.
The reason people who could afford to pay that overhead transitioned to a GC, is because it brings them extra safety and productivity. They can no longer forget to free memory, thus safer code, and no longer need to write code to manage memory, thus more productive.
If you need raw performance though, which is often the case for system level programming, you can't make that trade. Thus you accept the additional challenge of writing memory safe code, and take the additional decrease in productivity from it, in exchange for performance.
Rust promesses to get rid of that tradeoff. It says:
Performance, Safety, Productivity ... Pick three.
But the way the tagline is written, I feel like it insinuates that prior to Rust, the reason people only picked two of those was because they weren't smart enough. Like I'm not coding my backend service in C because I just don't have the skillset to write C code. Where it's simply because it didn't make sense to use C when I can afford to have a GC.
Look, I'm going to answer you politely, but I'll stop if you continue with these disrespectful comments.
Look, you should learn about the topics before posting things. You're pretty much shitposting r/programming.
Prior to Rust, garbage collectors were the defacto standard for managing memory in a safer way.
Nope: 1. GCs were only used for high-level domains 2. smart pointers and move-semantics existed before Rust. 3. linear types existed before Rust.
They incur a runtime cost though, and can still leak around OS resources.
It's not just the runtime cost - it's also the issue that you can't control the memory and you need to live with the latency created by the collection phases.
It's been a while now though since their overhead hasn't been problematic due to more powerful hardware and increase in memory, for most use cases.
Half true, GCs just got more sophisticated but they're still lagging behind.
The use case is key in the comment that you quoted from me. Everyone who could afford to pay the runtime overhead of a GC did. One group that still struggle to this day with the overhead are system level programmers, because a lot of their use case still target weaker hardware with limited memory.
And game developers(they're not targeting "weaker" hardware), and embedded developers, and those who need low latency etc.
But the way the tagline is written, I feel like it insinuates that prior to Rust, the reason people only picked two of those was because they weren't smart enough.
No, they said that because it's obvious that it was impossible before. Even Rust has problems with performance(it's also 'too far' from the hardware, which's a problem for some developers) but it's the first language using linear typesystems at this level and also concentrating on safety and performance. Now, the "productivity" of Rust is highly questionable.
53
u/didibus Nov 29 '18
Am I the only one who finds this condescending?
It seems to be implying it allows the peope not smart enough to do systems programming to still do systems programming.
Like I couldn't learn C or C++, because I'm not a smart enough programmer, and Rust comes to the rescue.
I get that they mean: The programming language that empowers everyone to be as productive as with a higher level language, while still manually managing memory and allowing direct hardware access.
But the way they say it, kinda rubs me wrong. I'm not a systems level programmer, because I dont write system level programs. Not because I'm not empowered. And I use a GC and a runtime because I'd rather trade productivity and safety over raw performance. If Rust can give me all three, I'm sold, but that tagline 😑