6 ms·
> You start building something with Rust and you should be operational quite quickly Rust is anything but easy and simple like Go language. Please try buildin
by dragonsh 6y ago
> You start building something with Rust and you should be operational quite quickly
Rust is anything but easy and simple like Go language.
Please try building something like Kubernetes in Rust instead of Go and you will realize “Rust” is a a complicated language (worse than complex). Rust has a steep learning curve and the standard library is quite limited. So you will need to search and choose from different crates to do eve basic work. Eventually one can be productive in it after 2-3 years of development. Compared to it Swift, Go are much easier to pick up as systems programming language and C++ 20 is advanced enough to write safety critical code. There is a reason why large body of systems programming and software for database,network servers is written in Go language not Rust.
- oblio 6y agoGo has much bigger backing that Rust. And most of that server software comes directly from Google or their ecosystem: Kubernetes, Kubernetes appendages, "Cloud Native" stuff. And Swift is only relevant because it's the only modern, officially sanctioned, systems software programming language on 2 platforms: Mac OS and iOS (especially iOS). I know of 0 people who use or have a desire to use it outside of MacOS or iOS. Time will tell, but Microsoft, Amazon, etc. have adopted Rust. And if you look at what they're doing with it, it is generally much lower level than Go or Swift stuff. It's directly in the C/C++ domain.
- dragonsh 6y ago> Time will tell Agree time will tell at present Rust is like other niche systems programming language competing with others like Nim and Zig bit more popular due to Firefox being popular. Nowhere close to Go or Swift, may be in 5 years might have something substantial by Amazon and Microsoft available in open source. > Go has much bigger backing Go is popular because it’s easy, simple, performant with opinionated design and similar to Python controlled heavily by its creator. It gets the job done and it’s syntax can fit in brain, without fighting the language itself. It has very good standard library. It is adopted more outside of Google than inside. Simplicity is easier said than done and Go language did it quite well. It’s like Apple devices and OS beautiful and simple, which works but some just hate it. Rust doesn’t aim to be simple and easy, as it makes people in Rust community feel superior to other programmers by virtue of showing it as complex and difficult. You can see example of this in this thread any comments critical of Rust pointing its shortcomings is downvoted because it’s difficult to digest how the best and safe language for systems programming can have any shortcomings. I don’t mind working in Rust (indeed tried some simple examples and didn’t find any feature special what I can’t do in other languages including safety). I also learned Haskell (which is more complex than Rust) and Lisp (like it more because of its simplicity).
- the_gipsy 6y agoCareful, if you only measure by popularity, you'll get to Java and Javascript as best choice. I'll make a guess and say that these two are not what you want :)
- oblio 6y agoWell, popularity (quantity) does have a quality all its own. Rust will never be extremely popular, just because it is more low level. I'd say that for each low level concept you add (pointers/references being on of the big ones), your "market reach" for a programming language goes down by an order of magnitude :-)
- hnarn 6y ago> Rust is anything but easy and simple like Go language. Rust sure isn't "simple" for anyone, but if you are a C/C++ developer, I'd definitely expect someone who's been writing C code for more than a few years to be able to pick up basic Rust in a few weeks. Instead of being threatened by other languages and rationalizing why it's not worth picking up, why not spend a few weeks on it so you can have an informed opinion on why it's good or bad? No language is perfect, everybody knows that. Rust isn't for every use case just like C, PHP or Python isn't for every use case -- but knowing a little bit about all of them means you'll be a better programmer in the end, because you can recognize what tool fits best for the job.
- jevgeni 6y agoI think lifetimes are tripping dragonsh up. Also, C++ is a waaay more quirky and complex language. Can't see why C++'s complexity is fine, but Rust's (lower) complexity isn't.
- shpongled 6y agoYeah I honestly never get these threads. I think perhaps it's C++ veterans that have the language spec memorized, and so they have forgotten that C++ is an absolute minefield and has a much steeper learning curve. I've been using Rust for 3+ years, and while it has a learning curve wrt lifetimes, it's nowhere near as hard to learn as C++ IMO. I recently tried to pick up C++ (yes, I know, weird to have gone to Rust prior to C++), and I finally just gave up and went back to Rust because nothing works how I would expect it to. There are so many edge cases and weird things you have to know to use C++ effectively. Also add in the fact that you still need to learn lifetimes in C or C++, except now you are responsible for tracking them rather than the compiler.
- hibbelig 6y agoOT: "Steep learning curve". Can someone give me an intuition that explains the meaning? My understanding is that it means "requires a lot of effort to learn to some degree", but when I see the words "learning curve", I imagine a graph with time on the x-axis and knowlege on the y-axis, and when that curve is steep, that means you acquire a lot of knowledge in a short time. Which is kind of the opposite... Can someone give me an intuition that doesn't clash with the intended meaning like that?
- CuriousSkeptic 6y agoHave the y-axis represent effort required to advance, and x-axis level of mastery achieved. F.ex “effort“ could be quantified as topics in a book to cover before being ready for the next chapter, and “mastery” as simply number of chapters read.
- steveklabnik 6y agoThe intuition is supposed to be that knowledge is on top of something like a mountain. It is easier to climb up a small hill than it is to climb up Mt. Everest. This is because (in the analogy, obviously in real life it's more than just this) Mt. Everest is steeper than the hill your house is on top of. In other words, the issue with your intuition is that the speed at which you go up the curve is constant, but in the saying, you go up the steeper curve much more slowly than you do the slight curve. Does that help?
- Zacru 6y agoYeah, it's an extremely common misuse of the learning curve concept. From https://en.wikipedia.org/wiki/Learning_curve#%22Steep_learning_curve%22 https://en.wikipedia.org/wiki/Learning_curve#%22Steep_learni... >Arguably, the common English use is due to metaphorical interpretation of the curve as a hill to climb. (A steeper hill is initially hard, while a gentle slope is less strainful, though sometimes rather tedious. So common, that it's basically become the default interpretation. Kind of like "irregardless". I wonder if there is a name for phrases like this that basically mean the opposite of what the words literally say.
- littlestymaar 6y ago> Please try building something like Kubernetes in Rust instead of Go At this point, it's clear that you are simply trolling, because Kubernetes is a well known counter example against Go: the lack of features was so blatant they had to design their own generics system as a preprocessing step.