Despite our best efforts, there’s usually no option but to agree with people when they say there’s no substitute for C or C++. No matter how many new programming languages come and go, these two are seemingly here to stay. But the reality is we don’t actually need to replace C/C++; we just need a programming language to act as an upgrade to them.
C and C++ are extremely potent languages on their own, but a lot has changed since they were first developed. The Internet has transformed them from being a utility to a necessity. People constantly expect faster, better and more elaborate results, which means technology needs to be constantly upgraded to match these expectations. That’s why Mozilla Firefox got a step ahead of the C/C++ game by launching Rust in 2014.
Unlike languages such as Go or Hack, Rust arrived with little fanfare. Only in the last 6 months has it gained popularity as people realise just how important it is (and what they’ve been missing out on). So why is Rust a better option than C/C++ and similar languages (like, say, Go and D)?
1. Resource Management
One attribute where Rust stands out (and completely overpowers Google’s Go for that matter), is the algorithm used for resource management. Using brute force for memory issues is never an ideal solution. While D has learnt that the hard way and is trying to evolve itself into a cleaner version of C++, Google’s Go leaves a lot to be desired on this aspect. Rust on the other hand has followed C++’s lead. With concepts like borrowing and mutable borrowing on the plate, resource management becomes an elegant process. Furthermore, Rust didn’t need a second chance to realize that resource management is not just about memory usage; the fact that they did it right first time makes them a standout performer on this point.
2. Automatic Garbage Collection
Garbage collection and non-memory resources often create issues with some system’s languages. But Rust, which pays no heed to garbage collection, removes the possibilities of such failures. With RAII (Resource Acquisition Is Initialization) and destructors available, the garbage collection problem is entirely taken care of. It should be noted here that of the four languages in question here, only Go relies on garbage collection – the rest rightly feel that they’re better off without it!
3. It’s not Rust, it’s you
We all love blaming the language for issues rather than ourselves. If you’ve already worked with Rust, you’ve probably done this on more than one occasion; in fact, 8 out of 10 new Rust users have! However, what seems right isn’t always right. Just because other languages aren’t able to catch it doesn’t mean that they are right and Rust is wrong. 9 out of 10 times the compile or run time issues that you notice in your Rust programs are also right there in the ‘best practices’ section of C++. So if you’re willing to improve, then Rust is there to help you out with it.
4. Basically, it’s totally worth a shot
Rust may be the new kid on the block, but with pattern matching, algebraic data types, type interface, immutability and compile time guarantees it’s definitely worth a shot. It may be a little different to start with, but once you get the feel of it you’re guaranteed to fall in love.