I recently was thinking about how smart/not-smart would it be to become a full-on 'Rust developer'. So I thought, OK, what happens if two decades from now I'm a grey-beard Rust programmer, and the only jobs I can find are maintaining some legacy Rust code...
And then it struck me, I'd be completely fine with it. As in, if there's a language in which dealing with legacy code doesn't seem daunting, then that's Rust. Because of the safety guarantees, the type system, and the 'compiler knows better', refactors are just so much easier. Like, hands down I'd rather maintain Rust code than Python, PHP, JavaScript, or C++.
In principle, yes. But bear in mind that Rust doesn't depend on a runtime, and compiles to LLVM IR, so what it depends on to run on the target system is a lot less than something like PHP, Python, or JS. So to really end up in deep shit the LLVM project would also have to fizzle together with Rust.
And given how some 'big names' in tech are getting more and more involved in Rust and opting to write core low-level stuff in it, I'm not terribly worried about Rust and LLVM fizzling to the point where I have to worry about any of that. I mean, it is orders of magnitude less of an issue than depending on Node.
I would argue that Rust is a great choice for startups exactly because you can find people who will either take a pay cut or work in a hectic environment, just so they can use Rust. Rust has been on top of everyone's "want to learn" list for half a decade, and it feels quite mature.
Definitely I would not take a pay cut for rust, also for any technology, it’s about solving problems and working on interesting things not really about a language. I’ve also been learning rust in my spare time, and am more and more realising that I spend time solving rust’s problems more than solving the problems of the side project I started
I'm surprised to see multiple people mentioning pay cuts. In the Stackoverflow Annual Developer survey[1] I see Rust developers consistently being among the highest paid in the industry.
I'm mentioning pay cuts because one of the side-effects of joining a startup is that they can be tight on money and will offer early employees shares instead.
I work for a startup and am coding Rust and my salary went up by taking this job.
So I'm only saying this as a general thing; I'm sure a lot of startups where Rust makes a difference (I'm sure a lot of startups would be just as well off with Python), they can probably afford a competitive wage. :-)
Maintenance is where Rust really shines and makes up for it's initial learning curve and slightly slower writing speed. In terms of hiring I can't imagine it being a problem either. There are lots of developers who would jump at the chance to work with Rust, and comparatively few Rust jobs (especially ones that don't involve working with cryptocurrency).
There are lots of people curious about coding Rust in production, and most of them consider themselves competent to write it. But that is not what you look for when hiring. Or, it shouldn't be.
I would say that curiosity about languages in general is one item that you should look for in candidates. Not the only one of course but curious people do tend to learn and adapt well.
For an analogy, I wouldn't hire a pilot that isn't interested in other planes than what's on their license. What if I want to operate some new models?
Unless I'm looking for someone for a truly specialised role, I would avoid people that stick to only one thing for their entire careers.
Curiosity is a decent indicator one of the many types of competence that you ought to be assessing: the ability to learn new skills and deal with problems that are outside of their current skill set. Which for most software jobs is rather key skill.
I don’t believe Rust is that good at maintainability - refactors are safe, but they are very tedious, which is inherent to its low-level nature. In a managed language if a refactor causes different lifetimes/ownership model, the runtime will automatically handle it. In Rust you will have to fight the borrow checker for it.
Don’t get me wrong, Rust is a really great language, but if the domain doesn’t require low-level programming, don’t choose a low-level lang, in my opinion.
There seem to be a lot of long running Rust job openings in the cryptocurrency space. Maybe those positions are always open because nobody wants to work there? You asked for speculation :)
Conversely, anything else is a good choice for startups because most start-up fold and will never have to actually fix all of the memory leaks/security vulnerabilities/slow implementations.
Necessary, but not sufficient. Almost all the startups with bad implementations will fold. Almost all the startups with good implementations will fold.
And then it struck me, I'd be completely fine with it. As in, if there's a language in which dealing with legacy code doesn't seem daunting, then that's Rust. Because of the safety guarantees, the type system, and the 'compiler knows better', refactors are just so much easier. Like, hands down I'd rather maintain Rust code than Python, PHP, JavaScript, or C++.