The endless droning

:: lisp, doomed

Someone asked about better Lisp IDEs on reddit. Such things would obviously be desirable. But the comments are entirely full the usual sad endless droning from people who need there always to be something preventing them from doing what they pretend to want to do, and are happy to invent such barriers where none really exist. comp.lang.lisp lives on in spirit if not in fact.

[The rest of this article is a lot ruder than the above and I’ve intentionally censored it from the various feeds. See also corrections and clarifications.]

First of all it is nice to see people dismissing LispWorks because it’s ‘too expensive’. LW actually has an IDE and it actually does provide an editor which (while an Emacs inside) can pretend to be a native mac or windows editor. And it’s portable: you can develop on Windows and then build and deploy on Linux and that just works, and has done for at least two decades. But it’s ‘too expensive’: a new license for LW might cost the equivalent of a few days of employing a programmer, and the support on that license (which gets you upgrades for ever) might be a day or so. If that’s ‘too expensive’ then your costing is so fucked you might as well give up now and become a beggar. (The announcement of the Haskell IDE which triggered the post is for a commercial one, by the way, so let’s not have any ‘oh, but it’s not ideologically pure’ noise, thanks.)

And then we get the endless ‘things were better on ⟨ancient technology of your choice⟩’. Here’s the thing: I used both Symbolics and Interlisp-D based systems, extensively. They weren’t better than the LW IDE. They had one or two neat features that the LW IDE doesn’t because it’s hard to do on modern hardware, but they were not better. In the case of Interlisp-D systems it took a couple of weeks of practice before you could even use the thing for more than ten minutes without spending most of the time wondering what some front panel code meant (it always meant ‘I have crashed for reasons I cannot explain and you have lost your work and must now reload the sysout and that will take half an hour’) and how to restart it. That was … harder than learning Emacs. Those ancient systems might have been better than Emacs/SLIME … but they might not, I am not sure. But always, always there is the endless mindless droning from people mourning some distant lost golden age: well, I was there and that golden age never existed.

And then there’s the ‘but the new programmers find Emacs hard’. Seriously? Because people starting to learn Lisp are learning a language whose key idea is that it is a programming language in which you write programming languages. Lisp makes doing far more possible than other languages, but nothing is ever going to make it easy because designing programming languages turns out to be hard. Lisp is a language all of whose interesting features are intellectually difficult ideas. If you are put off Lisp by having to learn some different keys to press, give up now and learn Python or some other intellectually undemanding language instead, because Emacs is not remotely the hardest thing you are going to have do deal with. This is like people doing maths degrees complaining about the squiggly Greek characters: if that’s putting you off maths, don’t do maths. OK, ζ and ξ are kind of fiddly to write, but understanding what a Banach space is actually is hard. And, by the way, at some point you are going to have to learn LaTeX, and if you think Emacs is hard, you have a whole other think coming.

Oh, and by the way, I’ve worked somewhere where large numbers of people from non-programming backgrounds wrote vast masses of Python. How did they do it? They used Emacs: some of them probably used vi or vim. But they were actual scientists so they know what hard things are, and knew that learning Emacs was not one of those things.

And finally, there’s a long diatribe from someone listing all the steps they had to go through to get a CL IDE set up on a machine. This same person claims to have run teams of Lisp programmers. Well, there’s this idea called programming: if you have a long laborious set of tasks to do more than once you write a program to do that for you. And yes, I have done just that.

All of these people want to lose: they need there always to be something in the way that prevents them getting whatever it is they pretend to want to do done. If such a barrier is removed they will build a new one: I know this because I have done just that and watched them build their new barrier so they could avoid actually doing anything and keep complaining. These barriers do not exist: if you want a cross-platform IDE for Lisp that IDE exists. If you don’t want to use a commercial product, Emacs and SLIME/SLY are free, and fine. And yes there is a learning curve which is somewhat steep, but intellectually difficult things have steep learning curves: if you’re going to become a productive mathematician you are going to go through four years of very steep learning curve indeed, and if you’re going to become a productive Lisp programmer you’re going to go through a learning curve perhaps a tenth or less as hard as that, of which Emacs is one tiny part. If you’re not up to that, don’t write Lisp.

And if what you enjoy doing is whining in public about how things are always in your way then fuck off.