Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Every sufficiently complex program implements a Lisp engine in disguise.


"The Microsoft NT 4.0 kernel network driver contained a small Prolog interpreter to help puzzle out network interface cards"

Using Prolog in Windows NT Network Configuration

http://web.archive.org/web/20040603192757/research.microsoft...


"Prolog is similar to Lisp on the main points." --Norvig, 1992


So the saying claims. Is the point that something would be better if it wasn't disguised, or is it just a smug boast?


The point is that you can save time by just using Lisp rather than reimplementing it. Which is what Google has done here.

BTW the original is http://en.wikipedia.org/wiki/Greenspun%27s_Tenth_Rule


Or as Guile http://www.gnu.org/software/guile/guile.html suggests, if you're going to add a scripting/extension language to a program, they have a way of growing in size and complexity; just use guile.


That's still a borderline SmugLispWeenie point ( http://www.c2.com/cgi/wiki?SmugLispWeenie ).

If the point is "that program would have been easier for someone who knows lisp to write in lisp" then the reply is "but I was the person who bothered to write it and preferred to spend time getting a usable program than learning lisp", and it says more about the not-real-world-friendly nature of Lisp than about a deep similarity seen amongst large programs.

If the point is "lisp is a language in which you could write it more quickly" that's either unhelpful sideline commentary or smug taunting, depending on the intent.

If the point is "you could learn lisp and rework your understanding of your program into a lispy style and rewrite it in less time than just writing it in a language you know" - if that's true then there should be a lot more lisp programs around than there appear to be, which kind of suggests it's not true or that there's a sticking point which the saying doesn't account for that is preventing it being tested.


Couldn't it be disguised while being an actual embedded scheme interpreter, and not be boastful?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: