I never wrote any programming tutorial before. That’s a paradox for those who know me, because I absolutely love to learn and teach. Why not a tutorial till now, then?
To put it briefly, I haven’t been sufficiently excited about a programming language before. Sure, there’s Python, Go, Elixir, Kotlin, and many other elegantly designed languages, I realized that at the end of the day, I’m not that interested in web development.
There are hordes of people going crazy over Laravel, Node, React, and what not. I admire these technologies, but I feel they’re not for me. I say that as a web developer, mind you.
Perhaps it’s my arrested development from my college days, when I used to dive into C, C++ and a bit of Linux that I learned later on . . . system programming, yes, that’s the term.
I’m the kind of person that’s never impressed by the “what” of things. For me, the “how” is more important. MySQL is a great database, and it performs joins really fast, but how the hell is it all tied up together? What secret sauce guarantees ACID properties, and allows master-slave replication? How do virtual machines like that of Erlang and Go manage to create and manage hundreds of thousands of lightweight processes, which the operating system has no knowledge of?
Too many questions, too short a life.
I’ve done a tiny bit of Linux system programming in C, and it was intoxicating. Except that now I can’t bear the crushing hard work that C and C++ require. Not to mention memory management.
Rust is a blast of fresh air. Here’s a language that’s not only as fast as C, C++, but allows equal power, more joy, and more safety to the programmer. I like the syntax, and I like its goals. Plus this feels like the right time to hop on to a language that is going to become immensely popular.
I’ve always wanted to write a compiler and an operating system. Or at least fully understand their inner workings. Perhaps I’m too old for that dream, but Rust gives me hope that I can aim for that.
So, with all the preliminaries behind us, let’s get started.