Dan Weinreb, a Lisp veteran who worked at Symbolics and ITA Software, writes about Lisp, its history, and distributed systems.
HN links it for first-hand Lisp history, the Symbolics rebuttal, the CAP theorem, and Lisp's condition system. Commenters also point to his ITA posts.
What's new? This is just a rewritten version of one side of the Emacs history. Some parts of that are remembered 'slightly' different by other involved persons.
Example: 'He took his revenge by going on a two year coding binge to reproduce every advance that was made by the team of hackers at Symbolics, and match it feature for feature on behalf of Greenblatt and LMI.'
That's a myth.
http://danweinreb.org/blog/rebuttal-to-stallmans-story-about-the-formation-of-symbolics-and-lmi
Weinreb::
'Next, he says: “After a while, I came to the conclusion that it would be best if I didn’t even look at their code. When they made a beta announcement that gave the release notes, I would see what the features were and then implement them. By the time they had a real release, I did too.” First of all, he really was looking at the Symbolics code; we caught him doing it several times. But secondly, even if he hadn’t, it’s a whole lot easier to copy what someone else has already designed than to design it yourself. What he copied were incremental improvements: a new editor command here, a new Lisp utility there. This was a very small fraction of the software development being done at Symbolics.'
But worse, again Weinreb:
'And while I’m setting the record straight, the original (TECO-based) Emacs was created and designed by Guy L. Steele Jr. and David Moon. After they had it working, and it had become established as the standard text editor at the AI lab, Stallman took over its…
ITA still uses Common Lisp. There are excellent blog entries on this matter by Dan Weinreb: <http://danweinreb.org/blog/category/ita-software>. However, they don't require Common Lisp knowledge from new hires. The beauty of Common Lisp is that there really is very little syntax to learn. Afaik, the simply use the excellent Practical Common Lisp book by Peter Seibel as a "training manual".
The problem with Common Lisp, unfortunately, is there's no standard and cross-implementation way to create an application that makes heavy use of network I/O, multi-processing/multi-threading and the file system.
That's would not be a problem internally at ITA (where must have built a standard set of libraries), but it would be a problem for taking submissions for web applications from applicants. On the other hand, even making a complete end-to-end webapp is a part of the Java standard. I am guessing that's why the puzzles that require talking HTTP either to or from a web server require Java.
Several of their other puzzles, however, don't specify a programming language (e.g., bit vector, word rectangle) and could probably be very well suited to being done in a Lisp.
It's in fact hard to capture what Worse is Better was getting at, because it's sort of incoherent. I've tried 2 or 3 times to understand it over the years and concluded that, beyond the most general point (which you describe well, I think), it's not clear what he's really saying. I noticed Rich Hickey said this the other day, as politely as one possibly could: The arguments made in Worse is Better are very nuanced and I'm not sure I understand them all.
http://www.computerworld.com.au/article/313989/-z_programming_languages_clojure?pp=2
By the way, Dan Weinreb has an interesting piece in which he reveals that he was the MIT guy and Bill Joy the Berkeley guy:
http://danweinreb.org/blog/the-worse-is-better-idea-and-the-future-of-lisp
I recommend Kay Schluehr's comment on that page, which argues that arguments like WiB are drawing overly general philosophical conclusions from instances of success or failure in the market.
I understand your argument. Did you see my line Yes, there are other solutions - a price per Gb of traffic is an obvious one. But my point is that I'm not convinced other options should be outlawed yet?
My point is that it may make sense - and be good for consumers - to deprioritize and/or discourage some kinds of usage over wireless. http://danweinreb.org/blog/google-and-verizon-a-new-hope references the story http://www.eweek.com/c/a/Government-IT/The-Truth-About-Google-Verizon-and-Net-Neutrality-371606/. I hadn't read this when I made my original post, but it makes a much more compelling argument based on the same ideas.
It makes the point that for VOIP to work properly over wireless you can't have jittery delivery. One way to solve that it to use QOS to increase the priority of that in comparison to video. That isn't "neutral" access, but it is good consumers.
Dan Weinreb (one of the Multics users who brought the Multics condition system to Lisp) wrote about why "error" is not a great term: http://danweinreb.org/blog/what-conditions-exceptions-are-really-about
Personally, I've not seen it used for arbitrary control flow. If you control the syntax of things inside your block, then macros are probably good enough. If you're passing values outside of your own block, then you probably need continuations.
OTOH, Lisp programmers have a tendency to not care what something is "supposed to be used for". Using Lisp at all is said to be "the most intelligent way to misuse a computer". :-)
> rather than fiddling with very old environments.
I worked on Symbolics machines (rms, please forgive me). I even fixed a bunch of the wire-wrapped original LMs from before Symbolics.
I remember it being earth-shattering at the time (self-documenting? whoa) but I confess I'm curious how much was just the transition from TOPS-20 etc to a completely new single-user environment. All stuff from the dark ages really.
I'd probably fire it up out of nostalgia if nothing else.
BTW: Dan Weinreb's post ("Why did symbolics fail?" linked in the OP) has migrated to here: http://danweinreb.org/blog/why-did-symbolics-fail