It’s been about a year since I’ve blogged. A lot of stuff has happened in the mean time. I became a reviewer for the Servo browser engine - especially the python code (which felt good), attended a flight training program at IIT, Kanpur (which was pretty fun), had a war with some of the professors (which has postponed my bachelors degree, meh), and now I’m working on a bioinformatics company, writing production code in Rust (which is cool!).
Also, since my commit streak has reached 100 days (with 1k commits), I think now’s a great time to share my story with y'all…
On a side note, this post is intended for those who’re about to get involved in the art of coding, though I assure the rest of you that it will be interesting for others as well.1
Last time, I talked about my experience with Rust as a newbie. Today, I’ll try to explain the hard time I had with the FFI. Well, I shouldn’t have gone into it, but I needed that for communication with Python1.
FFI was hard, because I can’t quite guess what happens along the way. Errors don’t mean much, which means that I can get the results only during runtime (and then figure out whether it’s the cake I want or not). Then, there’s this interesting problem of memory safety. Rust is specifically designed to be memory safe, but most of the other languages aren’t (especially C, and so is its descendant, “Python”). They both can only speak “C” in their low level. So, Rust has to speak C if it wants to communicate with Python.
Though I’ve been playing with Python and JS for a while, getting into systems programming is one of the things I’ve always wanted to do. The increased talks about Rust in the IRC (over the last few months), followed by the release of Rust 1.0 gave me a kickstart, which took me into it about two weeks back.
I got to see the beauty of Rust (thanks to the wonderful book) and I immediately liked it - its syntax, static type system, vast compile-time checking, etc., especially how it tackles the problem of memory safety by introducing a new concept called ownership and it does all those without the use of a garbage collector.
Today, I’ll try to explain what I liked about the language. The upcoming ones are reserved for topics like FFI and concurrency, and how I got around some of the worst situations I experienced (as a newbie who just got into the systems programming world).
I’ve been a wordpress blogger for over two years now. My previous blog Arrow of time was actually meant for writing about Physics (among other random stuff). It was a success, and I had a great time writing in my wordpress blog. But nowadays, I’m more interested in code (than in Physics) and so, I think it’s time to move on.