Like most of my blogposts in recent times, this one starts in the dark ages. School was when I was introduced to computers and programming. The staple diet of computer classes then was Logo. With 2 or more kids to a computer, we used to move the turtle around the screen for the entire period. It was fun, trying to confuse the computer with inputs from what was essentially 2 brains acting as 1.
Now, for whatever reason, the teacher decided that I was among the better kids in class, and decided to put me in the school wide group of students that prepared for a CSI exam. And so, I was promoted to learning QBASIC on 386s (or were they 486s?) and DOS. Here I was, spending my Saturday mornings with these kids who were 2-3 years older than me. I was trying my best to understand loops inside loops and the basics of recursion. I had jumped into the deep end, and did not come out. I failed that CSI exam. Due to other reasons, I changed school, and I never attempted that exam again.
Fast forward to college, and this was the first time that I had a computer properly to myself. The intervening years had me battle with family and use the computer to play RoadRash and NFS3 (both official copies, mind it), and listen to music. Today, I understand why my usage pattern did not go down well with the family. But, I digress.
So, college happens, and I learn C from the veritable Balagurusamy, and piddle around with AutoCAD on the college machines. We all had access to a nice Linux box, where we all did our basic C assignments. Luckily, I had a cool instructor for the labs and he piqued my dormant interest in computers in general, and Linux in particular. So, I get my computer in the second year. It was shiny and came bundled with Windows. After trying to use Vista on 512 MB RAM (those were the early days. Later, with SPs, Vista became much more manageable), I decided to pop in an Ubuntu CD and dual boot.
One thing led to another, and it turned out that the Photography Club on campus required a local ‘Flickr’. Me and Aman looked around, and settled down on Gallery. Aman knew a bit of PHP, and I had also started reading up on HTML and JS around that time. We decided to split the work, and I took up the hosting. That was the beginning of an amazing journey.
I learnt PHP. Then, I played around with WordPress. I lost the entire Gallery database to an Ubuntu re-install. Then, I learnt about sys admin ing. Then, I worked on a few college projects. I interned with a few friends at their startup, and wrote some more PHP. I worked on phpMyAdmin for GSoC. I met tonnes of awesome people who also developed, first in PHP, then in other languages. And then, I intern-ed at Zomato. All this while, I learnt. It reached a point where I knew most of the PHP reference manual pages by heart. Especially the ones to do with strings, regular expressions, databases, XMLs and cURL. I worked on a good range of problems, and looked at lots of different codebases.
I also worked on JavaScript. I started off as a jQuery code monkey, and slowly started to dig deeper. I studied Python from the official tutorial. I also read up a bit about RoR. And then, I had worked with ABAP, SAP’s proprietary language, which is awesome at handling tuples with lots of numeric data (in other words, lots of business-y data). Slowly, PHP’s limitations started to dawn on me. Much has been written about PHP’s quirky standard library function signatures. And, then, PHP is cool if all you want to do is pull records from a DB, serve them over the internet, and send some more records back. But, computer programming isn’t all about the web. There are those things where you process lots of (text) files and images, or run benchmarks on systems, or assist businesses in their day to day work.
Earlier this week, I had to take a bare bones Python script written by a colleague, and hand hold it through a makeover to look like Hermione Granger at the Yule Ball. The makeover is far from complete, but I’ve fallen in love with Python. Things are a lot saner in this universe. And, that strong emphasis from the get go on readable code just makes everyone’s life so much easier. Also, functional programming does not require a lot of voodoo code. And then, there is nodejs with the event driven model. The event model always made sense to me, and I loved jQuery due to this. So, I’ve taken the leap and decided to explore new horizons, leaving behind lands that I’ve known for what seems like forever.
The point of all this blabbering was, I have PHP to thank for a lot of things. But, I no longer feel like working in PHP. To paraphrase Douglas Adams, ‘So Long, and Thanks for all the Fish’…