This is a read-only archive!

Arc

There's apparently some excitement over Arc which is a new Lisp being designed from scratch by Paul Graham.

There are a lot of varied opinions in the Lisp world about this, I guess. Many people are saying Arc is no different than a hundred other failed attempts to make a new Lisp over the past 5 decades. On comp.lang.lisp Arc has been thoroughly derided (though it seems like almost everything is thoroughly derided on that list).

On the other hand, here we have something new in the Lisp world (everyone likes something new), and it has a big name behind it (everyone likes a smart and charismatic leader). I think those two things alone give it a shot. If there's anything PHP or Java or any number of other horrendous languages can teach us, it's that whether it deserves it on technical grounds or not, a big enough community can make anything a success. For some reason I can't help but think of the mobs of people begging drobbins to fork Gentoo. Hmm. Maybe if I forked my blog I'd double the amount of people reading it. (Oh right. Charismatic leader. Darnit. :( )

In all seriousness, I don't know enough to judge Arc or any of the other Lisp spinoffs (e.g. Clojure looks neat). I barely know Common Lisp to begin with. I've never tried Arc and don't necessarily plan to any time soon, due to lack of time if nothing else. But I do know that there are plenty of things about CL that I dislike, and can't help but think mostly everyone else also dislikes. Yet these things stay the same, for decades and decades.

(For example pathnames. If Common Lisp pathnames weren't so broken, it wouldn't have taken a whole chapter of PCL to write a wrapper that makes them usable. Yeah there are good historical reasons for the way pathnames are done in CL. But I don't care. I live in the present. If I'm transported back to 1980, I'll want to have 1980's style pathname libraries. And maybe in 1980, a function called ENOUGH-NAMESTRING meant something to someone? But what I need today is 2008 style pathnames. There are other things in CL that are just as crusty and awkward, and "historical reasons" are always touted as the excuse. These kinds of things kill me. Even if I fix them in my own code, chances are I'm going to have to read someone else's code where these things aren't fixed, and so it crusts up the whole community. Arc has a chance to fix all those things. Whether it'll take advantage or not is yet to be seen.)

I really do think that a large part of what determines the success or failure of a language is the amount of people using it. There's no doubt that if more people were using Common Lisp, all Common Lisp users would benefit. Even if most people are dumb newbies, dumb newbies eventually turn into worthwhile contributors if they stick around long enough. And even dumb newbies have a good idea now and then. It only takes one good idea. The community can take that one good idea, ignore all the other stuff, and everyone benefits. And even if a person has no good breakthrough ideas, there's a lot of grunt-work that needs to be done to keep a language healthy. Little libraries that aren't hard to write but still make everyone's life easier once they're written. Documentation. Community support, helping others with troubleshooting, introducing new people into the fold. These things are important. I'd love to see a Lisp with a community like Ruby'.s

Paul Graham's site says:

The Arc community is very newbie-friendly, because all the users are newbies to some extent.

And that is very refreshing, and maybe it's enough to get a critical mass going. But who knows.

Whether Arc dies a horrible death or is the next big thing, it's kind of exciting to be present at the birth of a language. I tend not to find out about things until they're already big enough to get everyone's attention. It's fun to watch Arc being born.

February 08, 2008 @ 7:30 PM PST
Cateogory: Programming
Tags: PCL, Lisp, Arc, Clojure