experiments

How I Came to Lisp

Early days

Long back (1995-6) when I was still a college student (studying Math) I first saw Prolog. Chirs Martis, then boyfriend (now husband) of my friend Medha Patkar used to work for some company in SEEPZ and he was working on a project for some Japanese company. They had to migrate an older code base to a newer stack. I disremember the details (I dont think I knew much anyway) but he was learning Prolog as they were using a translater written in Prolog to help in the translation of the older codebase. I was a curious cuss then, and kept pestering him with questions. I was interested and wanted to learn Prolog. This was before we had access to the Internet. So my friend Anuprita took me to the British Council Library where she was a member. I saw a couple of Prolog books – pretty hard for me to understand as I had scant background in Programming (I did not even own a computer at that time). But I also saw a tiny booklet about another language called Lisp written by some Indian author. What intrigued me was the factorial program on the last page – this did not look like any program I had ever seen. I was more interested.

Fast forward to 1998. I tried using CMUCL on my AMD 386DX with 8 MB of RAM. It was very hard to understand what to do at the REPL. Hardly any documentation. Fast forward somewhere 2001 and Internet world. I landed up on comp.lang.lisp and asked a few silly questions. Got my head bitten off seriously – especially by Naggum. But Erik Naggum, and Erann Gatt (Ron Garret) were the reason I persisted. Erann(Ron) by his Nasa stories really awed me. By this time I had also come across Greenspun’s tenth rule of programming…

Soon, 2003, I wrote a software for a cable ISP service provider in Bandra East. I tried CMUCL again. This time with Emacs. I had an upgraded machine – Pentium MMX 200MHz with 32 MB or RAM. Those were the days when internet was provided by small players who provided Cable TV. This software did everything from user management to enabling / disabling users to keeping track of their usage. I used the GNU/Linux ‘tc’ tool to do the traffic shaping. I wrote everything including a jazzy web-frontend in CMUCL. It ran very stably.

All this time I was a Common Lisp noob. But still I loved the simplicity of the syntax and the expressibility. There was also a sense that I was just touching the surface and I needed to find the horizon. From 1995 to this time I had learned programming in C and had done some low level stuff in Dos 6.22 and GNU/Linux. I had finished my Post Graduate Diploma in Networking from the National Center of Software Technology. I had done a bit of network programming. I loved to program in C. But I loved CL too.

So the reasons I persisted and learned programming in Common Lisp are many, mostly incidental. But there was also a sense that this was something beyond the ordinary – it was elegant. There was also some kind of respect for it as few of the greatest minds of this field had used it and respected it.