So I’m a junior developer who is tentatively beginning their career, and I’m trying to figure out which direction to take my career in the long term. Rust is a language I want to work with more, but I’m struggling to figure out what areas of development I should be looking at if I want this to become a reality. At the moment, I know that Rust has made ground in games development and is currently making ground in Linux e.g. RHEL’s work with Rust, security, and embedded. I was wondering where else Rust is making ground in the development world.
With respect to career, systems would be the best place for Rust. Rust has made good ground in game development, but i assume companies would want something more polished and use other languages till Rust reaches a similar level in that domain. Just my assumption though.
It seems that Rust may well get a lot of traction with GStreamer (via GStreamer-Rs and related bits and pieces) and with GTK+ (via GTK-Rs). GStreamer and GTK are currently C realised systems, but are hard to work with in C (no matter others will say), and whilst there are C++ and Python bindings, they never really took off big time. Rust has brought a new feature (memory safety) and many are switching from C to Rust for this. Of course this sort of signal processing an UI work may be very niche, it’s just that I like it.
I would say Rust’s biggest opportunity to impact the landscape of computing is Web Assembly.
May I suggest a different perspective?
It should be less about predicting where the “gold rush” will happen and more about where your passions are. What do you find yourself drawn to? What types of code are you up late writing or learning about “for fun”? Is it embedded systems? Web? Deep learning? Games? Something else?
Starting with your passion allows you to explore an area you already love. Then consider whether it makes sense to bring a tool like Rust into that area. Maybe it’s already there. Or maybe you have multiple areas of passion and Rust is in some of those areas.
Regardless of the area or the technology employed, you will want to be deeply passionate about the area (beyond the financial opportunity it represents) to maximize your enjoyment and to make the most of your career.
Perhaps not the answer you were looking for, but I hope it is of value to you nonetheless.
Best of luck!
I don’t think Rust is specific to any particular domain. Rust’s specialization is more along types of tasks it’s needed for in any domain: lower-level components, which need to be reliable and efficient.
It could be drivers, filesystems, codecs/compression, parsers, compilers, or libraries providing “building blocks” like search or optimization algorithms, or plug-ins fixing performance bottlenecks in high-level languages.
May I suggest a different perspective?
It’s a great perspective to have I agree. To answer your question, I’d say I would want to be working on a new public transport routing system because I feel unhappy with the current solutions out there . Unfortunately, I am also aware of my need to gain skills for working in workplaces and well, earning money . Thus my question focusing more on the gold rush aspect of things rather than my actual interests. I feel there is so much to work on with Rust, but becoming a paid contributor to Rust lang would take years to get to, and I’m not sure where the paid Rust work is happening in Europe or North America since there isn’t a lot of it in Australia .
My interest in Rust comes from wanting to work lower down the stack, and atm I feel Linux systems development e.g. file systems, etc can give me that. I feel this is something that’d also take me years to get into, and I’m not sure what a career pathway to it looks like. I just know to start reading “Linux Systems Development” to get cracking on it
Games development also looks like it’d be lots of fun, as would working on the Rust compiler. I’m not sure about AI atm, and I’m worried about the pace and intensity of security to become a developer for it .
It’s just a little tough figuring things out. Atm I’m heading down the cloud services + AI road.
If you’re looking for further understanding low-level systems programming on Linux, we could always use help with the nix crate. There we try to wrap POSIX and libc APIs safely to make them Rusty. A great into into some Linux basics.
Cryptocurrencies are big right now and you could help with the Monero miner program Mithril on some algorithms that need implemented. I’m sire that would turn into a bigger project than you think.
I was unemployed earlier this year and really dove into Rust as well but quickly found many aspects of it immature and got sucked down a rabbit hole of libraries, between CI, cross a compilation to crates for OS X, Windows, and Linux APIs to GUI programming, all required me to dive into them to built Gattii. I ended up working the same hours as a full-time job to make that happen, but I may also be a mediocre programmer. So my recommendation is to choose something that may be deep but has a solid foundation and try to reduce the scope as much as possible, whatever it is. I don’t suggest writing something that works cross-platform for example if it ties into system APIs or you want CI coverage for example.
(Sorry about the lack of links, I’m on mobilw.)
One area to consider is computer security. There is a huge need in the world for people who understand it, and I think that Rust will end up being an important tool in a security professional’s toolbox because it should be easier to create secure software in Rust than in C++.
+1 for security. Often times people need to create solutions that have to run both in cloud and on appliance since appliances have limited capacity having high performance secure lang. looks like an attractive proposition. Plus ability to do things like endpoint agent and server in a single language and given web-assembly progress even web Front End at some point.
To answer your question, I think Rust is general enough and expressive enough so that it can be useful in any area. It has still a bit to mature, so the actual uses are still being developed.
I’ve found a wonderful application for Rust is in DSP, specifically audio. I’m working with some very smart people to help maintain a lib for creating Audio VST plugins.
The Rust Audio GH organization also has some great examples.
My favorite things about Rust are how expressive it is, and how performant it can be while still being relatively easy to read and write. Compared to using C++'s (the JUCE library is industry standard for audio plugins) Rust feels a lot safer.
Games, kernels, operating systems, libraries, utilities, services, backend web dev, frontend web dev, cryptocurrencies & blockchains, desktop applications, scientific computing, AI & machine learning, IoT, parsers, high frequency trading, and many more areas are applicable to Rust.