10 ms·
I love writing Rust, but I was really surprised by how difficult it was to find a job _actually_ writing Rust. I'm happy to see the increased activity in the s
by mmastrac 3y ago
I love writing Rust, but I was really surprised by how difficult it was to find a job _actually_ writing Rust.
I'm happy to see the increased activity in the space, but searching for a job in Rust is probably still 10x harder than C or C++.
It worked out in the end, and I'm happy to be getting paid to be writing Rust every day, but I hope that the market for Rust jobs continues to grow -- ideally even faster than it has been.
- rockwotj 3y agoOn the reverse side of things, trying to find a C++ dev is usually harder than finding people who want to write Rust.
- secondcoming 3y agoYup, we were hiring C++ devs recently and it was quite common for candidates to mention Rust. Did they not read the job description??? Immediate red flag.
- jimbob45 3y agoAre you not a developer? Being proficient in one means that it will take very little time to transfer to the other. C++ and Rust have a great deal of overlap in that way.
- risyachka 3y agoIt only works one way though (at least in this case). If you know C++ you can quickly become proficient in Rust. But not the other way around.
- timeon 3y agoYeah C++ have steep learning curve compared to Rust.
- PartiallyTyped 3y agoIf you know rust, you can carry the same ideas to C++. My C and C++ skills greatly improved as I got better with rust. The compiler forces you to learn proper memory management and that carries over. Smart pointers? Just Box, Rc, Arc and Refcel. Move semantics? It's just another name for ownership. Sure, the OOP stuff are different, but okay, that in and of itself shouldn't hinder you.
- nambit 3y agoIf it's an experienced C++ job and you don't know the difference between rvalue/lvalue/etc, you're gonna have a tough time.
- rcxdude 3y agoAre you sure? Many C++ programmers who have learned rust report that it has also made them better C++ programmers.
- secondcoming 3y agoIt's not about proficiency, it's about not getting bogged down in programming language bikeshedding.
- fl0ki 3y agoSigh. People don't even know what bikeshed means any more. https://en.wiktionary.org/wiki/bikeshedding https://en.wiktionary.org/wiki/bikeshedding If you think the differences between C++ and Rust are "unimportant but easy-to-grasp issues" then you may not know enough about either/both to contribute to the discussion. We're talking about differences so impactful and well-recognized that everyone from Google[1] to the NSA[2] is advocating for using Rust to reduce the unsafety compared to C++. Are you saying all of them are bogged down in bikeshedding? [1] https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html https://security.googleblog.com/2022/12/memory-safe-language... [2] https://www.nsa.gov/Press-Room/News-Highlights/Article/Article/3215760/nsa-releases-guidance-on-how-to-protect-against-software-memory-safety-issues/ https://www.nsa.gov/Press-Room/News-Highlights/Article/Artic...
- StewardMcOy 3y agoI've been a C++ dev for most of my career. Not looking to change jobs at the moment, and I like C++ a lot. We still occasionally start new projects in C++ where I work. I've tinkered with rust in my spare time, but never introduced it at work. I think the borrow checker is a fantastic tool, but Rust has just never been the right tool for the domain we're in. But I'm a bit confused by your statement. There's a lot of overlap in the domains that C++ and Rust serve. Isn't it a good thing for job candidates to have an interest in learning about other approaches to their work? To understand what makes C++ better or worse than Rust in difference circumstances? Why would a mere mention of Rust be a red flag?
- wredue 3y agoIt’s a red flag because you’re going to get people bring in random languages just because, then they fuck off to another job and you’re left supporting code that nobody knows.
- namaria 3y agoPeople _mentioning_ Rust means they will bring a random language into your stack if they are hired? This red flag cultural trend is blinding people to nuanced thought.
- 01HNNWZ0MV43FF 3y agon=1 but I did bring Rust to my C++ job. I needed a web server, and I didn't want to put in an order with the web server team, and writing a web server in C++ looked like a recipe for pain.
- zaphirplane 3y agoReally people write a web server from scratch? What industry? Don’t tell me it’s some CRUD
- 01HNNWZ0MV43FF 3y ago
- mmastrac 3y agoI suppose C++ devs are on the correct side of the demand curve, unlike myself. :D I was _really_ tempted to take a C++ job at some point but I held out.
- ClimaxGravely 3y agoIt's been pretty great having one of my primary languages c++ lately wrt job opportunities.
- diego_moita 3y agoAgree, I am still looking for a Rust position, although I have more than 3 years of experience with it. And yes, it is very hard. It seems Rust is in a chicken/egg position: employers avoid it because "there are few developers", developers avoid it because "there are few jobs". Until recently the majority of Rust jobs were blockchain stuff. Now I see a rise in network infrastructure and security.
- godzillabrennus 3y agoSeems like RUST needs work to become easier to learn. Hard for a business to take a risk on using it (outside of a use case absolutely needing a memory safe language) if the talent pool is shallow.
- wredue 3y agoHonestly. Rust is not all that “difficult”. There’s just SO MUCH that you MUST know to be effective. You need to know all of the rustisms. Plus you need to have a general knowledge of memory. You need to understand how memory is being abstracted and how to work within those constraints so as not to be slow. You need to know all of the monads, what they mean, why each exists, what the nuance is, and why you might use one over another in a specific situation. It’s not difficult so much as it just takes so much time and challenging-yourself practice to try to memorize everything. A “being effective at rust” book would probably dwarf a “being effective at C++” book in pages assuming similar prose. And we all know how much of a beast C++ is.
- spoiler 3y ago> A “being effective at rust” book would probably dwarf a “being effective at C++” book in pages assuming similar prose. And we all know how much of a beast C++ is. I've written C++ for close to a decade before switching to Rust, and this is categorically untrue. > Plus you need to have a general knowledge of memory. You need to understand how memory is being abstracted and how to work within those constraints so as not to be slow. If anything, this is more true so of C++. > You need to know all of the monads, what they mean, why each exists, what the nuance is, and why you might use one over another in a specific situation You can use a lot of stuff before needing to know their full history. You don't need to know the history behind 0, null, pointer, numbers and addresses before, how hardware works, etc to use Option, for example. You also don't need to know the (inconsistent and arcane) history of errno and magic numbers to use Result. Etc, etc. This vastly over-exaggerates Rust's complexity. Yes, it borrows concepts from functional programming, but a lot of these concepts are simpler than stuff you deal with in imperative programming. I think the issues here is that people don't tend to like to change their way of thinking, even if it's for the better. Also, Rust has ample in common with imperative/traditional language, so it's not a huge leap into some alien mental model, as you make it sound. Further, C++ makes you think way more than Rust; in Rust the compiler does a lot of the thinking for you. Not to mention, the type system is easiest to reason about than C++'s old (and mentally inefficient) template system.
- oldpersonintx 3y ago[dead]
- xedrac 3y agoThe trick is to introduce Rust wherever you're at, assuming it's a good fit for the task. This may be harder to do if you don't have enough influence.
- tayo42 3y agoQuick way to be annoying and unlikeable at work. The times I've seen rust introduced, and tried it my self, it introduces a whole bunch of related tech debt. Like hacks to make builds work
- beeboobaa 3y agoIf it's a good fit then it's a good fit. Of course you'll need to ensure the CI is set up properly, just like everything else. If it's not a good fit, then you're just forcing it, and yeah...
- xedrac 3y agoWhen I see people on my team (myself included) shoot themselves in the foot over and over with C++, sometimes causing very costly production bugs, and yet I know of a tool that could have prevented nearly all of that pain at compile time, I am going to risk being disliked in order to help lift everyone up. Most people that I mentor on Rust have become completely sold on it after some initial resistance. I don't like change for change's sake, or rewriting things in a new language unless there is some really big payoff.
- tayo42 3y agoI think that argument makes sense in a vacuum. Like considering nothing else, yes, 100%, rusts compiler prevents more bugs then c++ would. I don't think bugs are the only way to waste time or break things. In a large company or complex project your never talking about one small code base. There are inter-dependencies within code and outside code. Rewriting all of anything significant is a huge undertaking. In reality your introducing a new language in addition to cpp/java/go. Its another support task. Its another thing to context switch between when your working on "the legacy" repo and the new stuff. You need to be skilled in both languages. Its like any team that starts writing automation and support projects in python, when their main language is something else. You get trash python scripts and programs. Its another language where technically the domain is right, but the skill is lacking.
- TrackerFF 3y agoWe acquired a product last year, where the entire back-end was written in Rust. Unfortunately, Rust developers were hard to get by, and we didn't have any internally that could maintain the Rust code at such scale. The entire back-end ended up being re-written.
- codetrotter 3y agoNooo :'(
- beeboobaa 3y agoWhat happened to the developers who wrote the back-end in the first place?
- cerved 3y agomaybe the borrow checker determined their lifetime was up
- ducktective 3y ago>The entire back-end ended up being re-written. In Go, I presume?
- rowanG077 3y agoWhy not just learn rust? It really is not that exotic to learn. I doubt it is faster to rewrite it.
- jonnytran 3y agoYeah, this is just baffling. A team can be so averse to learning new tools, good ones too, that they would rather dump their time into rewriting. Instead of getting paid to level up their skills, they'd rather block forward movement of the company's goals to maintain the status quo.
- kasajian 3y ago
- davidmurdoch 3y agoThere are tons of Rust jobs in blockchain.
- kaycey2022 3y agoI’m interested. Can you tell me what do rust developers build or work on in this space? Where do you start networking and build the demonstrable skills to get into blockchain?
- davidmurdoch 3y agoI don't know Rust, but I've worked in blockchain for 6 years. Recruiters are always reaching out to me and most list Rust as a language. In Ethereum (the domain I work in) there are lots of developer tools being written in Rust (Foundry, Build Bear). There is a new Eth node/client being developed in Rust, as well as a "wallet" browser extension. In Bitcoin I know Hiro, a Bitcoin L2, has lots of Rust, but I don't know which parts.
- bmoxb 3y agoYes, that's the issue.
- davidmurdoch 3y agoWhat's the issue? Elaborate.
- surajrmal 3y agoIt's equally difficult to try and hire a team of folks who know rust. There is also a lot of legacy code which doesn't cleanly interop with rust (cxx and the like are not sufficiently easy to bridge the gap). It would be much easier to convince your existing team to start using rust where it makes sense than it would be to switch jobs in search of one which primarily uses that. Over time both of these problems will diminish, but that'll likely take another decade.
- summerlight 3y agoOne thing is that a large fraction of C/C++ devs are hired by big companies. And those tend to have a large amount of legacy code and in-house tooling. Adding one more language to such big ecosystem can be a significant investment than kicking off a new project from scratch, so they need a good transition story to convince stakeholders and get actual funding(=more headcount/jobs). I think Rust has reached to the level where many of us agree on that it's probably a good idea to move on, but probably not many of us have a good idea on how to do that. Hopefully some teams are eager to do that, so we will see some success story soon then more and more teams will explore such possibility.