[TUHS] Happy birthday, Niklaus Wirth!

Tim Bradshaw tfb at tfeb.org
Sat Feb 17 07:02:46 AEST 2018


On 16 Feb 2018, at 13:42, Noel Chiappa <jnc at mercury.lcs.mit.edu> wrote:
> 
> This isn't really about Unix, but I hate to see inaccuracies go into
> archives...

I think it's also important to say that claims like 'lisp is slow' are essentially meaningless.

It is reasonable to say that 'this program is slow', where 'this program' refers to some definite bit of code, implicitly qualified by the machine it is running on, when the statement was made &c &c.  That's clearly a thing you can go out and test.

It's often safe to say that particular implementations of programming languages are slow, which means that many or most programs run using the specified implementation of the programming language are slower than they might be either using some other implementation of the same language, or written in some other programming language and run using an implementation of that. In particular I can say 'CPython is slow' for instance: this statement might be wrong, but it does at least have some content.

For programming languages which only *have* one implementation or have a single dominant implementation, you can get lazy and say, for instance 'Python is slow'.  What this really means is 'CPython is slow' (ie it's the same as the previous statement).  It's also dangerous because it tacitly assumes that there is only one implementation of Python, which is not  true (or at least has not been true in the past).  But you can usually get away with this.

For programming languages which have many implementations, and still more for *families* of related programming languages, each member of which may have many implementations, the statement loses all meaning.  What does the statement 'Lisp is slow' *mean*?  The only meaning it could really have is something like 'all implementations of Lisp that there have been are slow and all implementations *there ever will be* will also be slow'.  The only way this could possibly make sense is if the person making the statement understood that some feature or features of any Lisp-family language was so hard to implement that it was really clear that no fast implementation could ever exist.  I claim (without evidence) that Lisp-family languages, considered as a whole, do not contain such toxic features.  So the statement simply does not have any meaning.

I think that people making such statements, assuming they are not making them merely as insults (which very often, historically, they are, although I assume not here), make them because they are confused.  What they really mean, at best, is that certain implementations of Lisp-family languages of which they have (often apocryphal) experience have been rather slow.  In fact what they usually mean is even weaker than that: some particular programs (which someone told them about) run in some particular implementations were slow.  But somehow this becomes generalised to 'Lisp is slow': I think it would be interesting to understand how this generalisation happens, although its probably even more off-topic here than messages about Lisp are.

To bring it slightly back on-topic, I think these statements are very like statements along the lines of 'Unix is insecure', which I think we could all agree is meaningless: a particular implementation of Unix might be insecure, but I think the claim that Unix is *inherently* insecure simply has no content.

Finally I'll just add this quote about Stalin, a Scheme compiler by Siskind: "Stalin is the highest performing Scheme compiler and one of the highest performing compilers for any language".

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180216/c3d07321/attachment.html>


More information about the TUHS mailing list