Something I’m genuinely curious about with people who really like Rust, and want it to be used for everything. If you had a say, which way of the programming ecosystem developing would you personally prefer, and why? Like, if Go or C++ started developing features similar to Rust, like a borrow checker and better compile time error checking, would you see that as a good thing that other languages are getting the same benefits of Rust? What about other organisations started making new programming languages with similar benefits as Rust? Or would you rather that none of those happened and everything that wants Rust’s benefits just converged to using Rust?
Rust is very good. I like it. However I don’t want other programming languages adopt an exact paradigm as rust. While effective it is vert difficult. The level of “I can’t concatenate two string” difficult. So still having lax languages around would help a lot.
I mean, the way you addressed your question (“people who […] want it to be used for everything”), I think, the only answer you can get is that they’d want everything to converge to Rust.
Personally, I do think Rust does a lot of things really well, but it has its focus, which is low-level, high-performance and correctness.
Other languages can be just as well-made, while having a different focus. For example, Scala is IMO similarly good and has many of the same features, but it’s more high-level and uses a GC, which makes it easier to write, if you’re not concerned about resource usage or low-level control.So, I don’t think, Rust should be used for everything and would rather have competing languages emerge with similar quality.
I love writing rust and I’ve done all my personal projects for the last 4 or 5 years in it, but I dont think it’s a good idea for other existing languages to adopt more of Rust’s features.
Languages like Elixir or Lisp are so different it doesn’t make any sense to adopt Rust semantics or syntax, and anything with a garbage collector, Go included, doesn’t need to care about ownership, borrowing, or lifetimes (besides the usual passing references being cheaper than passing whole objects).
Languages like C or C++ can definitely be replaced in many cases with Rust, but I dont think making them more like rust is a wise decision. Adopting something like a borrow checker in c or c++ completely changes the language in a way thats not only backwards incompatible, but also probably not welcome by developers already working in those languages.
All this to say: I’d prefer more people to work in rust than to alter other languages to be more like rust, but I also think there are a number of other languages worth learning and working in. To a large extent, choosing a language is about taste.
I think it’s great languages borrow ideas from others. Rust didn’t invent anything (seriously) but took good parts from many existing languages and refined them into a consistent whole. I’m certainly happy to see the direction Python is headed (type hints) or PHP (enums). It’s not necessarily related to Rust, but i believe many people from different backgrounds finding interest in Rust (not just for the borrow checker) certainly helps other languages advance.
Some languages (e.g. C#) has been adopting features form other languages like non-nullable values (Option types from Scala). I think it would be beneficial if some of the feature of Rust were adopted as well. Like the way error handling is done or sum types, but probably not borrow checker as this would be too invasive.