The Truth About Lisp
In which the truth about lisp is revealed, and some alternatives are enumerated.
Learning lisp will alter your life.
Your brain will grow bigger than you ever thought possible.
You will rewrite all of your applications in just a handful of lines
Society will shun you. You will shun society.
You will become disatisfied with everything and everyone around you.
Lisp is so simple to learn that you can learn lisp in just a few minutes. I just learnt it now while I was waiting for a bus.
Lisp is so simple that you can implement it in any language in just a few pages of code. This might never happen though, because once you've learnt lisp you'd never want to write anything in any language other than lisp, so you wouldn't bother implementing lisp in any language other than lisp.
Lisp can be fully implemented in lisp in just a handful of lines. I just implemented lisp in lisp, fully, while i was hopping onto a bus and paying for my bus ticket all at the same time.
When you become a lisper, you will laugh at jokes that no one else thinks are funny. You will know things that cannot be expressed in ordinary imperative language.
You will think people are idiots when they state things like "Hi, how are you?" because a lisper simply doesn't need to use such verbose constructs. Lisp abstracts away those patterns of interaction and makes them completely irrelevant. The proper way to greet a fellow lisper is just a tiny nod of the chin, and about a tenth of a wink from your left eye, then point at your tin foil hat. They will know what you mean. if they don't know what you mean then they are not a true lisp programmer and they don't matter anyway.
Lisp was invented a long time ago, before java, before C, before fortran, before computers, before people, before the earth was built. the universe itself is a lisp program so trivial that no true lisper would even both implementing it.
Lisp is so elegant that the very fact that you know even the first thing about it will qualify you for a season as principal dancer of the royal ballet. You will go out on stage in your little tutu and just scribble a few round brackets in the air with your toe. People will gasp in wonder. Unless they don't know any lisp. If they don't know any lisp then they are idiots and they don't matter.
Only lispers have a true definition of fun. Maybe ML programmers too. All of today's languages are based on fortran and lisp. The bad bits fortran, the good: lisp.
If you're good enough to use lisp, you'll soon be frustrated with lisp. Lisp is not an adequate lisp. By the time my bus had made it two blocks I'd written some simple lisp macros that were so powerful they made lisp completely obsolete and replaced it with a new language. Fortunately, that new language was also called lisp. And i was able to prove, mathematically, that the new lisp i'd created was both far superior to lisp in every conceivable way, but also exactly equivalent to lisp in every possible way. I was very excited by this. But also found it very boring.
Reddit is proof that lisp is really powerful. Paul Graham originally wrote reddit, in lisp, on the back of a napkin while he was waiting for a coffee. it was so powerful that it had to be rewritten in python just so that ordinary computers could understand it. Because it was written in lisp it was almost no effort to rewrite the entire thing, and the rewrite was completed in-between two processor cycles. Paul Graham himself was completely written in lisp, by an earlier version of himself, also written in lisp, by an earlier version of lisp. It's lisp, paul graham, lisp, paul graham, all the way down.
Because we've reached the limits of moore's law, the computers of the future will have many-core processors and all our programs will need to be written in a combination of haskell and lisp, that will itself be so powerful that the computers of the future will not be able to implement any of our ideas without creating time-travelling algorithms that borrow processing power from other computers that are further into the future. This sounds difficult, but in lisp it isn't difficult at all. in haskell this is a built-in feature and the way you implement it is just a no-brainer to any one who knows lisp or haskell.
After that, the computer of the future will be called The Lisputer. It's speed will be measured using the Lispunit, which is a measure of how many simultaneous arguments about the inadequacy of lisp can be proposed and defeated by an infinite number of lisp pundits without any actual decisions being made. Today's computers run at just under one lispunit. The Lisputer will run at lisp Lispunits, where lisp is a fundamental maximum constant of the universe that can't be expressed using ordinary imperative numerals. Suffice to say that it ends with an infinite number of closing parentheses.
Anyway. i read an article about lisp on the bus today. Top article. All the articles on lisp are really full on -- my brain starts to explode out my ear. This one, lisp is sin, was by Sriram Krishnan, in which he talked about doing C# for work, but Lisp for fun. And he touched on some of the ways in which C# is moving toward lisp.
Here's some of the technologies that the commentors at that article suggested as possible substitutes for a lisp addict:
- newLisp
- ML
- Perl6
- nermerle
- smalltalk
- biobike
- chez scheme
- Common Larceny
- XSLT
- OCaml
- LSharp
- Lua
- C Omega
- F#
- C# with Linq
Also, one person suggested porting the python libraries to lisp.
Curious for its absense: Ruby (see article Why Ruby is an acceptable lisp, and steve yegge's response: 'lisp is not an acceptable lisp')
(p.s. first person to write a comment that says "Paul Graham did not write reddit" deserves a lollipop.)
'joe' on Sun, 24 Sep 2006 23:56:08 GMT, sez: You forgot dylan which is (supposedly) better lisp then lisp.
Oh and Paul didn't write reddit, he just funded it.
'paul stovell' on Mon, 25 Sep 2006 00:04:46 GMT, sez: You rock Leon, love the article. Forget WPF, I'm learning lisp.
'joe' on Mon, 25 Sep 2006 00:07:49 GMT, sez: I also forgot to say "haskell". Do I get a lollipop?
'Farmer Jeb' on Mon, 25 Sep 2006 01:14:51 GMT, sez: It sounds to me like you're actually having a bit of a go at LISP types. Is this article completely sincere?
'lb' on Mon, 25 Sep 2006 01:27:57 GMT, sez: (no (not (not (really (it is))))
'Don't forget S#' on Mon, 25 Sep 2006 01:38:37 GMT, sez: smallscript.org
'Locutus of Borg' on Mon, 25 Sep 2006 05:59:40 GMT, sez: Somehow I expected Chuck Norris to appear in that article.
'HitScan' on Mon, 25 Sep 2006 09:57:11 GMT, sez: Well, a roundhouse kick to the face /is/ a lot like a closing brace. Chuck Norris invented Lisp.
'Peter' on Mon, 25 Sep 2006 15:39:11 GMT, sez: Leon, I am here to tell you that this is an awesome article.
There are hundreds (perhaps infinite numbers) of similar comments, but as anyone who knows a thing about Lisp knows, these comments are lazy-evaluated and will only arrive when absolutely necessary.
Until that time, I'll just say that this was awesome, my favorite since Defensive Programming!
http://secretgeek.net/Defensive.asp
'Mohamed Samy' on Mon, 02 Oct 2006 15:10:20 GMT, sez: I think there's a small typo: Nermerle is actually spelled Nemerle :)
Great article, by the way! It's been long since I laughed so loudly :)
'Alistair' on Mon, 16 Apr 2007 09:48:02 GMT, sez: Blinder, I feel compelled to pass this onto a mate who has been bitten by the Lisp bug!
'McD' on Mon, 16 Apr 2007 15:34:56 GMT, sez: I've read that once you fully understand LISP you can see posts like this as being "fuzzy headed" and sophomoric.
I don't fully understand LISP and so it appears you've saved me a thorough brainwashing.
To LISP or NOT to LISP. What was the question?
(off to follow more links to confusing advice about languages that seem to have no real GUI API's and are thus... closer to the hardware design of the original IBM mainframe).
'nl' on Tue, 17 Apr 2007 01:22:15 GMT, sez: what about newlisp?
'Adam Bloom' on Tue, 17 Apr 2007 03:41:54 GMT, sez: McD:
Once you fully understand LISP, you will be so far beyond posts like this that half-way through the post you will have written a LISP program that both contradicts and proves every point simultaneously.
'Gernot Starke' on Tue, 17 Apr 2007 03:44:41 GMT, sez: blogged about the merits of LISP myself, found it (too bad) practically unusable since many years, as it lacks basic infrastructure support. Who the hell wants emacs-based IDE's nowadays (I don't!).
thanx for a great essay,
Gernot
'Drew' on Tue, 17 Apr 2007 07:38:33 GMT, sez: The universe cannot be written fully functionally: reading a variable (a measurement) changes the value of the variable :)
So even God used imperative programming... Maybe that is why there are so many suffer in this world ;)
'Chris' on Tue, 17 Apr 2007 14:18:29 GMT, sez: Hilarious!
PS: Timesnapper rocks.
'smug lisp weenies' on Sun, 22 Apr 2007 16:33:23 GMT, sez: i wrote yahoo shopping in lisp and sold it for $$$$$$$$$$$$ during height of internet bubble. now i dont have to do anything except to pontificate that i am a superior programmer. lisp made me rich and famous.
PG
'Duane Johnson' on Mon, 23 Apr 2007 03:47:05 GMT, sez: Io (see iolanguage.com) is also lisp-like in its power, but more modern in its implementation of operators.
'lb' on Mon, 23 Apr 2007 22:17:13 GMT, sez: Japanese translation available here:
http://www.aoky.net/articles/leon_bambrick/lisp_truth.htm
note to self -- links to japanese translation from top of page.
'Ashkan' on Sat, 19 May 2007 11:14:02 GMT, sez: LOL! You made my day man =)) very funny.
'patrick giagnocavo' on Wed, 11 Jul 2007 01:08:38 GMT, sez: Chuck Norris did not invent Lisp. Bruce Lee brought a small jade box with him out of China that had the first version of eval written on it.
However since the Chinese at that point did not have computers they considered it just an intellectual curiosity; also the strict binding of types as practiced by Confucius made eval almost heretical.
Chuck Norris invented the hard drive platters that he needed to store Lisp on, by placing 4 nickels in between the wheels of an old kids' rollerskate and then setting that on top of a broken transistor radio. Then he roundhouse kicked it together.
The only protocol the first drive used was a binary protocol called FIST ONE AND TWO .
'astroboy' on Thu, 19 Jul 2007 13:13:27 GMT, sez: I only commented because the captcha image told me to write 'astroboy' and i found that hilarious =)
oh yeah, good article. lisp is above any other programming language.
'gamer' on Tue, 24 Jul 2007 22:00:57 GMT, sez: lol, I also the word "astroboy". Are all captcha same?
Btw, excellent article. I don't want to learn lisp.
'lb' on Tue, 24 Jul 2007 22:03:06 GMT, sez: >Are all captcha same?
ahhh... as a matter of security i don't discuss matters of security... (that's the kind of recursive statement that lisp lovers live for)
'Gold Mastes' on Tue, 04 Sep 2007 06:27:54 GMT, sez: Well, a roundhouse kick to the face /is/ a lot like a closing brace. Chuck Norris invented Lisp.
'RV' on Tue, 30 Oct 2007 12:03:51 GMT, sez: Glad to know this is easy to learn!
Thanks
'Randy' on Fri, 09 Nov 2007 10:54:22 GMT, sez: I agree that lisp is so simple that you can implement it in any language in just a few pages of code.
'La Monte H.P. Yarroll' on Sun, 11 Nov 2007 20:49:45 GMT, sez:
This space reserved for jelly stains.
'Brian Adkins' on Mon, 28 Jan 2008 22:55:21 GMT, sez: Not sure which is funnier - the Paul Graham stuff or the Chuck Norris stuff :)
'Mentifex' on Sun, 10 Feb 2008 02:33:13 GMT, sez: The entire LISP language can be one single word in Forth.
'MMA' on Tue, 29 Apr 2008 05:31:50 GMT, sez: glod to read ur article , it's very good !
'CaseClosed!' on Tue, 06 May 2008 22:08:54 GMT, sez: Loved it! Been on a long road to Lisp myself - and recently found a spanking new Lisp that roundhouse kicks the others to smithereens.
Check it out:
http://clojure.org/
'sinbad' on Mon, 11 Aug 2008 04:16:40 GMT, sez: Haha I bet Paul Graham regrets all the money he made with Lisp now dude!
'roscoecasita' on Mon, 11 Aug 2008 23:52:07 GMT, sez: Multilisp
'kyaw kyaw naing' on Fri, 12 Sep 2008 12:29:25 GMT, sez: http://ethicminds.blogspot.com/ has a nice post on why Lisp is not ready for useful programming.
'Kaveh Shahbazian' on Mon, 05 Jan 2009 23:20:19 GMT, sez: You should check out http://www.iolanguage.com/; it is just fabulous!
'James Kenwood' on Fri, 30 Jan 2009 22:36:47 GMT, sez: Hi everyone. I am 17 year old and I know a little about the basis of computers and programming. I know very little C. I understand very well topics like memory-management, CPU architecture and the factors of the difference in speed and memory between High-Level and Low-Level Languages (or between two "Same-Level" Languages). I have just started learning a little Lisp, and I found it very interesting, especially about it's reflectiveness (not saying I feel I am just starting to love it). However I haven`t gone into the process of learning and using it profoundly. I just wanted to know your opinion about some things that make me unsure about this language:
Is this language worth using, or at least learning it? Should I concentrate into learning it deep into its bases??
Is it's speed and computer resource management comparable or acceptable in comparison with other market/industry mainstream programming languages?
Sorry for my bad english and thanks in advance!
'lb' on Sat, 31 Jan 2009 00:46:38 GMT, sez: @James
>Is it's speed and computer resource
>management comparable or acceptable in
>comparison with other market/industry
>mainstream programming languages
i would say yes to this.
'mat roberts' on Tue, 03 Feb 2009 18:35:50 GMT, sez: I know someone who implemented a Lisp interpreter in Perl. Which brings to mind the words sublime and ridiculous.
|