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.

Ask HN: Why Shouldn’t I Use Lisp?

11 pointsby nicholas-ccover 5 years ago
I’ve been following people like Jonathan Blow, as well as Paul Graham. I’ve learned Lisp and kind of like it, but I’ve heard Jonathan Blow say that A) GC is bad, and B) not to use Lisp and other similar languages. Could you explain these reasons not to use Lisp/higher-level languages with more features?

8 comments

mimixcoover 5 years ago
To paraphrase Ansel Adams (who was speaking of cameras), there is no one best language only the best language for the project you&#x27;re doing. It may very well be that Lisp is the right language for your project. That depends largely on what the project is and what advantage you are seeking from Lisp (or another choice) that helps complete your project and, most importantly, reduces debugging time later since that&#x27;s where you&#x27;ll spend 60% of your coding effort.<p>We are building our product with a Lisp back end because it deals with NLP and large bodies of text where Lisp is ideal. The user interface, however, is HTML&#x2F;JS (Angular) because that language offers much more flexibility for UI design.
评论 #22032861 未加载
评论 #22031271 未加载
fulafelover 5 years ago
Jonathan Blow is an opinionated game programmer&#x2F;language creator who is eg concerned about memory management eating into his 360 Hz display frametime[1]. GC is still used in many games, eg Unity engine, so it&#x27;s not a universally held view in the field of games. You should probably tell us more about what domain you are working in and&#x2F;or read his opinions in the contex of his domain.<p>As for your (B), besides the &quot;is it bad&quot; essay question you probably want to look at languages specifically. As you know there are many Lisp style languages and they have big differences. Eg Clojure, Scheme and Common Lisp are all very different and have different kinds of communities. It&#x27;s a language family of more internal variety than eg modern Algol style imperative managed statically typed languages (Java&#x2F;C#&#x2F;Go).<p>[1] A topic of some of his tweets recently
auganovover 5 years ago
Sounds like your question is about high-level GCed languages in general. The person you&#x27;re referencing appears to be in the gaming industry where GC is especially problematic.<p>If we&#x27;re talking about Lisp specifically vs similar languages, people probably end up not using it for non-technical reason. Community, hire-ability and so forth.
karmakazeover 5 years ago
I&#x27;ve read a lot about Lisps with an open mind, worked through SICP in Racket, and worked on some personal projects in Clojure. It was all fine, but at no point did I feel like there wasn&#x27;t another language that would have done as well, possibly better. The one area where I was never fully comfortable was the lack of static type checking. I&#x27;ve also dabbled with Haskell and though it it is the most clean and consistent language I&#x27;ve used. I never got to the point where I could wield higher kinded types to my advantage, I felt like I was doing extra work to satisfy the language requirements without necessarily getting the benefits back from it. I realize there&#x27;s benefits of doing so, but it&#x27;s unclear when&#x2F;if I&#x27;ll even break even.<p>Recently I tried F# having seen OCaml in the past but not really using it. F# seems to have progressed quite a bit since it was just OCaml on .NET. I&#x27;m able to work rather fluently with it having already been exposed to Java&#x2F;Kotlin&#x2F;Scala&#x2F;Elixir which seemed close to what I want but seeming to fall short in ways I couldn&#x27;t quite describe. F# came the closest to what I&#x27;ve always hoped to find in a language. It too has its quirks, some within itself and partly from interoperating within .NET Core. I&#x27;ve yet to use it on larger projects and on a team but the static type checking has already helped me save so much time on iterating design that I wont look at any Lisp for generic work. If I had a need for some specific DSL task it may come in handy as I&#x27;ve often baked minimally expressive configuration languages in the past for no good reason.
评论 #22045812 未加载
CyberFonicover 5 years ago
Depends on what you are implementing and how.<p>I find Lisp good if you have a rough top-down design and lots of bottom-up implementation details to suss-out. You can test each bit as you build and in passing you might implement a DSL for your domain. There are many compiled Lisps (both CL and Scheme) so performance can be quite good.<p>Generally, it is hard to deploy Lisp on client systems (if that is a requirement) without introducing many dependencies. Loko Scheme being an exception, since it (like Golang) compiles to a single executable with no dependencies.<p>GC and VMs are common in many alternative environments so that&#x27;s not a point of difference.<p>If you like Lisp and your dev and target environments are suitable and you are a solo developer or have a team of Lispers then why not use it? In most general terms Lisp is no better nor worse than the alternatives.
评论 #22038084 未加载
评论 #22032824 未加载
评论 #22042418 未加载
_bxg1over 5 years ago
Assuming performance isn&#x27;t a problem (which it may well not be), this does a good job of laying out all the other arguments against Lisp: <a href="http:&#x2F;&#x2F;winestockwebdesign.com&#x2F;Essays&#x2F;Lisp_Curse.html" rel="nofollow">http:&#x2F;&#x2F;winestockwebdesign.com&#x2F;Essays&#x2F;Lisp_Curse.html</a><p>Basically: Lisp projects have trouble scaling to larger teams (and communities) because of how fluid it is. That said, for a solo project or a small team, no language has more expressive power.<p>That said, Jonathan Blow has the occasional good opinion and a lot of really bad ones. His anti-abstraction zealotry is the basis of most of the bad ones. As another commenter here said, there are no universal truths when choosing a technology; it&#x27;s always about using the right tool for the job.
评论 #22032315 未加载
sdfjklover 5 years ago
((
SamReidHughesover 5 years ago
Because static typing is important for working productively with medium-to-large programs, because the Lisps have decrepit ecosystems, and because they aren&#x27;t even good dynamically typed languages either, with the possible exception of Clojure. There is nothing that Common Lisp has, that other languages don&#x27;t have, that makes it necessary.
评论 #22039410 未加载
评论 #22045770 未加载