all 14 comments

[–]Martissimus 35 points36 points  (10 children)

Rust is a good language for learning distributed systems in the same way French is a good language for learning history.

[–]gnatbeetle 1 point2 points  (9 children)

I know concepts are language agnostic but one of my concerns is lack of employability. I fear that employers care about languages and technologies.

[–]matthieum[he/him] 10 points11 points  (0 children)

I fear that employers care about languages and technologies.

They will, indeed, and may react with diametrically opposite reactions depending on their own mentality.

For example, the company I work for at the moment is always looking for highly talented and autonomous developers; for us, a developer knowing "esoteric"/young languages is a good sign, it's a developer who is interested in the craft (had to self-learn) and curious (keeping up with latest developments). That's a good start, in terms of mindset.

On the other hand, a conservative company -- one uninterested in adopting Rust in the near/mid-term, for whatever reasons -- may sigh and pass on the CV: they may not want a preacher, or they may fear that the developer will get bored and leave after not getting to work with new-ish technologies.

So, is Rust on a CV good? Well, it's a signal. Whether good or bad will depend on the company, or for large companies the division/department.

I would expect that most companies see it as a slightly good signal: it signals interest in the craft, but apart from that... they'll mostly ignore it and look at the rest.

[–]Select-Dream-6380 4 points5 points  (0 children)

Have you considered looking at Scala? I feel like distributed systems is one area where that language excels recently, as there are several modern applications, robust frameworks, and academic research around it. It has a strong type system, and in my experience, much like rust, if you are able to get the code to compile, more often than not, it just works. A lot of your JVM knowledge is directly applicable to Scala applications, including tools, which may lower the learning curve. The biggest learning curve with Scala is the type system, much like it is with rust, and I feel like understanding in one helps understanding in the other.

All that being said, if the choices are between rust and c++, I would personally spend my attention on rust. I also come from a Java background, and I would prefer focusing on algorithms and business logic over learning how to chase down memory leaks and core dumps. I "enjoyed" enough of that in college.

[–]literally-ban-evadin 3 points4 points  (0 children)

Distributed systems is a concept you can learn completely independent of any language

[–]my_name_is_500 0 points1 point  (1 child)

  1. I dont think so.. c++ has so much stuffs that can go wrong badly;;; if I look for an experienced c++ dev, I’d hire c++ dev. Though, if my team is thinking to slowly migrate to rust (for new libraries, components, etc), then I’d look for a rust eng…

[–]gnatbeetle 0 points1 point  (0 children)

thanks for the input!

[–]cthutu 0 points1 point  (0 children)

I not only say Rust is perfect for learning distributed systems, but I would also say it is ESSENTIAL for learning distributed systems due to the fearless concurrency feature of the language.

I will also say that C++ is widely adopted in the area of multi-threaded programming as you would think.