4 ms·
I think it is, especially for higher level software. People are rewriting I/O bound applications from garbage collected languages and the top two reasons they c
by jstx1 4y ago
I think it is, especially for higher level software. People are rewriting I/O bound applications from garbage collected languages and the top two reasons they cite are performance and memory safety - it's just peak stupidity.
Rust isn't even that popular yet and already more people are using it than actually need to.
- bmitc 4y agoI sometimes feel like I'm taking crazy pills happily toiling away in F#. Am I missing the boat or am I on it? Or maybe it is me lamenting the idea that languages like Rust get all this mindshare to create interesting libraries. There are lots of interesting languages out there for all sorts of purposes, but as far as I can tell, F# is the sweet spot of general purpose language design. My only wish is a very similar subset of the language for embedded programming, and no, that isn't Rust. (I love Elixir as well, but it definitely gets a lot of attention and isn't as general purpose.)
- akkad33 4y agoI didn't know this many people used F#. Already I saw it mentioned twice in front page comments here :)
- bmitc 4y agoIt's my favorite language, but I wouldn't get your hopes up. :( By the way, do you mind pointing to where else it was mentioned?
- Farmadupe 4y agoHonestly I think your observation is mostly right... if you don't have a hard performance requirement, then rust probably isn't the best language to write your code in...
- aeturnum 4y agoI agree that, if your main reaction to the various approaches Rust supports is "why do I need all this?" that's a sign of a mismatch between your engineering goals and the functionality the language is providing. Either just pick an option and it will be fine (b/c rust is fast and has good checks) or pick another language that makes the choice for you and it will be fine because the compiler made the choice you did not want to.
- raincole 4y agoOf course in some cases GC langauges are simply not enough, and I'll vote for Rust than C++ in these cases. But I really don't understand why people use Rust for scenarios that a GC language works.
- dmix 4y ago> But I really don't understand why people use Rust for scenarios that a GC language works. This entire article's thread is littered with generalizations without context/nuance so you're probably right. I don't think most people could rationalize it beyond those usecases. Especially considering 90% of us on HN are building SaaS and business software or stuff unrelated like games/data science. Maybe even more than 90%. For the rest of us doing non-Rust applicatiable software to pay ou4 bills GC by default and Rust where it matters is more than sufficient. And usually the Rust part means libraries since we can't all have dedicated dudes doing optimization type software. Or maybe I'm biased cuz I work for Startups.
- BoorishBears 4y agoI've said it before, you must really hate your employer if you're migrating from high level languages to Rust. If you want a sure fire way to make sure hiring costs more, development progresses slower, and time that would otherwise spent on delivering business value is instead spent on engineering rigor, move that Java monolith to Rust today. (to be clear, this isn't an indictment of Rust, it's simply the idea of going from established high level languages to any unmanaged language)
- shrimp_emoji 4y ago>and time that would otherwise spent on delivering business value is instead spent on engineering rigor, move that Java monolith to Rust today. Oh no. I would hate more engineering rigor at the cost of business value! Please, anything but that. After all, that's why I majored in business instead of CS.
- BoorishBears 4y agoThis mentality is why the industry is having layoffs. You should have stayed in academia if you didn't want to worry about business value. No field is exempt from the need to balance the two. We could make planes safer by making them cost 100x as much and then no one would be able to afford to fly. The difference between an ok engineer and an exceptional engineer is being able to pull your head out of the weeds and realize no piece of engineering exists in isolation.
- sshine 4y agoI’ve experienced two startups choosing Rust. The main slowdown factor is that everyone is a Rust novice and are not highly productive from day zero. In both cases, prototypes are built with Python to sketch out architecture and not limit the design phase. It feels like bamboo scaffolding being replaced with reinforced concrete once the company has developed the skills and the models. In the case of these two startups, their main domains were cryptography and embedded. You can’t just pick a language like Java, C# or Python. The strategically safe alternative here is C/C++. I’m happy they chose Rust; it was a deciding factor for me when choosing between two embedded jobs.
- Hermitian909 4y ago> I think it is, especially for higher level software. People are rewriting I/O bound applications from garbage collected languages and the top two reasons they cite are performance and memory safety - it's just peak stupidity. One failure mode I see lead to this in JS is that sometimes you have a program that is usually IO bound but certain paths are CPU eaters. If the CPU eating workload is entirely synchronous this interacts badly with the event loop architecture because there's no scheduler (at the JS level) to interrupt the workload and handle outstanding IO work. My guess is that many devs are unable to diagnose this issue correctly and jump straight to Rust. The sweet spot for Rust in high level software really seems to be using it in small doses. My shop is 99% JS but just a little bit of Rust in the right places gamechanger: millions of savings in cloud spend, big UX improvements on key workflows, new architectural capabilities. I don't know if we would have taken the plunge with C++ for most of those cases out of fear of the potential operational issues.
- miohtama 4y agoNowadays it is easy to mix in Rust in higher level languages. If there are certain critical paths only those paths can be rewritten in Rust or offloaded to a separate process.
- Xenoamorphous 4y agoWhat about worker threads? When I’ve hit some CPU intensive task in Node I simply offload it to them.
- RcouF1uZ4gsC 4y ago> People are rewriting I/O bound applications With 10 Gb Ethernet and NVMe SSDs, I/O bound doesn’t mean what it used to. 10 Gb Ethernet and NVMe SSDs can expose the garbage collected language as the bottleneck pretty easily.