The Truth About Lisp
secretGeek .:dot Nuts about dot Net:.
home .: about .: sign up .: sitemap .: secretGeek RSS

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:

  1. newLisp
  2. ML
  3. Perl6
  4. nermerle
  5. smalltalk
  6. biobike
  7. chez scheme
  8. Common Larceny
  9. XSLT
  10. OCaml
  11. LSharp
  12. Lua
  13. C Omega
  14. F#
  15. 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.



'Jessica Simpson Boots' on Sun, 12 Jul 2009 16:50:25 GMT, sez:

I would love to learn lisp. I bet it's a tough programming language to learn.



'(stringNameOfPerson Lispunit)' on Sat, 28 Nov 2009 11:39:27 GMT, sez:

((((LispunitFromPersonsName "Ben F Rayfield")
(LispunitFromURLOfIdea "http://en.wikipedia.org/wiki/Newcomb%27s_paradox"))
(LispunitFromURLOfPerson "http://en.wikipedia.org/wiki/Yudkowsky"))
((LispunitFromURLOfSoftware "http://sourceforge.net/projects/lisputer")
(LispunitFromURLOfSoftware "http://sourceforge.net/projects/schrouter")))



'Alpheus' on Tue, 04 May 2010 15:59:20 GMT, sez:

I've been convinced that I need to learn Lisp, but am still in the early (and very oh-where-are-the-libraries-I'm-used-to? painful) stage of learning it.

Nonetheless, I'd still consider myself a Smug Lisp Weenie--yet I really enjoy this page. In an odd sort of way, it reminds me that I should be learning Lisp!



'Ben F Rayfield' on Tue, 29 Jun 2010 18:20:13 GMT, sez:

I'm less confused about it now, having thought about how to build a Lisputer... I'll explain the plan. First, build Schrodingers Network Router (a peer-to-peer networking software), the build Lisputer to control it, as a plugin.

Copy/pasting from: http://sourceforge.net/projects/lisputer

Plugin for Schrodingers Network Router that chooses the next hop in the path through p2p net. Multiverse branch at even/odd millisecond packet is received (XOR the bit). Many pasts to many futures, aligning sometimes when Lisp code and data overlap

Statistically modifies random numbers generated by Global Consciousness Project, theoretically. They use quantum quality hardware to generate random numbers in many locations across the Earth, sent to Princeton University's computers. No direct connection. Just a change in the gradient of the wavefunction we call reality, caused by small changes in the electricity in the wires of the internet.

Based on the theory that the Kolmogorov-Complexity of the universe is 0, Lisputer will be a tool to statistically cause there to be more or less Newcomb-Paradoxes based on derivatives between Aleph-Numbers (similar to recursion on Cantor Sets) as different ways to view reality, and to write Lisp code to research the effects of those, as measured by Princeton's Global Consciousness Project (Noosphere) and self-measured from network packets received even/odd millisecond.

My intuition (just guessing here) is that if you used a Lisputer to do anything except change "random" numbers (like Princeton's Global Consciousness Project / Noosphere) then it would not work as well (or not at all?) because it would violate Heisenberg Uncertainty, but by using the Lisputer only to create patterns in "random" numbers, and having already decided to do things based on those "random" numbers, you have not violated Heisenberg Uncertainty because you went around it directly to the relevant place/time/thing you wanted to affect... like if you had gambled 10 dollars on Noosphere outputting more 1s than 0s.

Copy/pasting from: http://sourceforge.net/projects/schrouter

Research framework for interactions between UDP packets as exponential amounts of uncertainty build up in divergently branching recursions (EQ XOR) through many computers on the Internet. Set AI goals more/less uncertainty for multiverse blur/sharpen

Small changes in timing of UDP packets generate random numbers.

Uses existing Internet hardware instead of expensive quantum physics equipment.

Most quantum scientists think wavefunctions collapse too fast to flow across the internet indefinitely, but that does not mean they can not reverse that collapse half a second later when you're not looking.

This research framework is basic access to low-level reality, below the level of space and time, based on the theory that the Kolmogorov-Complexity of the universe is 0. This software just provides access, not the software to interact with it. This is all based on the theory that the Kolmogorov-Complexity of the universe is 0. It has never been proven to be 0 or nonzero.


I've got a lot of work to do... collective intelligence related stuff, to increase the intelligence of all 7 billion people enough that they can figure out the laws of physics and then build some intergalactic starships for me.... The 2 softwares above are very easy to build. Can somebody build them for me? Its open-source... why does it matter who builds it? Lisputer is you're idea. I just added some technical stuff to the plans for how to build it. I'll build it later if nobody else does. Lisputer.




name


website (optional)


enter the word:
 

comment (HTML not allowed)


All viewpoints welcome. But the right to delete any post for any reason is reserved. Don't make me do it. Comments may be republished, emailed to your loved ones or printed and used as toilet paper. Who reads this legal bit anyhow?

TimeSnapper is a life analysis system that stores and plays-back your computer use. It makes timesheet recording a breeze, helps you recover lost work and shows you how to sharpen your act.

TimeSnapper won last year's Developer Competition at Larkware.com, and is used by over 10,000 people.

Articles

What then, is b? What then, is b?
SQLike: A simple editor SQLike: A simple editor
Yet Another BizPlan Generator. Yet Another BizPlan Generator.
HOT GUIDS: A hot or not site for guids HOT GUIDS: A hot or not site for guids
How does life get better? One tiny hack at a time. How does life get better? One tiny hack at a time.
24 things to do, and 100 things *not* to do (yet) for building a MicroISV 24 things to do, and 100 things *not* to do (yet) for building a MicroISV
Venture capital won't kill Jeff Atwood, it will only make him Jeffer. Venture capital won't kill Jeff Atwood, it will only make him Jeffer.
A handy workflow image for newbie mercurial users A handy workflow image for newbie mercurial users
Fractal Feedback, a diversion into recreational programming Fractal Feedback, a diversion into recreational programming
Hump-Jumping: How the Education of Computer Science can be Saved, err, maybe. Hump-Jumping: How the Education of Computer Science can be Saved, err, maybe.
Suggested User Experience Improvements for DiffMerge Suggested User Experience Improvements for DiffMerge
SQL Style Extensions for C# SQL Style Extensions for C#
The Movie Hollywood (And My Wife) Doesn't Want You To See: Weekend at Jacko's The Movie Hollywood (And My Wife) Doesn't Want You To See: Weekend at Jacko's
Sysi: the ultimate administrators toolkit Sysi: the ultimate administrators toolkit

Archives .: secretGeek :: Complete Archives
TimeSnapper -- Automated Screenshot Journal TimeSnapper.com    
Version 3.3: true productivity boost

Next Action NextAction
Managing the top of your mind

World's Simplest Code Generator (html edition) World's Simplest Code Generator

25 steps for building a Micro-ISV 25 steps for building a Micro-ISV
3 minute guides -- babysteps in new technologies: powershell, JSON, watir, F# 3 Minute Guide Series
Universal Troubleshooting checklist Universal Troubleshooting Checklist
Top 10 SecretGeek articles Top 10 SecretGeek articles
ShinyPower (help with Powershell) ShinyPower
Now at CodePlex

Realtime CSS Editor, in a browser RealTime Online CSS Editor
Gradient Maker -- a tool for making background images that blend from one colour to another. Forget photoshop, this is the bomb. Gradient Maker


[powered by Google] 


How to be depressed How to be depressed
You are not inadequate.



Recommended Reading

The Best Software Writing I
The Business Of Software (Eric Sink)

Recommended blogs

Jeff Atwood
Joseph Cooney
Phil Haack
Scott Hanselman
Julia Lerman
Rhys Parry
Joel Pobar
OJ Reeves
Eric Sink

Aggregated Links

proggit
dzone
hacker news
dot net kicks

Human Link Machines

interesting finds
a continuous learner's weblog
arjan's world
weekly link post

LinkedIn profile
LogEnvy - event logs made sexy
ShuffleText - fuzzy search for .net
PC Smart Buys - Computer Hardware in Australia
 
home .: about .: sign up .: sitemap .: secretGeek RSS .: © Leon Bambrick 2006 .: privacy

home .: about .: sign up .: sitemap .: RSS .: © Leon Bambrick 2006 .: privacy