Tech content advisory : Non-techies exercise caution reading this, maybe a bit of geek overload in here. :)
Like most people (ok, geeks!) of my generation, my first tryst with programming was with BASIC. Sometime during the mid-90s my dad gave me a book on BASIC programming, which he found in some book expo he attended. During that time, I had just about barely used a computer, and I didn’t really have an inclination towards technology at all. I do not know what made my dad buy that book for me, but that single thing changed a lot of things – a defining point in my life, if you may. That was my first spark. I just loved how programs were written, the system and the method in them fascinated me – to the point that I persuaded my dad to buy me a PC (It was a big deal then – to put that into perspective, I guess the computer density in my suburb at that point of time, would have been probably < 10 in a 5km radius).
So I got my first chance to try out some real programs. I got QBasic 4.5 installed from a floppy disk and merrily enjoyed my time making text scroll around, drawing human faces, creating monotone music, yada yada. I just fell in love with BASIC – for the simple reason that I didn’t even know alternatives existed and I could program as though writing in English. Even now, I feel so sad when people say BASIC is evil. Maybe it is, but it did end up as a stepping stone to where I am now. Eternally grateful for that.
A few years later, I got my hands on Visual Basic. Boy did that change the game altogether. I could make Windows apps now – with all those shiny text boxes, 3d effects, command buttons! And for the first time I found that I could monetize my hobby. Those days were just wonderful, that awesome feeling of having dispensable income while you are still in school! I saved up all the bits of money I got then doing mini-freelance projects and ended up buying my first camera – one that I still own. Technically here though, I have to agree with the critics. I had learned so many bad practices doing VB that I had a tough time unlearning it all. But whatever it may be, it was definitely worth it. I cannot remember another time, when I had so much fun doing programming. Nothing absolutely matched VB for me in that!
My first encounter with a ‘serious’ language was, again like most people, C and C++. This was a different beast altogether. I had a strong aversion to the language when I first learnt it in school, but slowly but steadily I have grown to respect it. I am still nervous doing C, but no other language actually gives me that feeling of solidness. Can be slippery, but still solid if you do it right. And that’s definitely the language that has lasted the longest for me. I still enjoy doing stuff in C.
College taught me some very interesting languages like Pascal, COBOL and Assembly. Pascal I loved, because of its cleanliness, but I never had any real use with that (except for the exams off course). COBOL was already of archaeological interest only, but served as a measure that gave me an idea of how much languages had progressed since the ’50s. Assembly was my new friend. But refusal to invest time on it (and basic laziness) has never let me really delve into that deeper.
Sometime sandwiched between all those I came across PHP. And that was only because I wanted to do web (this site basically). And web was just about getting trendy at that time. I have always had a love-hate relationship with this one. I used to hate a lot of it, when I was using it for only personal stuff. But ironically after having to professionally code in PHP, I kind of appreciate the language a bit more. That might raise a few eyebrows – but it’s true. It’s not as perfect as Haskell, but in my opinion it does its job well.
My first real ‘career’ language was Java. And the one in which I can say I am the strongest in. It’s bloated, it’s over-engineered – over-engineered, well I guess that was the buzz word for me. I think I like a bit of over engineering. It was more fun designing for the Java than actually doing stuff in Java. That’s obviously also its biggest pitfall. I cannot say I love Java, but I do like it a lot. And it did improve my design skills a lot and taught me how to think big – really big (and off course it paid my bills for 4 years!)
Then I joined MobME. Things were different here – very different. People coded in Python, Ruby, Clojure, Haskell, PHP.. what not. I was a bit overwhelmed at first, but yeah I got used to it. Python – I liked, maybe because it looked BASIC like and invoked a bit of nostalgia, PHP I had already met. Then there was Ruby.. and here’s were I get the mental block. I just can’t get myself to code in Ruby. I’m in a room filled with Ruby enthusiasts, but I just don’t get it. I even went to a RubyCon for inspiration, but no spark. I read everywhere that Ruby brings back the fun to programming. But I still don’t get that feeling. Have been wondering about that for long, why does the whole world get it, but not me! This post is a result of thinking about that loud. Maybe it’s because of all the unkown magic that happens behind what I type? Or is it that my mind far too entrenched in the bracey C-esque languages? I would never know…
Ah well, let’s leave it there then, for I have to go write a billing engine for a service in Ruby… Wish me luck, or a lot of people are gonna loose a bit of money ;)