hn-classics/_stories/2006/12230869.md

236 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
created_at: '2016-08-05T08:54:26.000Z'
title: The truth about Lisp (2006)
url: http://www.secretgeek.net/lisp_truth
author: 0xmohit
points: 120
story_text:
comment_text:
num_comments: 155
story_id:
story_title:
story_url:
parent_id:
created_at_i: 1470387266
_tags:
- story
- author_0xmohit
- story_12230869
objectID: '12230869'
year: 2006
---
[Source](http://www.secretgeek.net/lisp_truth "Permalink to The Truth About Lisp (secretGeek.net)")
# The Truth About Lisp (secretGeek.net)
# ☰
# ![secretGeek logo][1] [secretGeek.net][2]
## Recently
* [I'm .ok you're .ok: introducing folder profiles for bash and powershell][3]
* [2017 by the Numbers][4]
* [Your photos are a mess! Maybe this PowerShell script can help][5]
* [How to Discuss the Important Things With Your Kids][6]
* [Navigating at the command line][7]
* [(Complete archive...)][8]
[Sign up for my book!][9]
[Follow @secretGeek][10]
## Resources
* [TimeSnapper, auto screenshot][11]
* [NimbleText, Text Manipulation][12]
* [NimbleSET, compare two lists][13]
* [nextAction, top of mind][14]
* [Aussie Bushwalking][15]
* [BrisParks][16]
* [api-map.com][17]
* [secretGeek wiki][18]
* [Today I Learned][19]
## Blog roll
* [Joseph Cooney][20]
* [Phil Haack][21]
* [Scott Hanselman][22]
* [Simon Harriyott][23]
* [Julia Lerman][24]
* [Rhys Parry][25]
* [OJ Reeves][26]
* [Bronwen Zande][27]
## [YouMustGet.It][28]
# The Truth About Lisp
September 24, 2006
[html][29], [[ruby]][30], [coffee][31], [blog][32], [microsoft][33], [UX][34], [linguistics][35], [google][36], [ideas rat][37], [functional][38]
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][39] 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][40]. 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][41] 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][42]. 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][43], 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 bother implementing it.
[Lisp is so elegant][44] 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][45]. 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][46]. 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][47] is proof that lisp is really powerful. [Paul Graham][48] 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][49] 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][50] 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][51], the computers of the future will have [many-core processors][52] 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][53], 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][54]
2. [ML][55]
3. [Perl6][56]
4. [nermerle][57]
5. [smalltalk][58]
6. [biobike][59]
7. [chez scheme][60]
8. [Common Larceny][61]
9. [XSLT][62]
10. [OCaml][63]
11. [LSharp][64]
12. [Lua][65]
13. [C Omega][66]
14. [F#][67]
15. [C# with Linq][68]
Also, one person suggested porting the python libraries to lisp.
Curious for its absense: Ruby (see article [Why Ruby is an acceptable lisp][69], and steve yegge's response: ['lisp is not an acceptable lisp'][46])
(p.s. first person to write a comment that says "Paul Graham did not write reddit" deserves a lollipop.)
[Next →][70] ←[ Previous][71]
 
I'm currently writing a book about **how to build your first product**. If you want to build **your first product**, please [sign up to be notified when the book is available][72].
(By the way, I read every comment and often respond.)
## Your comment, please?
Your Name
Your Url (optional)
Note: I may edit, reuse or delete your comment. Don't be mean. [Next →][70] ←[ Previous][71]
[1]: http://www.secretgeek.net/image/logo_64_43.png
[2]: http://www.secretgeek.net/
[3]: http://www.secretgeek.net/ok
[4]: http://www.secretgeek.net/2017_review
[5]: http://www.secretgeek.net/renamephoto
[6]: http://www.secretgeek.net/seven_segments
[7]: http://www.secretgeek.net/up_up_up
[8]: http://www.secretgeek.net/Archive/Complete
[9]: http://YourFirstProduct.com "don't just hover over this link all day
reading the title text...
go ahead and click it!
I made it orange!
What more do you want?"
[10]: https://twitter.com/secretGeek
[11]: http://TimeSnapper.com "Automatic Screenshot Recorder, Make Timeshets a snap"
[12]: http://NimbleText.com "Text Manipulation, Code Generation, Data Extraction"
[13]: http://NimbleText.com/Set/About "The Venn Diagram Comparison Tool"
[14]: http://TimeSnapper.com/NextAction "Manage the top of your mind"
[15]: http://AussieBushwalking.com "Like Wikipedia but for Bushwalks and Hikes"
[16]: http://www.brisparks.com.au/ "Find and recommend the best parks in Brisbane"
[17]: https://api-map.com/ "Improve integration with this powerful mapping tool"
[18]: http://Wiki.secretGeek.net/ "secretGeek wiki (focused on recreational mathematics, esoterica)"
[19]: http://TIL.secretGeek.net/ "Today I Learned (ever growing reference collection of technical things I have learned)"
[20]: http://jcooney.net/
[21]: http://haacked.com/
[22]: http://www.hanselman.com/blog/
[23]: http://harriyott.com/blog
[24]: http://thedatafarm.com/blog/
[25]: http://i-think22.net/
[26]: http://buffered.io/
[27]: http://soulsolutions.com.au/blog/
[28]: http://YouMustGet.It "Find and share wonderful products"
[29]: http://www.secretgeek.net/Category/html
[30]: http://www.secretgeek.net/Category/%5Bruby%5D
[31]: http://www.secretgeek.net/Category/coffee
[32]: http://www.secretgeek.net/Category/blog
[33]: http://www.secretgeek.net/Category/microsoft
[34]: http://www.secretgeek.net/Category/UX
[35]: http://www.secretgeek.net/Category/linguistics
[36]: http://www.secretgeek.net/Category/google
[37]: http://www.secretgeek.net/Category/ideas+rat
[38]: http://www.secretgeek.net/Category/functional
[39]: http://web.archive.org/web/20061011071033/http://blog.amber.org/2004/12/23/learning-lisp/
[40]: http://www.faqs.org/faqs/lisp-faq/part1/section-5.html
[41]: http://cogsci.ucsd.edu/batali/lisp-course/lisp-in-lisp-1.html
[42]: http://www.cabochon.com/stevey/blog-rants/tin-foil-hats.html
[43]: http://www-formal.stanford.edu/jmc/history/lisp/lisp.html
[44]: http://cs.umaine.edu/chaitin/lisp.html
[45]: http://www.technicat.com/writing/lisp.html#It%27s+Really+Lisp
[46]: http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html
[47]: http://programming.reddit.com
[48]: http://www.google.com/search?hl=en&lr=&q=reddit+site%3Apaulgraham.com
[49]: http://www.aaronsw.com/weblog/rewritingreddit
[50]: http://www.paulgraham.com/lisp.html
[51]: http://en.wikipedia.org/wiki/Moore's_law
[52]: http://www.knowing.net/PermaLink,guid,753006f4-48d0-4afe-ae1c-a96d96875cf8.aspx
[53]: http://blogs.msdn.com/sriram/archive/2006/01/15/lisp_is_sin.aspx
[54]: http://www.newlisp.org/
[55]: http://www.dcs.napier.ac.uk/course-notes/sml/
[56]: http://dev.perl.org/perl6/
[57]: http://www.nermerle.org
[58]: http://www.smalltalk.org/
[59]: http://www.biolisp.org/
[60]: http://www.scheme.com/
[61]: http://www.ccs.neu.edu/home/will/Larceny/
[62]: http://www.w3.org/TR/xslt
[63]: http://en.wikipedia.org/wiki/OCaml
[64]: http://www.lsharp.org/
[65]: http://www.lua.org/
[66]: http://research.microsoft.com/Comega/
[67]: http://research.microsoft.com/projects/ilx/fsharp.aspx
[68]: http://msdn.microsoft.com/data/linq/
[69]: http://www.randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp
[70]: http://www.secretgeek.net/realtimecss
[71]: http://www.secretgeek.net/vistat
[72]: http://YourFirstProduct.com