Archive for the 'Lisp' Category

Kathy Sierra Speaketh: Are Our Tools Making Us Dumber?

Thursday, February 22nd, 2007

Ah, I guess I don’t have to give you the link, as most people in the know seem to read her blog anyway. But I think her latest post is especially insightful. I have to agree. I have been using Rails for a while, and yes, it’s a great tool to build web applications is a snap. But there’s a lot of “magic” in there, where most coders don’t want to see what’s behind it. Perhaps you can’t blame them, because we all want to save time, so who cares about what’s behind the magic?

But it turns out that it’s very important to see your tool’s guts, and understand them. Because, at some point of time, you will out grow your tool. You want something more powerful, or something it does is not especially to your taste. When I first started looking at Lisp’s suitability for web development, I was bewildered because there seemed very few libraries available, and looking at how slick Rails seems to make the whole thing, it was as if I was thrown back to dark ages of web development again.

However, there was a cruicial difference – the language itself totally rocks, much more powerful than Ruby, I have to say. And much, much more difficult to master. Is it worth the time you invest in learning it? I have yet to find an answer to that, but I enjoy doing it, so I’m still sticking to it for now. And there were quite a few instances where I had to re-implement the tools that Rails offers for my Lisp web project. And it felt good to know what it really takes to make all those “magic” tools. Yes, sometimes it’s good to get your hands dirty and write your own tools. As Kathy says, it will make you smarter, definitely.

Print

Lisp to OO: yawn.

Monday, December 4th, 2006

Paul Graham has this to say about OO in his book On Lisp:

One of the big selling points of object-oriented programming is that it makes
programs extensible. This prospect excites less wonder in the Lisp world, where extensibility has always been taken for granted. If the kind of extensibility we need does not depend too much on inheritance, then plain Lisp may already be sufficient.

Hmm. Interesting.

Print

First Lisp meet at Chennai.rb, goin to foss.in/06

Monday, November 20th, 2006

Hey all. I guess it’s been a while since I posted, trust me, I’ve been busy. Immediately after cl-migrations‘ release, it’s time for me to get busy with preparing for foss.in. If you guys haven’t been to foss.in before, you should definitely consider going there. It’s probably India’s biggest foss-related event. I’ve been going there since the last 3 years, (and I even spoke at the last one). The foss.in folks have selected my talk again, and I’ve been busy preparing for that. It’s always a pleasure to attend foss.in, so I am looking forward to the experience.

I also promised Chennai.rb folks that I will give the same talk here, so I was seriously pulling my hair out until 1pm on Saturday to make everything work :) . Finally, I went to the venue and was pleasantly surprised to see so many folks turn up for the talk, in spite of the incessant rain. I think I didn’t screw it up, and I had a good time talking about Common Lisp. Only problem is, I had to concentrate on high-level web development concepts, and resist the temptation to launch into Lisp syntax, because none of them seem to know too much about it. It’s a challenge to do a language-intro-to-web development talk in 2 hours.

I showed them the demo app I was building for showing off for the foss.in tutorial, what are the semantics I used, how I am actually porting some of the nice Rails concepts into CL web development. Trust me guys, I’ve been having a blast working on this little project. I’m so attached to it now. There are certainly some frustrating moments when you get caught up in some obscure library bug or a macros-related concept that I didn’t understand yet. But yeah, it’s so much fun. Here are my slides for the talk. Be warned, they are in no way complete, and a little short on detail. They just give you a flavor of how the talk will be. They might change a bit by the time I get to foss.in. So see you there! Anyways, I had a blast on Saturday explaining this stuff to people, probably I will have much more on the 24th. Can’t wait :-)

Print

cl-migrations is go!

Sunday, November 12th, 2006

Finally, after a little more than a week’s fiddling during my free time, my first (hopefully) useful contribution to the CL community has been released. It’s called cl-migrations, a simple tool to manage database changes, ported from the popular web framework Ruby on Rails. It’s also my attempt to do some real-world programming with lisp.

The idea started when I wanted to do a simple web application to just check out how it is to build a non-trivial webapp in common lisp. Turns out, most of the pieces are already there: Emacs, SLIME, SBCL, CLSQL, TBNL (Now Hunchentoot) – you name it. I’m particularly impressed with CLSQL – though it does not have the gee-whiz features of something like ActiveRecord, it certainly does it’s job well, including creating CL objects out of database records.

But the migrations feature is missing, one of my favorite features in Rails. I thought, hey, it might be a good opportunity to release my first serious foss contribution. Admittedly, it’s very simple tool and no great shakes, but I think it’s a vital piece that makes web development in CL much easier. I hope to release whatever tools I can during the building of my web app. Yes, it’s true – Common Lisp is like crack – you start hacking on it, there’s no turning back :)

Print