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.

The Lisp Curse (2017)

64 pointsby gphilipabout 3 years ago

12 comments

at_a_removeabout 3 years ago
The <i>results</i> (many many packages doing fifty to eighty percent of what you need) are what drove me from Perl and what makes me very uncomfortable with the growing disdain for the standard library in Python. I really don&#x27;t want to write my own XML libraries or whatever, I would rather just import whatever the standard solution is. I also do not want to have to do a roundup of the available solutions and try to figure out which is most applicable, then hope that it will actually do the job.<p>A lot of people are very into whatever the language is, but for me, I want a huge standard library.
badsectoraculaabout 3 years ago
&gt; Making Scheme object-oriented is a sophomore homework assignment. On the other hand, adding object orientation to C requires the programming chops of Bjarne Stroustrup.<p>C++ added a ton of additional stuff to C. The original Objective-C is a much simpler approach on adding object orientation to C and at its core it&#x27;d all be about finding expressions like<p><pre><code> [foo bar:baz boo:hoo] </code></pre> and replacing them with something like<p><pre><code> obj_send(foo, msg_foobarboo, baz, hoo); </code></pre> and linking with an underlying runtime that handles message passing of course.<p>An alternative would be Turbo Pascal 5.5-style OOP where<p><pre><code> struct foo : base { foo(); ~foo(); void blah(); } foo::foo(){ base(); } foo::~foo(){ ~base(); } void foo::blah(){} </code></pre> would be accepted but aside from the C++-like syntax for constructors, destructors (which handle the hidden VMT field) and methods nothing is done automatically and instead you are expected to explicitly construct and destroy the objects (if needed), e.g.<p><pre><code> struct foo foo; foo.foo(); &#x2F;* call constructor chain *&#x2F; foo.~foo(); &#x2F;* call destructor chain *&#x2F; </code></pre> or<p><pre><code> struct foo* foo = malloc(sizeof(struct foo)); foo-&gt;foo(); &#x2F;* call constructor chain *&#x2F; foo-&gt;~foo(); &#x2F;* call destructor chain *&#x2F; free(foo); </code></pre> Note that Objective-C handles (or handled at the past, not sure how things changed nowadays) allocation and construction in separate steps too.<p>Of course unlike a language with Lisp-like macros you&#x27;d need to modify a compiler or write a preprocessor to do the above, which makes it a bit harder, but in any case adding object orientation to C does not mean you have to make it as complex as C++.
评论 #30802887 未加载
评论 #30803357 未加载
arethuzaabout 3 years ago
<i>&quot;The hardest problem in computer science is not being an opinionated jerk about everything.&quot;</i><p>From the author&#x27;s home page.<p>Edit: Potentially ignoring that quote - I can&#x27;t help observing that although I used Common Lisp as my main development language for 6 years in an academic research environment and <i>really</i> enjoyed it I&#x27;ve never wanted to use it since then...
rileyphoneabout 3 years ago
I would argue that rather than some curse of expressiveness, the lackluster showing from the community in recent years has been the results of a premature standards process. Common Lisp hasn&#x27;t changed since before I was born, and while to some people that denotes stability, it also leaves new features to be done in the manner the author describes, as 80% projects by lone hackers. The language is more than capable of supporting modern development, but simply requires learning too much context and historical baggage to be appealing to any but the most devoted. This has little to do with expressivity, but more with history and economics. Most successful languages have one or more companies devoting resources to the language and libraries. Lisp has multiple implementations of the language but no blessed one, which means the fossilized standards are the point of departure for each of them, many remnants of the era of software you can buy.<p>There are still a lot of interesting things happening with Lisp, but I can&#x27;t see how Common Lisp will be the path forward. Of course, there have been many challengers seeking to upset it as King Lisp, including this site&#x27;s very own Arc. Clojure has seen the most commercial success in recent years, though the extent that it&#x27;s actually a Lisp is debatable. I&#x27;m a fan of Kernel [0], which makes macros first class members of the language, like everything else. Who knows, but saying it&#x27;s power will necessarily lead to its downfall is a kind of fatalistic mentality that I have little patience for.<p>[0] <a href="https:&#x2F;&#x2F;web.cs.wpi.edu&#x2F;%7Ejshutt&#x2F;kernel.html" rel="nofollow">https:&#x2F;&#x2F;web.cs.wpi.edu&#x2F;%7Ejshutt&#x2F;kernel.html</a>
评论 #30802732 未加载
johnisgoodabout 3 years ago
&gt; Dr. Mark Tarver — twice-quoted, above — wrote a dialect of Lisp called Qi. It is less than ten thousand lines of macros running atop Clisp. It implements most of the unique features of Haskell and OCaml. In some respects, Qi surpasses them. For instance, Qi&#x27;s type inferencing engine is Turing complete. In a world where teams of talented academics were needed to write Haskell, one man, Dr. Tarver wrote Qi all by his lonesome.<p>Check out <a href="https:&#x2F;&#x2F;github.com&#x2F;factor&#x2F;factor" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;factor&#x2F;factor</a>. Check out how much stuff they have implemented early on, just 2-4 guys tops. I found it really impressive.
toolsliveabout 3 years ago
&gt; Employers much prefer that workers be fungible, rather than maximally productive.
评论 #30803671 未加载
davidgrenierabout 3 years ago
I just wish more people understood that something being Turing Complete isn&#x27;t a feature, it&#x27;s a flaw.
评论 #30803688 未加载
评论 #30801989 未加载
ashton314about 3 years ago
<i>Mathematicians and physicists would rather use another&#x27;s toothbrush than another&#x27;s notation.</i><p>Perhaps The Curse is because Lisp programmers are generally of the same ilk as mathematicians and physicists?
Flankkabout 3 years ago
&gt; <i>Real Hackers have also known, for a while, that C and C++ are not appropriate for most programs that don&#x27;t need to do arbitrary bit-fiddling.</i><p>Strongly disagree with this statement. I&#x27;ve read it so many places now that it has to be a meme. I actually wish I could use C++ on the web instead of this JS nightmare ecosystem. I don&#x27;t understand where the idea comes from. I&#x27;m never &quot;bit-fiddling&quot; in C++ and almost never need to use pointers.
评论 #30802007 未加载
评论 #30801879 未加载
评论 #30801579 未加载
评论 #30805574 未加载
评论 #30801682 未加载
评论 #30801950 未加载
评论 #30801518 未加载
评论 #30802341 未加载
rurbanabout 3 years ago
nit: it&#x27;s (2011) not (2017)<p>otherwise, he speaks from my heart. social issues only
adreganabout 3 years ago
OP posted despite the opening paragraph!<p>&gt; Update on October 6, 2017. N.B.: Please stop submitting this to Hacker News! Look at the Hacker News search results for this essay. Check out the note for the first entry: Come on, everyone! Let&#x27;s beat the dead horse one more time!<p>Past discussions <a href="https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=The%20Lisp%20Curse&amp;type=story&amp;dateRange=all&amp;sort=byDate&amp;storyText=false&amp;prefix&amp;page=0" rel="nofollow">https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=The%20Lisp%20Curse&amp;type=story&amp;...</a>
评论 #30802489 未加载
评论 #30803094 未加载
评论 #30803045 未加载
评论 #30803268 未加载
stevenallyabout 3 years ago
If Lisp is do efficient for development, why are there essentially no commercial products that use it?
评论 #30802141 未加载
评论 #30803227 未加载
评论 #30801957 未加载
评论 #30802408 未加载
评论 #30802734 未加载
评论 #30802527 未加载
评论 #30801919 未加载
评论 #30802256 未加载
评论 #30802066 未加载