We all know this. We all know the silly benchmarks which
show that the null program in Lisp is slower than the
null program in Perl or Python. We all know how important null
programs are. Here's some real data that demonstrates how bad
Lisp is. This is from a Windows 2000 PC with something like a
650MHz Pentium and enough memory, using cygwin.
python are what you expect,
weld-upcall is a dumped Lisp image.
KINGSTON$ time perl < /dev/null real 0m0.029s user 0m0.050s sys 0m0.000s KINGSTON$ time perl < /dev/null real 0m0.029s user 0m0.020s sys 0m0.030s KINGSTON$ time perl < /dev/null real 0m0.028s user 0m0.020s sys 0m0.030s KINGSTON$ python < /dev/null KINGSTON$ time python < /dev/null real 0m0.115s user 0m0.050s sys 0m0.060s KINGSTON$ time python < /dev/null real 0m0.086s user 0m0.040s sys 0m0.060s KINGSTON$ time python < /dev/null real 0m0.115s user 0m0.040s sys 0m0.060s KINGSTON$ ./weld-upcall D:/tmp/upcall.ior KINGSTON$ time ./weld-upcall D:/tmp/upcall.ior real 0m0.137s user 0m0.010s sys 0m0.010s KINGSTON$ time ./weld-upcall D:/tmp/upcall.ior real 0m0.136s user 0m0.030s sys 0m0.000s KINGSTON$ time ./weld-upcall D:/tmp/upcall.ior real 0m0.138s user 0m0.020s sys 0m0.010s
So, after the first run (to give the filesystem a chance to cache the binaries), it's easy to see that Lisp is doing pretty badly.
|Language||Average null program time|
Except I made a mistake. That's not the null Lisp program. It's actually a CORBA client making a call across the network to a CORBA server, also in Lisp. In that 0.137s it's initialized the ORB, read the IOR, made a call over the network, and returned.
I'm not a member of the elite. There is no elite. Ignore the man behind the curtain.
I bought my copy of CLtL second hand during a trip to the east coast of the US in the late 80s. I found it in a curious little bookshop whose owner was, perhaps, a little more strange and unpleasant than the owners of second-hand bookshops usually are. I was only learning Lisp at that time, and perhaps did not realise the significance of what I'd found.
The copy was battered and heavily annotated in various hands. The most important thing I did not discover until my return to the UK – to Cambridge, coincidentally. Between two pages were a couple of folded sheets of fan-fold paper, with part of a listing. It was DEC assembler, although some of the mnemonics had rather odd names, and was, perhaps, part of the listing of a version of TECO.
There was writing on the reverse, which seemed to be some kind of
entry in a journal. I'll give it here as best I remember it. I feel
it may bear on the
Cambridge, 5/21/77. I saw them again last night, in the lab. Three of them, perhaps four. The same as before? They are not [several words heavily scored through]. One – the leader? – larger than the others, ten[elided] indescribable. Same smell. Hard to make out what they were saying, voices somehow thick. Talking about something called "the chetef device"? CH like loch. What is it they are planning? Something about sowing confusion in the minds of the weakest to open a door – what kind of door?
5/22/77. They were there again. More clear this time. Number still seems to vary somehow: don't understand, perhaps [elided]? The leader was instructing the others. They seem to plan a new language (new dialect?), which will somehow contain or enable this "chetef device". And this device will open something. But what? Discussion of "vessels" – ships? Mention of LISP: is it a new dialect of LISP they are planning?
5/23/77. Much clearer. Perhaps too clear. They ARE USING US TO CREATE A DOOR THROUGH WHICH [elided]. The language contains subtle inconsistencies which will destroy the minds of those they call "pure ones" or "weak ones" and they will occupy the husk remaining, before [elided]. Terrible fate for [elided]. S[unreadable]eme, surely this can not be part of their plan?
[The rest of the document is mostly unreadable: some fragments I could decipher.]
THEY KNOW MY NAME! [illegible] one of the vessels. How can I escape?
[illegible] not "chetef", "getf" [elided] can this mean?
[Several lines crossed out.]
They are coming. I can see them. Even with my eyes closed I can see them. I must prevent this, I will not be [illegible]. No. NO. They will not [illegible]. Resist. My name. My name is [illegible] My name ... oh, what does it matter who I was?
[Some partly-formed letters followed, and a curious, greenish stain.]
Unfortunately I no longer have the book: I remember it had several pages torn out, and some of the annotations were, frankly, disturbing. I kept the paper for longer, but the nightmares, even during the day, became too much, and I burnt it.