More than a year passed since I had started to publish a series of interviews with Lisp hackers. It was a great project, but I'm going to finalize it for now. All of the interviews are collected in a free ebook that is available through leanpub. You should share it with your friends and on the interwebs! ;)
Below is a few observations on the whole series that I think are interesting.
The Road to Lisp
There was a famous survey on the Association of Lisp Users site called "The Road to Lisp". I have somewhat replicated it in the interview and some of the answers where quite surprising, as far as I'm concerned.
First of all, people came to Lisp through friends, who gave them a copy of SICP or showed some fascinating Lisp programs. There's also a mention of online forums (usenet, irc, etc.)
So SICP is the most influential book, followed by Peter Norvig's PAIP. The other mentioned sources are "Writing GNU Emacs Extensions" by Bob Glickstein, "The UNIX-Haters Handbook", and Paul Graham's "Beating the Averages".
Two interesting things get notable mentions as leading to Lisp: computer graphics and Caml-light (for the French guys).
And receiving it as legacy from the dad is somewhat priceless!
I'd also like to add my experience here: the 2 things which brought me to Lisp were Eric S. Raymond's "How to Become a Hacker" which mentioned that you need to learn Lisp to become a better programmer, and Peter Seibel's great "Practical Common Lisp", which came out after all the interviewed hackers were already into Lisp, so they couldn't have been influenced by it.
This was an interesting question, because it made most of the persons go out of their comfort zone a little: after all, most of them are fond of Common Lisp. And the answers are interesting, although expected.
Basically, it boils down to 3 things:
- the arrogance of the community and/or outsiders prejudice against it
- lack of static typing and other ways to express constraints on the program
- disdain for the platform it lives on, which includes problems with embedding into other systems, no good way to write one-liners, etc.
Also noted were:
- necessity to struggle to achieve high performance
- the unspecified corners, but this problem is becoming less and less acute
A Lisp project
This was a question, proposed by Zach Beane: what Lisp project would you do if you weren't constrained in resources and other stuff. For the sake of completeness, I've also followed up with him, and here's his answer:
Right now I'd love to spend more time polishing Quicklisp. I'd love to make a good system for discovering the functionality you need (it's not easy to make the connection from "I need to fetch web pages" to "drakma"). I'd like to make interfaces for accepting user feedback and reviews. I'd like to make it easy to make connections from a project to its website, bug tracker, mailing list, documentation, etc. I'd like to publish my build tools and build logs. I'd like to make EVERYTHING a lot better, to make the system not just better than what CL had before but better than what other language ecosystems offer, too. It's all a lot of work.
As a fantasy project, I'd love to make a system for interesting visualization of complex data, something where it's easy to splat something quick and dirty on the screen/page, but which can grow in capability as the need arises. Or maybe just some tool for making audiovisual toys, with cool pictures and noises coming out.
The other interesting answers were:
- another take on reflection
- an OS, based on Linear Lisp, bootstrapped from Racket or Maru
- Lisp bridges to other runtime systems
- a Common Lisp object database
- a Go-playing program
- and, surely, an own Lisp dialect or even a separate programming language :)
It's one of the popular myths that it's impossible to find a Lisp job. Well, it's definitely harder than to find a Java one, but speaking about the job's quality YMMV. Some of the Lisp companies were mentioned in the interviews:
- ITA Software that employed up to 50 Lisp developers in its Boston office and was bought by Google for almost $1B
- Franz in the Silicon Valley
- Teclo Networks in Switzerland
- MSI in Japan
- Novasparks which operates from Boston and Paris
But a lot more weren't mentioned. To name a few:
- probably, the biggest Lisp company in the world — the Portuguese SISCOG with 70+ Lisp developers
- Clozure Associates band of Lisp gurus from the US East Coast
- Copyleft from Norway
- RavenPack from Spain
- Australia's division of Accenture
- Agri-Esprit from France
I would say, that most of them work in pretty interesting domains and with challenging problems. There are also many more one- or two-man Lisp shops scattered around the world. So, yes, Lisp companies are rare, but there's nothing wrong with relying on Lisp in a company: it doesn't fail you and may even bring some outstanding results. Not to mention the fun of the process itself...submit