6 ms·
Hard to predict what the "Future" is. Rust fills a niche. It's not the answer to everything. The learning curve is steep, and for many applications, the benef
by jedisct1 7y ago
Hard to predict what the "Future" is.
Rust fills a niche. It's not the answer to everything.
The learning curve is steep, and for many applications, the benefits are nonexistent.
Although you can use Rust (or anything, even Bash if that's your thing) to write web applications, Ruby, Python, PHP and Javascript are far more productive and this is not going to change tomorrow.
Rust's borrow checker doesn't add anything besides complexity here.
Go is also a nice balance between being simple to use and powerful as a system language (unless "has no GC" is how you define a system language).
Swift has most of the best parts from the language above.
Crystal is a pleasure to write and runs fast.
Zig may eventually get more traction.
Something like Rust, but accessible, readable, that compiles quickly, is stable and has a natural way to do async operations could quickly make Rust obsolete.
- maerF0x0 7y ago> Triplett broadly defines systems programming as “anything that isn’t an app.” It includes things like BIOS, firmware, boot loaders, operating systems kernels, embedded and similar types of low-level code, virtual machine implementations. Triplett also counts a web browser as a system software as it is more than “just an app,” they are actually “platforms for websites and web apps,” he says. Even though I love golang and use it daily for my job, I'd suggest that golang is not a good fit for Triplett's definition for systems programming.
- sanderjd 7y agoAh that quote actually clarified for me why browsers feel different than "normal" applications: in their role as a platform for other applications, they have a lot in common with straight-up VMs.
- geodel 7y agoBut then Triplett's definition for systems programming is not some ISO standard. In lot of companies I have seen they call their large internal applications development as systems programing. Also compilers, runtimes, GCs, databases, cloud schedulers (Kubernetes etc) are also not 'apps' could fit in systems programing definition.
- deleted 7y ago[deleted]
- onebot 7y agoI often see "steep learning curve" cited as a negative about Rust. But I think it is far less of a learning curve than it is to be a reliable C and C++ programmer. I am not sure how much Rust you have done yet, but the borrow checker is a tremendous confidence booster. Especially refactoring code. I have never had anything where I can feel at ease in making big changes to an existing code base. As all things, I don't think you notice it once you learn how to write safe Rust code. Go is certainly a good balance. One of its best things is the rich standard library. I wish Rust took more of that approach. One thing about Rust that is maybe overlooked is that it is, like C/C++, truly "full-stack". By that I mean you can go from low level embedded (microcontroller with no MMU) all the way up to web server, etc. I don't think it is really a "niche" language--at least it has a very horizontal use case. Having been at this for a super long time, I have seen the popularity languages come and go from ASM, Perl, Java, Python, .Net, etc. I can assure you nothing is gonna "quickly" make another language obsolete. New languages are incredibly hard to get off the ground and be relevant for a long time.
- EpicEng 7y ago>I often see "steep learning curve" cited as a negative about Rust. But I think it is far less of a learning curve than it is to be a reliable C and C++ programmer. Man of us are already competent in C and/or C++, so to make a move there has to be a big value prop if it's a large investment. I'm not saying there's not, but most of us aren't deciding to pick up C, C++ or Rust from scratch.
- onebot 7y agoYeah totally agree for the experienced C/C++ developer, it is like unlearning all the things that make you good. Totally agree. Good developer is like building a series of great mental models. It is hard to start over. Like trying to do linked lists in Rust... But that being said, when you see that the majority of vulnerabilities are essentially memory lifetime issues (https://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/ https://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe...), you realize that we are all human. So something like Rust could help--especially new developers.
- pizza234 7y ago> Crystal is a pleasure to write and runs fast. Crystal has no support for parallel execution, which is an important feature nowadays, at least, when one compares it to Go and so on.
- jedisct1 7y agohttps://github.com/crystal-lang/crystal/pull/8112 https://github.com/crystal-lang/crystal/pull/8112
- Kaveren 7y agoGo is a garbage language which tries to incrementally improve upon C but is afraid to do any real innovation. It's awful. PHP is not at all more productive than Rust. You might write code a little faster, but PHP is the worst programming language in modern widespread use, so the gains from typing are all lost by PHP code being more prone to bugs and less easy to reason about. Worst type system known to man. You could replace any of the other languages you mentioned with Rust as well, while maintaining positive net productivity (contingent on availability of libraries, but let's assume we're talking about the language itself). Nobody says it was the answer to everything anyway, the claim is that it is the future of programming that would otherwise be done in C and C++.
- onebot 7y agoGo's intent was never to be innovative. I do believe it is designed to be incredibly simple so that engineers could pick it up in less than a day. It is probably one of the most performant languages with the least barrier to entry.
- dang 7y agoPlease don't do the programming language flamewar thing on HN. It's tedious and dumbs down discussion. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- jswizzy 7y agoGo and Crystal are slower than Java which has a much better ecosystem.