TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Where Lisp Fits

83 pointsby Adrockover 11 years ago

7 comments

todd8over 11 years ago
I&#x27;ve heard all of these arguments in support of Lisp for many years, but I&#x27;m still not convinced. Indisputably, Lisp is remarkable and holds a special place in the pantheon of programming languages. Every argument in it&#x27;s favor makes sense, a lot of sense. Reading these arguments in favor of Lisp is not like reading a blog touting the benefits of Javascript where even the positive points don&#x27;t really sound so positive. The arguments made for Lisp are persuasive.<p>Lisp is different. It&#x27;s really quite unique; it has an elegant simplicity underlying its implementation and a deep connection to the foundations of computation. Think of this, Gregor Kiczales&#x27;s book Art of the Metaobject Protocol was published 23 years ago! I learned to program in Lisp 40 years ago. What other languages did I use back in those days? Assembly language (IBM 360, CDC 6600, IBM 1130, etc), PL&#x2F;1, Fortran, APL, COBOL. Nobody, argues today that we should be trying out PL&#x2F;1 or we should give COBOL a try. (Are there any projects on Github using these languages from our hazy, distant past?) Lisp&#x27;s beauty and power have kept it alive and vital all these years. But, there&#x27;s something wrong with this story.<p>If Lisp is really so great, why hasn&#x27;t it triumphed? I use Lisp all the time: my editor needs it during periodic tune ups. However, I can&#x27;t think of when I&#x27;ve reached for it first when I&#x27;ve had a choice. Python is just easier to get things done in. If my programs don&#x27;t run fast enough I don&#x27;t think of Lisp, I think of C or C++. Haskell is where it&#x27;s at as far as programming language research goes, not Lisp.<p>The important observation is that it&#x27;s not just me. Lisp has had time to prove itself. It made it to the finals, and it deserves the lifetime achievement award. We can honor it&#x27;s beauty, it&#x27;s longevity, it&#x27;s power, and even it&#x27;s fantastic reincarnations (Clojure), but this isn&#x27;t enough. If Lisp really was the language that we should be programming in, it would have demonstrated it by now.
评论 #7171987 未加载
评论 #7171950 未加载
评论 #7171347 未加载
评论 #7171392 未加载
评论 #7171360 未加载
评论 #7171328 未加载
tlarkworthyover 11 years ago
An interesting next step to Turning machines I read about recently was Kolmogorov-Uspensky machines. They allow pointers and are nearer to real machines we use. Whilst they still recognising the same languages in polynomial time as Turing machines, for some things they can compute and order of complexity class faster. Turing machines often end up traversing up and down the tape, linearising binary tree lookups for instance, whereas KU can do binary tree lookups in O(log(n)). Both machines do the lookups in P, but KU&#x27;s particular P can be provably lower.<p>[1] <a href="http://esolangs.org/wiki/Kolmogorov_machine" rel="nofollow">http:&#x2F;&#x2F;esolangs.org&#x2F;wiki&#x2F;Kolmogorov_machine</a>
mrottenkolberover 11 years ago
Have to say by now I am tired of clicking on a Lisp titled article and having to read about Clojure. Please stop hyping Clojure. It&#x27;s not LISP and its not Lisp either. We have a Lisp, it&#x27;s called Common Lisp, its perfectly fine, far superior to Clojure and will prevail Clojure by decades.<p>To underline how awfully skiddish Clojure is from a lispers perspective, the first thing he mentions is the &quot;thrush macro&quot;: <a href="http://clojuredocs.org/clojure_core/clojure.core/-%3E" rel="nofollow">http:&#x2F;&#x2F;clojuredocs.org&#x2F;clojure_core&#x2F;clojure.core&#x2F;-%3E</a> Which is needlessy to say a typical example of the skiddish culture of Clojure. The brain train goes like this: &quot;Oh we have grown this ugly zombie breed between a ruby and a java, how to we make it look intentional? Oh that&#x27;s easy just put on a little of this completely pointless macro cream to make it look hip!&quot;<p>Worst: The article isn&#x27;t even about Clojure. Please in the future label Clojure as what it is (an experiment in STM), and do not forget to mention that we have a great standardized language with great implementations which make the whole industry look bad. And we have that because engineers worked on it for decades.<p>Edit: Thank you kind power-user for going through the whole thread and downvoting every comment I made, that&#x27;s the kind of cargo-cult marketing I was talking about. I think downvoting shouldn&#x27;t exist, makes it unpleasant to comment on topics where you don&#x27;t share the mafias opinion. Yay HN!
评论 #7171734 未加载
评论 #7171175 未加载
评论 #7171206 未加载
评论 #7171190 未加载
评论 #7177587 未加载
评论 #7172757 未加载
评论 #7172142 未加载
评论 #7173210 未加载
评论 #7172851 未加载
roywigginsover 11 years ago
No mention of lambda calculus? Lisp is to Lambda Calculus as Pascal is to Turing Machines. More or less.<p>Oh, beaten to the punch in the article&#x27;s comments. Carry on.
评论 #7171220 未加载
Zigurdover 11 years ago
TFA doesn&#x27;t actually say where Lisp fits. I rather wish some contender for The Next Mobile OS would make a &quot;Lisp Android&quot; - An ART-like Lisp runtime with a zygote-like fast start for processes and copy-on-write to crunch down memory use from multiple instances of the runtime.<p>That&#x27;s where I think Lisp would really fit. But it would take a lot of unconventional thinking about Lisp implementation and APIs.
calrocover 11 years ago
Backus&#x27; paper on Functional Programming might be of interest; click on: &quot;ACM Turing Award Lecture&quot; <a href="http://amturing.acm.org/award_winners/backus_0703524.cfm" rel="nofollow">http:&#x2F;&#x2F;amturing.acm.org&#x2F;award_winners&#x2F;backus_0703524.cfm</a>
grdvnlover 11 years ago
nitpick: Here is the link that describes why Clojure&#x27;s threading macro is not really a pure thrush operator.<p><a href="http://blog.fogus.me/2010/09/28/thrush-in-clojure-redux/" rel="nofollow">http:&#x2F;&#x2F;blog.fogus.me&#x2F;2010&#x2F;09&#x2F;28&#x2F;thrush-in-clojure-redux&#x2F;</a>