22 ms·
Ask HN: Will Rust ever become a mainstream systems programming language?
- Cshelton 10y agoI would say so far, yes. I would say it's pretty "mainstream" already with many companies using it in production, including Mozilla. As big as C++/C? Too early to tell for that.
- hutzlibu 10y agoAlso anyone big besides mozilla, who created it?
- Cshelton 10y agohttps://www.rust-lang.org/en-US/friends.html https://www.rust-lang.org/en-US/friends.html
- daenney 10y agoThat's 60 companies. Granted there's bound to be a few more but calling it "pretty mainstream" based on that seems like a stretch to me. Though not a flawless datapoint I'd rather use something like the TIOBE[1] index, which puts Rust at 0,37% rating, or position 41, right below Erlang. I hope that'll change, I think Rust has some interesting concepts and could be a notable step forward for some things that we've always done in C. But I can't find a datapoint that would make out Rust as being mainstream today. [1]: https://www.tiobe.com/tiobe-index/ https://www.tiobe.com/tiobe-index/
- whyever 10y agoRust fares better in other indices.
- burntsushi 10y agoMicrosoft in VS Code: https://code.visualstudio.com/updates/v1_11#_text-search-improvements https://code.visualstudio.com/updates/v1_11#_text-search-imp... /plug :-)
- flukus 10y agoI don't think that counts. I'm not using c when I run grep.
- burntsushi 10y agoThey are shipping ripgrep with VS code.
- flukus 10y agoBut shipping a program using rust != using rust. If that was the case I've used Erlang despite never having written a single line of it because I've shipped rabbitmq.
- burntsushi 10y agoThis is a strange argument I find myself in. What do you expect me to say? They're shipping a Rust application I wrote. That's a fact. Do with it what you will.
- lossolo 10y agoNo, it's not strange. What you wrote can be interpreted as manipulation. It's the same as replying to question "Who uses Go besides Google?" And you would reply that almost everyone use it, because everyone is shipping their apps with Docker. You see manipulation here? I don't know if intentionally or not but you did exactly the same.
- dbaupp 10y agoFWIW, a common argument in favour of C and C++ is how it is used by pretty much everything that one runs on a computer, in exactly the same sense of "use". I think you're tilting at windmills: some people mean "use" to mean "ship" and others "write", and neither are that unreasonable.
- mmstick 10y agoGoogle and Microsoft are using it.
- lossolo 10y agoYou have any sources to support that claim? Where do they use it? In their infrastructure?
- tmccrmck 10y agoUnless you count ripgrep being shipped with VS Code as a data point of Microsoft using Rust, I can almost certainly say that the above poster is wrong. Source: We had an email thread about using Rust on the MS Rust mailing list about a month ago.
- mmstick 10y agoJust check out Google's GitHub repository.
- throwaway7645 10y agoIt does keep rising in popularity, but is that coming from folks actually using system languages like C, C++, Ada, and Forth? I'm guessing only a portion. There's a difference between a web developer using Rust enthusiastically for hobby projects and a seasoned C coder switching to Rust for a professional job. In fact, a lot of the projects I've seen in Rust (ex: Dropbox) are commonly being done in Go as long as the GC isn't an issue.
- 46Bit 10y agoYou have a point. I've done medium-sized C projects in my degree, but my professional background is mostly web. I've been using Rust heavily for 10 months. I think that if you want to use it for web stuff you very much can, but the language is more immature than it might first appear. If the community keeps going the way it is, I hope to work with it commercially by 2020. The most promising things I've read about it as a serious systems language are from Cambridge Consultants [1,2], but there's a lot of ongoing work to make it ready for embedded work. [1] http://blog.cambridgeconsultants.com/wireless-product-development/presentation-mozillas-rust-and-why-we-love-it/ http://blog.cambridgeconsultants.com/wireless-product-develo... [2] http://blog.cambridgeconsultants.com/wireless-product-development/will-cc-ever-rust-away/ http://blog.cambridgeconsultants.com/wireless-product-develo...
- tmccrmck 10y agoWhy use Rust for web development? There are very few web back ends in the world that need the speed of C++ or Rust. Java, C#, Go, Haskell, OCaml are much easier to ramp people up with and hire for.
- majewsky 10y agoExactly. Sneak some Rust code into your business-critical systems for that extra job security! :)
- 46Bit 10y ago:-) I've been trying to keep the nuance in my comments here. When I said, "I think that if you want to use it for web stuff you very much can," I'd emphasise the, "if you want to." At the moment a lot of hobbyists are doing web stuff in Rust. Commercially I think usage would be in the same vein as the common pattern of rewriting Ruby services in Go if it starts to limit performance.
- peter_retief 10y agoIt is
- k__ 10y agoCertainly more then Nim. I'd say, before Rust becomes really mainstream, we have to wait for the current generation of sysdevs to die. But I guess till this is the case, there will be new languages invented that may be better than Rust. On the other hand, most new companies don't hire old devs, so maybe IoT will give rise to new companies and young sysdevs all using Rust before the old generation is gone...
- daenney 10y ago> I'd say, before Rust becomes really mainstream, we have to wait for the current generation of sysdevs to die. Why?
- k__ 10y agoOf old age I mean. It's like with everything. Most people simply do what they always did, most never reinvent themselves.
- daenney 10y ago> Of old age I mean. Yeah I get that. I asked why they should die. Not how or by what means. > It's like with everything. Most people simply do what they always did, most never reinvent themselves. Based on? And note that we're not talking about "most people", we're talking about a very specific subset of people. Considering the changes in popularity of programming languages and the recent surges in adoption of Go and Swift, I'd say there's at least evidence to support people do change in this domain when something comes along that excites them or opens up new possibilities.
- ssokolow 10y agoIt's a pattern that's been well documented in the scientific community. You generally get a burst of innovation when enough of an older generation of scientists dies off for their ossified cognitive habits to stop holding back the more correct of the theories that have arisen in the mean time. (Don't ask me to cite it though. I don't have time to go digging back through the textbooks from my "scientific reasoning" course.)
- asitdhal 10y agoMost C++ developers won't easily develop systems in Rust because of lack of well-known libraries and a stable ecosystem(profilers, static analyzers, concurrency tools, many skilled and mediocre developers, etc). C++11 and subsequent versions have a good amount of memory safety(though not as safe as Rust). Rust is a modern language with very good concepts and features. It's quite complicated to learn. My answer is it will be a good language, but won't be a top language.
- Nomentatus 10y agoLike... Cobol... 'cause all those reasons are vanishing and will vanish.
- asitdhal 10y agoThose who need Cobol use them(Core banking applications). Rust is better than C++, but it's not extremely better than C++.
- Nomentatus 9y agoExtremely safer seems to me to be extremely better, these days.
- roca 10y agoI'm not sure what "concurrency tools" are. Profiling tools that work on C++ should work on Rust just as well; "perf" and "sysprof" do, at least. "static analyzers" are far less important in Rust since the compiler prevents most of the bugs that C++ static and dynamic checkers look for. Having said that, ASAN and TSAN do work with Rust! As for "complicated to learn" ... Rust does have a significant learning curve. However, so does C++, and the C++ learning curve never ends: http://whereswalden.com/2017/02/27/a-pitfall-in-c-low-level-object-creation-and-storage-and-how-to-avoid-it/ http://whereswalden.com/2017/02/27/a-pitfall-in-c-low-level-... https://bugs.chromium.org/p/chromium/issues/detail?id=683729#c25 https://bugs.chromium.org/p/chromium/issues/detail?id=683729... I've been programming in C++ for over 20 years, plus I have a PhD in programming language tech, yet there are many dark corners of the language I don't understand, and more keep getting added all the time. "Complexity budget" is not a phrase you hear in the C++ community. I suspect many C++ fans aren't bothered about this because their knowledge has grown with the language. I pity someone trying to "learn C++" in its full glory.
- stmfd 10y agoI think it has a fair chance (Go is a "systems" language and grew very quickly). I also believe you'll see it pop up in unikernels as well. Why, you ask? Because there's always 1 person that starts a project that gets traction. I don't see it growing and replacing C++ though. I don't think there's much incentive post C++11 to really consider porting anything (even small things) over. Most of the features Rust gets praised for are either: (1) Ridiculous - if you need segfault protection, you're a bad programmer (CLARIFICATION: if you act like segfault protection is some majorly useful feature, you're an imbecile who must also think writing C/C++ is like disarming a bomb - nonsense; give me a real argument for Rust that isn't: insignificant, badly contrived, already in C++, etc. - you can't convince a generation of systems programmers to drop everything to move to Rust without this). Let's be honest, you don't segfault unless you're doing something idiotic. I've not segfaulted in the past 8 years in anything but assembly. Or, (2), things I've been using in C++ for the past 4 years. Rust will definitely end up in these areas I believe but I just hope that it's not some horrible binding to a C/C++ library or something. I think backwards compatibility and current dependencies is a big thing.
- eropple 10y ago> Ridiculous - if you need segfault protection, you're a bad programmer. Let's be honest, you don't segfault unless you're doing something idiotic. I've caused segfaults in the runtimes of three major languages in the last year by running code that, from a user perspective, is completely fine. I don't think the developers of those runtimes are "bad programmers".
- stmfd 10y agoI think the bad programmers are ones who state "segfault protection" as a feature of Rust because they read it on Rust's site. I genuinely don't think these features of Rust are really all that useful (they're being disingenuous; acting like C++ is some primitive language where you segfault every 5 minutes). Even Bjarne would probably agree. He talks about the same issue at his "The Essence of C++" talk. Someone asks if he shares the blame, alongside Ritchie, for all of today's major security issues (Heartbleed is the given example). He says something similar to what I've said. Segfaults are not a major issue at all unless you're consciously doing something idiotic.
- _jordan 10y agoI would say unlikely, for the simple reason that Rust is just really hard.
- sidlls 10y agoC++ is hard, too. So is C, to write correctly. Hasn't stopped either of them from literally powering almost every computer in use. Rust's complexity is equivalent to, but distinct from C++'s. I prefer it over C++, and I'm one big fan of the latter.
- xiphias 10y agoI think C++ is much harder actually. Making sure that the system doesn't crash means writing a lot more unit tests than what would be needed, and sometimes these problems come out in production only. I would love to switch to Rust, but it takes many years in a big company.
- eridius 10y agoI agree. Learning all of C++ is much harder than learning all of Rust. C++'s saving grace is you can easily get away with learning only a much smaller portion of the language.
- _jordan 10y agoRust is a paradigm shift; "...to write correctly" most people don't start off the bat with correct IMO. The learning curve is steep with rust.
- sidlls 10y agoYes, and I would say that is problematic for fast uptake. However I don't think that over the long term it is an insurmountable barrier.
- Ar-Curunir 10y agoC++ and C are easy to get into a working state, and then you bit by bit discover your mistakes. Rust forces that information up front, and that can be problematic for people who aren't used to it ( and just want to get a back up and running, which is unfortunately too many real world systems).
- logn 10y agoIf "functions as a service" (AWS Lambda) takes hold, I think Rust will be a popular server language since you'll need services with almost no startup/warmup time.
- yitchelle 10y agoNot too sure what is meant by "mainstream" but I can see Rust getting a foothold in certain industry, such as medical, automotive or aerospace. To get there, it will need to be mature and be stable significant enough. It will also need a big player to take that first step and prove it in production. Imagine if Ford mandates its suppliers to use Rust for the software in its car and it faced little problems after a few years out on the road.
- sanjeetsuhag 10y agoI'm an aviation enthusiast and a CS undergrad. I've always wondered what's different about code written for airplanes. Anybody have any insight ? And is there a modern replacement for ADA?
- scythe 10y agoAda is still under active development and widely used in applications requiring extremely reliable software. http://www.ada2012.org/ http://www.ada2012.org/
- jcadam 10y agoI've used Ada on satellite programs, it's still very popular for that sort of thing. Ada has managed to carve out a small niche for itself in aerospace and I don't think it'll be replaced by rust anytime soon. Which is fine, nothing wrong with Ada.
- objclxt 10y ago> I've always wondered what's different about code written for airplanes. Anybody have any insight? You might be interested in some publicly available coding standards for the Joint Strike Fighter (C++) and the NASA JPL (C): http://www.stroustrup.com/JSF-AV-rules.pdf http://www.stroustrup.com/JSF-AV-rules.pdf http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
- pgvoorhees 10y ago
- scythe 10y agoRust has to stand the true test of time -- the test where 5-10 years-old codebases written in Rust are still being maintained. Someone who's literate in programming language theory can evaluate the design decisions in Rust and say "it looks good" (or not), but in order to determine whether Rust is actually good for building and maintaining large, complex software systems for long periods of time, there's no metric like really doing it. I think at some point, Rust will have enough tooling that people will try to start using it for graphics and videogames -- the applications where C and C++ shine but their "safer" rivals Fortran and Ada can be a headache to work with. It's in this arena -- where Go is too slow -- that Rust will really sink or swim. And it has barely even started to make headway. Maybe GNOME 5 will be written in Rust, or maybe the GNOME 5 developers will try Rust and conclude it's not suitable. Whoever they are, they haven't even started yet.
- eridius 10y ago> I think at some point, Rust will have enough tooling that people will try to start using it for graphics and videogames The game developer community is actually one of the communities that jumped onto Rust really early, well before it hit 1.0.
- cpeterso 10y agoAre there any AAA game studios using or evaluating Rust yet? I saw some GDC talks about the multithreaded game engine for Bungie's Destiny game. Given the debugging and QA challenges of their multithreaded architecture, something like Rust's ownership model seems like a good fit. Does the Rust toolchain support Xbox and PlayStation? * Destiny's Multithreaded Rendering Architecture: https://www.youtube.com/watch?v=0nTDFLMLX9k https://www.youtube.com/watch?v=0nTDFLMLX9k * Multithreading the Entire Destiny Engine: https://www.youtube.com/watch?v=v2Q_zHG3vqg https://www.youtube.com/watch?v=v2Q_zHG3vqg
- mmstick 10y agoDICE is using it internally. The only reason why they aren't using it in games is because Rust won't compile on console platforms.
- alimbada 10y agoProbably. But why do you care? If you like it then use it and build something. If you don't like it, use something you do like and build something.
- kazinator 10y agoWhy you might care is that if you build something today, that something could reap some benefit in the future from the language becoming "mainstream". Possible benefits: * users not going "gack, this is written in an obscure language that we have to install to build it". * the implementation quality being better: the thing I write now will benefit from the language being less of a moving target and with fewer bugs, better performance. Maybe a lot of that is just psychological, but so is "I like it" versus "I don't".
- kazagistar 10y agoFor point one, it helps that Rust is one of the easiest languages I have ever worked with to install the compiler run-time, pull dependencies, build, run, and distribute. So at the very least, it won't get in your way if you just want to distribute a static binary, or give your users a few commands to compile it themselves, even if it is "some weird language". On point two, Rust is not a moving target, in the sense that it has maintained back compatibility since release to an amazing degree, and the build system does a good job by automatically pinning dependencies for applications. Also, even if it is totally abandoned, you still have a pretty solid language with C-like performance that benefits from ongoing LLVM optimizations. But it is certainly true that there could be unfixed bugs in an abandoned Rust.
- whyever 10y agoUnfortunately Rust uses an LLVM fork IIRC, so using it is non-trivial.
- steveklabnik 10y agoWe can use (and have tests to ensure that it works) a stock LLVM as well.
- Animats 10y agoI had great hopes for Rust as the future of systems programming, but they've decreased over time. Parts of the language are just too cute. The borrow checker was brilliant. Any future language that doesn't use garbage collection will have to have one. That was the big advance in Rust. But the object system (yeah, they're called structures and traits) is too weird. The enum approach to variant records is too weird. The error handling is too weird. The half-functional style is too weird. The widespread use of closures for simple stuff is too weird. There's too much unnecessary originality. Trying to port something from another language to Rust is difficult because Rust's ways of doing things are so different from other languages. I have the feeling that Rust is destined for a niche like Haskell - cool, but not mainstream. That's sad. I really thought early on that Rust meant the end of the decades of hell from the lack of memory safety in C and C++. But that's not happening. The Go crowd knew when to stop. The Rust crowd didn't.
- tomjakubowski 10y ago> But the object system (yeah, they're called structures and traits) is too weird. It's equivalent to writing C++ with: * No structural inheritance (i.e. no inheritance of data) * Inheritance only from pure virtual interface classes * MyCppPureVirtualClass * pointers in various interfaces Except that traits are also usable for static dispatch as in templates/concepts. This isn't the most common style of C++, but it's not uncommon either, and I happen to like it a lot; it's all over Cef's and Chromium's code, for example. > The enum approach to variant records is too weird. What's weird about it? It's just the same as e.g. Haskell, ML, but with a different (arguably slightly overloaded) keyword. Swift uses the same terminology. > The error handling is too weird. Eh. I certainly like the way that explicit error handling is "forced" on the caller with mechanisms like Result<T,E>::unwrap. But I agree that magical things like the question mark operator are a little too cute. > There's too much unnecessary originality. FWIW, I can't think of much real originality in Rust. It just brings together "exotic" features from lesser-known languages.
- Animats 10y agoI can't think of much real originality in Rust. It just brings together "exotic" features from lesser-known languages. I think you're right. Except for the borrow checker, which was a major breakthrough.
- ekidd 10y agoI work for Faraday (.io, not the car folks), and we use Rust in production. I personally suspect that Rust will continue to grow in popularity. We've been really happy with Rust. Our Rust programs tend to be fast and resource efficient, and they tend to have few bugs (and most of those are cases of misunderstanding the problem or the spec). The learning curve tends to be pretty rough for the first week or two, but you can reduce that by pairing with a more experienced Rust developer. And after that, it's pretty smooth sailing. Certainly any C++ programmer should be able to make the leap fairly quickly--it helps to have used at least one non-GCed language. The third party library situation is better than you might think for a young language (the database clients, RabbitMQ clients, HTTP clients, compression, etc., are all basically usable), but I normally expect to fill one or two library gaps per project. Overall, I find it difficult to articulate why I like Rust. It's pleasant to write (now that I know how), it runs fast, the CLI tools are pretty solid, and has enough abstractions to keep the boilerplate in check. And I can throw cluster-sized workloads at it and trust it to work, and work fast.
- dochtman 10y agoTrying to articulate why I like it: it marries the low-level control and type safety from C++ to modern language features as found in Python/Ruby etc, and in doing so manages to hit a pretty sweet spot in terms of having the compiler finding actual bugs early. With enums and pattern matching and the borrow checker, there are a bunch of features that help make the type system expressive enough that you can generally express what you need and still allow the compiler to perform very thorough, important checking on it, with the effect that "it compiles -> it works" is true much more than for, for example, C++.
- 46Bit 10y agoI agree and would add one more property that makes Rust likable - it's about two years old, so still a greenfield language and standard library. It's easy to overlook that.
- soulbadguy 10y agoWhatever the answer is, you probably will not find it here. From an historical perspective, the success a language seems to have very little correlation with the vague notions of quality that we language geeks think are important. And it seems that the HN echo chamber forgets that.
- tmccrmck 10y agoThe Rust ecosystem has lost sight of the forest for the trees in my opinion. I highly agree with Graydon's opinion in "Rust is mostly safety" [1] that it's raison d'être is memory safety and concurrency in the systems space. But strangely a significant amount of time is being put in to making it usable for other tasks. I think this has to do with the different cultures between C/C++ developers versus other developers, namely that developers coming from web development are younger and more used to jumping around to new languages and frameworks. With it's borrowing semantics and steep learning curve, Rust will never gain significant market share in the world of web development. And why should it? Time to market matters more than speed. It's much easier to ramp up new hires on a C# or Go code base than on a Rust one. And the borrow checker will always create friction for people new to the language. As someone with a C++ background, it still took me over a month before I stopped fighting with the borrow checker and with lifetimes. I can't imagine how long it would take to get a completely new programmer up to speed. [1] http://graydon2.dreamwidth.org/247406.html http://graydon2.dreamwidth.org/247406.html
- mmstick 10y agoWeb developers have zero issues with using Rust for web development though. The Rocket web framework is rather intuitive. I even built my website entirely in Rust with it. http://mmstick.tk http://mmstick.tk
- burntsushi 10y ago"zero issues" is a bridge too far. Rocket, for example, only works on nightly Rust, and that might be a non-starter for a lot of people.
- flukus 10y agoThis has been my biggest issue trying to learn rust, there are too many projects that only support the bleeding edge.
- burntsushi 10y ago
- topspin 10y agoI want to believe. I love Rust. I feel like Rust is the language I've waited for all my life. Yesterday there was a story about Rust here on HN: "Programming ARM Cortex-M Microcontrollers with Rust." Among the replies was a complaint; someone couldn't figure out how to write a static buffer and was discouraged. Someone else provided an example of how to do this. Finally, another person noted how unfortunate the solution was. Here is the code, reworked by me just a little: use std::io::Write; use std::str::from_utf8_unchecked; static mut S1: [u8; 17] = [0; 17]; fn main() { unsafe { write!(&mut S1[..], "Hi: {}", 5).unwrap(); println!("string: {}", from_utf8_unchecked(&S1[..5])); } } There are three distinct reasons why everything has to be "unsafe." Unless you have a lot of experience with Rust you are NOT going to figure that out until you've banged your head against the compiler for some time doing your level best to minimize the lines of code you've wrapped in unsafe, and then finally surrender. That is a lot of friction. I know (as in I understand with precision) the reasons for this and they're entirely legitimate. But damn... the pain is just more than the bulk of the world is ever going to tolerate. You can do the same task with zero friction in C/C++ and go fast/be small, or you can do it with a "managed" language with zero friction and handwave at the bloat and cycle eating cache killing GC, or you can don the hair shirt, focus on your breathing to keep the panic at bay and use Rust. It is inescapable human nature that the "mainstream" will avoid the latter.
- ethbro 10y agoI think you noted one of the problems Rust is going to have with adoption: its raison d'être is solving technical debt (specifically, security debt). Unfortunately, the reason that's a problem is because most management doesn't even know what it means. And that's not likely to change. So saying "We have a language that might take a bit longer but solves X" is a difficult conversation when the reply is "Wait, what is X?"
- camgunz 10y agoI think it's important to consider the implications if Rust doesn't become a mainstream programming language. I'm not shy about my dislike of Rust. I like C, I don't think avoiding buffer overflows and memory errors is that hard, and I chafe at the idea of a language I dislike aesthetically taking over systems programming. But even I have to admit the arguments for using C instead of Rust are niche. Sure there's probably always going to be some instance where C makes sense technically, but if we could wave a wand and convert the world's C/C++ code to Rust, we'd immediately fix millions of memory errors and data races. It's impossible to overstate that benefit. Think of the things the Rust team has to deal with: "Is Rust a good web language?" Is C or C++? Is Ocaml? "Is Rust a good language for an OS?" Is Python? Is JavaScript? "Is Rust too big?" Is C# or Java? Rust is a pretty small language, both in terms of features and implementation size. "Is Rust powerful enough?" Is Go? Go deals with this all the time ("Go ignores decades of PL research"). Rust's feature set is pretty good, but more importantly it's well thought out. "Is Rust fast enough?" Is Java? Is C#? Is Go? "Does Rust compile fast enough?" Does C++? Does Clojure? "Will your Rust program be memory safe and free of data races?" It sure will be. This is a monumental achievement. Your options for a memory-safe language without GC are... Rust and Ada? "Does Rust have a good concurrency/parallelism story?" Rust has one of the best, actually. It doesn't use segmented stacks so it doesn't achieve the M:N performance of Go, but it has memory and data race safety, OS threads, and futures, so no problem. "Is Rust too hard?" Honestly, programming is hard, other languages just let you ignore it. There's an example about manipulating a string as a global array in this thread somewhere, which is not really something you should do, and the argument was "this was wildly difficult". It is, yeah, because safely managing concurrent access to a global, bounded section of memory is wildly difficult. Again, I'm not a Rust fan and I sort of can't believe I'm writing this. But look at what Rust has: - memory and data race safety - scripting language ergonomics (after you internalize the borrow checker) - the speed and memory usage of C - a low surface area - advanced features - great community outreach and documentation - familiar structure (as opposed to something like Erlang or Haskell) If a language like that doesn't succeed, you have to start wondering what will. My personal belief is that it is succeeding, but I think success looks a lot different than most expect: new projects that need a systems language are far more likely to be written in Rust than in C/C++.
- 10y ago
- jackpot51 10y agoSystem76 is using Rust now for automated testing and firmware flashing. I wrote these projects in rust, and I enjoy using it, can't say much about the other engineers.
- AsyncAwait 10y agoAlso, Redox OS is awesome :-)
- jackpot51 10y agoThanks ;-)
- Corrado 10y agoMy feeling is that Rust (and/or Go) will probably supplant Java (and/or C#) in the coming age, just on the basis of the user experience alone. This past week I wasted several hours trying, and failing, to get a simple Java app up and running. Rust (and Go) have such a better end user experience that I can't see them not winning. Firing up a single executable is miles better than installing a run time, then tweaking the config to make it work, then trying to find out where it stores log files, then tweaking it again when it fills up memory, etc. Give me a single, self contained, executable any day!