Tuesday, January 23, 2007

Why We Need Arc

A lot of Lisp enthusiasts, including me, have been eagerly expecting the arrival of Arc ever since Paul Graham announced working on it. I think not only having Arc is exciting, the Lisp community really *needs* Arc.

Back in the old good days Common Lisp had one of the largest standard libraries ever. This has changed dramatically in recent years and now CL's standard library can correctly be called "tiny". This becomes a real problem along with the fact that CL does not have a de facto standard, only an official one which is not sufficient, nor does it have a de facto implementation and although the lack of a single prominent implementation can be beneficial (Darwin's evolution theory) along with the fact that CL's standard library is really tiny in comparison to many new languages today (Python, for example) and there is no way for adding new packages to the standard library, a fundamental problem arises, and this problem for the Lisp community. Many good libraries have been written for Common Lisp, but they are not anyhow part of the standard and neither they have become a de facto standard. I believe, Arc can change that. Why? Because there is one man behind it, just like Python. In case of Python, the language and the libraries are largely being developed and enhanced by the community, but the presence of Guido assures that everything runs smoothly and when there cannot be a consensus (like for the new "if" expression in Python 2.5, or the "print >>" statement) there is one man who decides what to do. This sometimes may sound undemocratic, but at least it will help things run.The position of Paul Graham in today's Lisp community is probably even stronger than Guido in Python community. Many new Lispers will tell you that they turned to Lisp only because of reading Graham's essays and in fact he has become kind of mentor to them.

Whenever we have Arc, we will have a real evolving de facto standard: new libraries can be added to the standard library and language enhancement proposals can be made. We can enjoy an evolving language, as much as Python, Perl and Ruby programmer can.

Some people have been criticizing Paul Graham for announcing a vaporware and that Arc is only a delusion. I disagree with this belief. Why there isn't a running implementation of Arc after so much time, and despite the fact that Paul Graham is always encouraging software startups to release a working edition as early as possible? Shouldn't he follow his own advice? I don't think so. When he encourages startups to release early, he is teaching them how to start a company and finally make money out of it (and releasing early, as he argues, is essential for today's startups). But he himself is not going to start an Arc company; Arc is his hobby, and besides that, releasing even a very early alpha or beta, will start his career of leadership in a community and it will certainly take a lot of time from him; a time he may not be able to spare now. Also, releasing a working edition will probably take his hobby from him. Paul Graham, as far as I can understand from his website, is a language enthusiast and he seems to really enjoy constantly changing the language to see only what happens. He won't be able to do that as much after release. This reminds of J.R.R. Tolkien. Tolkien was a language enthusiast (of course, human languages I mean) and he loved to change the languages he invented, the process which started from early Qneya and resulted the modern Quenya beside others (and not to mention other languages he invented). After release of Lord of the Rings he was not able to play with his favorite hobby as he liked anymore. So I don't think it is correct to blame Paul on not releasing Arc. We're asking him to leave his hobby, and then spare a lot of his time for the coming community. Although he himself has decided to do that, it would be very ungrateful of us demand anything else. We should only hope!

No comments: