I think it’s a lesson I should have learned already. Provide zero-cost access to a public space, and zero-cost commercial junk – spam – will dominate its content.So comments are now off by default on this blog. If you have something you want to say about a post, I can recommend you put it on your own blog. That’s what links are for. Feel free to email me to let me know to read your blog. I’ll probably open up discussion-worthy posts for comment from time to time as well.I’m tired of ‘moderating’ spam. It’s time in my life I no longer want to spend.
Ok, so I’ve made it up to chapter 18 of my book, and I’m still enjoying the read. There was a brief diversion while the book chased the illusion of an OS/filesystem independent file naming library, but it’s keeping me entertained.
Perhaps by working for another OS company, the dream of unifying the various Unix & Win32 filesystems seems less important to me. Better really to give in, and recognise that the file namespace is the domain of the OS/filesystem/user, and there are too many leaks in abstractions above them.
Anyway, the title of this post is why not Lisp – putting aside my reservations of yesterday – why isn’t it more popular? There are the many reasons noted by Paul Graham, but there is a more prosaic one that hit me when I started.
There is no implementation that seems reasonable to use!
On my chosen OS (Mac OS X at the moment) I have the grand choice of three commercial implementations, and four open source implementations. All seem to have a significant gotcha.
Only one of the commercial implementations appears to have a ‘free redistribution’ model, the other two want some percentage or down payment from the sales of any product I create. Yuk.
Of the open source implementations, none are complete enough to host all of the examples from the book I’m using to learn the language. Some lack threads (hello – this is 2006), and others lack Unicode (hello – wave if you don’t speak ASCII English).
Whether the royalty free commercial implementation supports the features needed by the book is not clear (great sales pitch!). The book’s author recommends a vendor without a price list, which I assume to mean they’re in the we-want-a-percentage camp.
For any more popular language there is usually a bit more choice and competition among the tools vendors. As I see it, on Mac OS X, there isn’t a clear ‘one stop shop’ implementation I can choose to: learn the language with a popular text, and then distribute my first few applications ‘for free’. The situation on Win32 doesn’t look much rosier, although I’ve not looked at the details.
No wonder no-one is using Lisp.
Many years ago, the first programming course on my degree was in a language similar to Lisp (that I now forget), and I thoroughly enjoyed using it. MacLisp was also around on campus, for use in ‘maths stuff’. Not being a mathematician, I ignored that.
Both experiences made me write off lisp (and similar brethren) as a practical language – they seemed too small, too focussed on things like recursion that aren’t all that useful on constrained systems.
However, there’s a famous quote around that notes that everyone should learn Lisp, if only for the experience, and the write up in Hackers and Painters persuaded me to have a go.
So far, I’m up to chapter 15 in ‘Practical Common Lisp‘, and I think I may be hooked!