This might sound weird, but there’s a few similarities between the rise of Leninism in 20th Century Russia, and the release of the Rust programming language.
Despite people’s opinions, good or bad, there can be no doubt that both concepts are examples of revolutionary thinking – just hear us out. In fact, by just swapping out a few words, it’s scary how closely Lenin’s quotes describe Rust!
“Programmers are basically crazy, and left to their own devices they will ruin the world with their fury. The compiler has taken on the role of the vanguard party, leading the programmer class toward a new future of safety and speed.”
So, if we put our strained comparison aside, what are 5 things every Rust Programmer needs to know?
OK, so we’re not saying that Rust programming language is a tool to push the Communist agenda – there are no reds under the beds. But it’s hard to ignore the very obvious parallels between the Comrade Lenin led Party, and the Rust Compiler.
They both do the thinking for you, leaving you to toil away in the fields and live a happier, more simple life. So long as you appease them, there’s a good chance you’ll never hear from them about any problems. In essence, it helps to unplug your brain a bit. After all – “In Rust language, compiler programs you.”
SO, WHAT IS IT:
Graydon Hoare designed Rust while working with Mozilla, aiming to create a statically typed, compiled, open-source programming language with a syntax similar to C++. The first release came in 2010, and since then the language has been enhanced significantly. Little known fact, Dropbox is built on Rust.
Rust is a systems-level programming language designed with safety in mind. The compiler is there to help you every step of the way, and barring any logic flaws, there’s a pretty good chance your code will work – even if there are a few little mistakes or hiccups.
C++ compiler messages are notoriously difficult to decipher, and while they’ve made huge advancements on how errors are communicated, Rust does it on a whole other level. There is a reason why Rust is one of the hottest programming languages used today.
WHY USE IT:
1 – I Am Speed:
Rust’s speed makes it a pretty good candidate for developers looking to create a game engine. It’s the smart choice for applications that use Virtual Reality to build a simulation. It’s not limited to just gaming though, and can be used as the basis of an operating system, file system, or to write browser components.
2 – Safety First:
Unlike other programming languages that leave you flipping over tables in a blind nerd rage, or tearing out your hair out of pure frustration, Rust offers memory safety and will actively reduce common programming errors.
When building something like a large-scale system where security is important, the inherent design of Rust reduces application security vulnerabilities. It makes debugging and testing a breeze, which is usually the job you’re palming off as somebody else’s problem.
Finding errors fast and eliminating them with ease results in…
3 – Less Is More:
Rust arguably supports more code complexity than any other programming language. It supports generics, and you’ll find it way easier to build powerful web apps using Rust.
In fact, Rust integrates almost ridiculously well with other popular programming languages to create workable interfaces between code.
4 – Cross Dresser:
Cross platform development is a huge feather in Rust’s cap, and powerful, robust performance across multiple applications is something developers are looking for in a programming language.
5 – Giving Back to The Community:
There is a huge, vibrant developer community out there with plenty of how-to’s, tutorials, and webinars on working with Rust. Though the user base is a fraction of that of other programming languages, the community is super helpful and close knit. This is what you want, instead of being met with the jaded toxicity of trolls that lurk in the Java message boards.
THINGS TO LOOK OUT FOR:
1 – New Kids On The Block:
Despite being released a decade ago, the current iteration of Rust as a polished product is still relatively new. As a result, it may take longer to build a large ecosystem using Rust frameworks like Actix, Rocket and Nickle when compared to more popular competitor language frameworks based on the sheer fact that they’ve had way more R&D time and money thrown at them.
2 – Maybe I Am Not Speed:
Though Rust itself works very quickly, the same can’t be said for writing it. It does take longer to compile, and the code itself can be less efficient than other languages.
3 – Hard Yards:
So it has to be said that maintenance is harder – I know, I know, we just said that bugging and testing was a breeze. But the complexities that make Rust so good at eliminating errors in the first place, means more effort has to be spent maintaining the apps written to do just that.
4 – Sprung A Leak:
Rust does have a tendency to leak memory, despite its reputation of doing the opposite. It’s possible to create references where items refer to each other in a cycle, causing a memory leak where the reference count of each item will never reach 0 and the values will never be dropped. An endless cycle.
5 – Steep Learning Curve:
Because it does so much, the complexity of Rust is a double-edged sword in that there is a pretty steep learning curve at the beginner level. The compiler is there to hold your hand and think for you to an extent, and certainly once you’re up and running it’s great, but the fact remains that a novice will be in over their heads.
How Does It Stack Up Against Golang?
There is no denying that Golang has imprinted itself heavily into the titans of industry. Google, Apple, Facebook, Twitter, and IBM are just a handful of the many, many companies that use Golang.
Like Rust, Golang is a versatile multi-purpose language able to build highly modular application systems with a high level of security and fantastic speed. Think big data applications, machine learning, web app development. Network servers are able to be horizontally scaled almost indefinitely, due to the flexibility of Golang.
In truth, they’re both awesome. They’re modern, powerful, widely adopted, and operate at peak performance while offering that memory safety that isn’t present in the older languages like C++.
In saying that, Rust does have the edge in the speed department. The runtime performance is consistent and predictable, and unlike Golang, it doesn’t use garbage collection automatic memory management – which does introduce some unpredictability and problems into embedded systems. Rust gives the programmer full control over the hardware, leaving it to operate pretty close to maximum theoretical performance.
Though Golang has the simpler syntax and a powerful standard library, Rust features allow programmers to do the most with the least code. However, there is no denying that the build speed of Golang eclipses the slower pace of Rust.
For more about Golang check out our blog article, “5 Reasons why Go is the best language to learn in 2021”
To GO or to Rust? That is the question.
So, when do you use Rust? Well, when you have an all-star development team that has different skillsets. Where there is a higher priority for sheer speed and application performance.
Golang would be the pick if a product was needed to be built and launched quickly, and there was no time to hire developers that can work in other programming languages. Also, if there are budget constraints regarding maintenance.
Both are great, and both do an excellent job. What you choose will ultimately depend on where you want your speed, where you want your efficiency, and how much you want your hand held while you build your application.
Unlike Soviet Russia, this is capitalism – you get a choice.
Comparing GO Developer Salaries to Rust Developer Salaries
Aside from ease of use, speed, and other features you definitely want to consider the differences in salary between being a Golang developer or a Rust developer. We’ve done the hard work and crunched the numbers on employee salaries in three major tech cities; San Francisco, New York City and Austin, Texas.
All of our salary averages are base salary only, and don’t include any FAANG RSUs or equity from startups.
RUST DEVELOPER SALARIES:
When it comes to developers specializing in Rust, programmers in San Francisco can expect to earn $111,000 per year – 20 grand higher than the national average of $92,000. Their counterparts in Austin can demand an average of just $83,000. In the Big Apple, average base salary for Rust programmers comes in at $102,000, but the upper limits of what you could earn in each city exceed the $170,000 mark.
GOLANG PROGRAMMER SALARIES:
Golang is where the better money is though, higher across the board. In San Francisco expect an average salary of $148,000, soaring up into the $200,000 range and beyond. The average in Austin is $115,000, but New York is where the cheddar is with an average salary of $157,000 per year.