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.

A Personal Lisp Crisis (2012)

68 pointsby llambdaover 11 years ago

15 comments

breckinlogginsover 11 years ago
I love Clojure and I think it&#x27;s the first Lisp to take the language family out of &quot;cons cell and parenthesis hell&quot;. My personal opinion is that Clojure with the following changes would take over much of the Lisp space:<p>- Rewrite most of Clojure in Clojure (which has been talked about since the beginning, really) to find the &quot;small core&quot;. Thankfully ClojureScript has helped hasten the CiC movement.<p>- Base FFI and code gen on more abstractions so that Clojure living in a .net world or a C&#x2F;C++ world or a Python world would feel just as cozy as Clojure living on the JVM. Rich Hickey talked about why he abandoned primary CLR support early on. He said he &quot;didn&#x27;t want to keep writing everything twice&quot;. This was probably the best strategy at first, but now one hopes that with ClojureScript + Clojure enough has been learned to discover more ways to factor out the commonalities so that Clojure is more easily retargetable.<p>- Speaking of targets: there should be a first class, fully supported Clojure frontend to LLVM. There are research projects and personal projects in this area, but that&#x27;s about it. I&#x27;d like to see an official LLVM target.<p>- Introduce or surface more abstractions and macros such that the immutability and pure functional underpinnings could be extended, removed, or replaced. This is likely to be the most controversial change, but it would be essential to the possibility of Clojure running on small embedded systems and other environments where the choice of underlying data structures and concurrency algorithms can&#x27;t come baked in. This is mostly done already (as most things in Clojure are built on top of abstractions), but it still needs a deep look.<p>- Open up the reader. A Lisp without full reader macros is unlikely to win over all potential converts, not because reader macros are this incredibly common thing, but because the personality of most Lisp hackers tends to thinking like &quot;well I don&#x27;t think I&#x27;ll need a reader macro, but why would I want a language that won&#x27;t even give me the option?&quot;
评论 #6367829 未加载
评论 #6367739 未加载
评论 #6367880 未加载
评论 #6368030 未加载
评论 #6378291 未加载
agentultraover 11 years ago
First there are a lot of programmers who come to CL to debate. They read, they study, and then they complain. I&#x27;ve sat in #lisp since about 2007&#x2F;8 and there have been numerous nicks that show up just to ask a few rather philosophical questions and debate the merits and technical decisions that went into CL. They usually end up leaving and writing blog posts about how terrible a language CL is and how caustic the community is.<p>There isn&#x27;t a problem with the CL community. There&#x27;s a problem with the culture surrounding CL that seems to attract trolls.<p>Newbies get answers to genuine questions. I&#x27;ve received a great deal of help over the years from experience CL programmers. Anything from beginner questions to code reviews of various snippets I&#x27;ve been working on. I have received a lot of great advice over the years that has helped me tremendously. And I&#x27;ve seen other newcomers receive the same treatment as well. If you arrive in #lisp of c.l.l and have a genuine question about a problem you are stuck on you will likely attract someone willing to help you. It&#x27;s a small community but it is friendly.<p>Second, CL was in the end designed to outlive itself. You get full programmatic access to the compiler and reader. It is trivial to add any feature a modern programmer may require that wasn&#x27;t accounted for in the original specification. CLUEL could certainly have been useful if the author had finished it and put it out into the wild (maybe waiting until it was <i>finished</i> was the wrong choice).<p>I think if you are genuinely interested in learning CL you need to check your ego at the door, so to speak, and just start from scratch. Write programs that solve yours or your users&#x27; problems and ask questions in #lisp and on c.l.l if you get stuck. There is a wealth of great literature, papers, tools, and a small, friendly community to help you.<p><i>Edit</i>: I meant to note that the reason the specification hasn&#x27;t been updated, afaik, is because it doesn&#x27;t have to be updated. All the tools you need to add the features you require are there in the spec. You can make it into the language you need.
评论 #6368666 未加载
评论 #6368484 未加载
评论 #6378301 未加载
betterunixover 11 years ago
I am not sure it is true that comp.lang.lisp <i>barely tolerates</i> newbies. I have posted there on several occasions and when I say something wrong, I am politely corrected. I have seen a lot of less experienced programmers come there, ask an obviously beginner question, and get helpful answers. Reading through the past few days of posts, I can see a few beginner questions which all received helpful answers.<p>The problem in comp.lang.lisp is the number of trolls -- in other words, the universal problem on Usenet. People come in trying to prove that some other language is superior, or asking questions like &quot;If Lisp is so great why is nobody using it?&quot;
评论 #6367722 未加载
protomythover 11 years ago
Perhaps the author will find the answer to the &quot;why&quot; of how unwelcoming a community can be in his choice of opening paragraphs. A story that calls some number of his audience as stupid[1] or ignorant[2] for holding a belief is probably not the best way to introduce your soul searching on why the community he was a part of is not a welcoming one.<p>1) the implication if you have read your holy book and still believe then you are a poor thinker.<p>2) if we were in the Middle Ages, the story might be more relevant. I do believe most believers of any religion in the modern era have probably read their own holy book.
评论 #6367702 未加载
tom_bover 11 years ago
As someone who learned a little Lisp in the last few years, I think there is a good collection of books available for the newbie who wants to learn. For Common Lisp, <i>Land of Lisp</i>, <i>Practical Common Lisp</i>, and <i>Ansi Common Lisp</i> all seem good enough to get hacking quickly.<p>Thinking about community effects, I&#x27;m not as convinced a community represents a gating factor for hackers. I attend the occasional Clojure meetup (and Clojure&#x2F;Conj for that matter). The meetups in my area are well-attended and run, although they could be improved with a better introduction and ice-breaker for more introverted attendees (yes, I&#x27;ve just outed my personality type).<p>But from an opportunity mindset, the Clojure community seems to have done an admirable job getting the message out. Multiple good books, the Clojure&#x2F;conj, and a well-attended meetup in my area all make me feel like I may not only stretch myself and learn new programming techniques, but that I have some hope of advocating for Clojure in my workplace or, good grief, applying for an actual day job where I would use Clojure.<p>It&#x27;s unclear to me that Common Lisp can offer that.
评论 #6368417 未加载
评论 #6367794 未加载
评论 #6367963 未加载
stephenpimentover 11 years ago
Honestly, I don&#x27;t know that CL was ever exactly beloved among Lispers. (Scheme may fit that description better). CL was a pragmatic construct from the beginning, responding to many conflicting demands.
pnathanover 11 years ago
This is a strange article.<p>Let&#x27;s address his complaints in two basic areas:<p>1. Community.<p>The Lisp community as typified by #lisp and comp.lang.lisp can be remarkably acerbic to the point of toxic, depending on who feels like contributing at the time. Part of this are the annoying trolls that show up; one&#x27;s patience wears thin. A FAQ document might go a ways. However, there are a large number of people who don&#x27;t ream newbies out and really are helpful. lispm here on HN is one of the friendliest Lispers out there and actually has helped me out tons.<p>Addendum: r&#x2F;lisp on Reddit is good for generalish Lisp questions. StackOverflow&#x27;s common lisp tag almost always gets an answer to most any reasonable question. sbcl-devel mailing list is useful if you want to take the time to posit in-depth technical questions to the SBCL developers. Lispforum, oddly enough, I haven&#x27;t used much. I simply don&#x27;t go there much. I should, I suppose. :)<p>2. Technical. I can do no better than quote my &#x2F;r&#x2F;lisp post on this (r&#x2F;lisp is <i>really</i> good for lisp help).<p>---<p>First of all, consistency. A variety of things are peculiar in how they are named. TERPRI? Really?<p>Second, Common Lisp is a (the?) programmable programming language. CLUEL-esque platforms could be used to drive CDR adoption and cleanups of the original language.<p>My primary gripes with CL are the lack of CDR-2, lack of CDR-8, the lack of hierarchical namespaces, the funky naming conventions &amp; expectations[1], and the lack of deeper CLOS integration[2].<p>[1] ELT vs AREF vs NTH, for instance. Or, LOOP for lists vs arrays vs (your data structure here).<p>[2] See CDR-8.
outworlderover 11 years ago
Props to the author for mentioning Chicken Scheme. The community is very friendly indeed. There are lots of eggs and the easy C integration means that one is not usually left wanting for libraries, assuming a minimal knowledge of C.<p>Also, it runs basically anywhere. One could embed it inside an iPhone app, for instance.<p>There are some big things missing still. There is no standard database access library, or an equivalent to Python&#x27;s WSGI (or Ruby&#x27;s Rack). Or MongoDB drivers (that&#x27;s my fault, I promised the community one a couple of months ago).<p>There&#x27;s also some missing tooling. Better debugging support, for instance. That&#x27;s mostly avoided by the use of unit tests and the REPL, but is occasionally required. Or profilers. Or code coverage tools. Due to the fact that everything is compiled to C, there are some tools that may be used, but it is still not ideal.
fusiongyroover 11 years ago
There isn&#x27;t, as far as I&#x27;m aware, another language with CL&#x27;s popularity that provides either its condition system or the full power of the CLOS (method combination, for instance). These two major subsystems are still significant improvements over what modern languages have to offer.
评论 #6368044 未加载
wes-expover 11 years ago
Should be tagged [2012]. Rubyist briefly falls in love with CL, then falls out of love. News at 11.
jffover 11 years ago
This reminds me of my experiences with Plan 9. A very cool system, but it&#x27;s managed to attract some of the absolute worst people in computing. Dare to criticize something and they&#x27;ll leap down your throat. In the end, I just gave up. We tried to drag things kicking and screaming into the 21st century with source control, 64 bit kernel, automated builds and testing, etc. but nobody wanted it.<p>On the other hand, the mailing list did get a lot of posts that kind of remind me of this: &quot;Hi, I just started using Plan 9, where&#x27;s emacs? Anyway I have a lot of great ideas on how to fix this OS so you should all start doing these things... I&#x27;ll set up the wiki and write the newbie guide&quot;
评论 #6368806 未加载
评论 #6368763 未加载
baddoxover 11 years ago
&gt; the surest way for a Christian to lose their faith is to read the Bible, cover to cover.<p>I doubt that, based on my observation of a strong correlation between intense academic study of the Bible and fortitude of Christian faith.
adestefanover 11 years ago
Is this not just another point in a decades long quest to save LISP?<p>Maybe LISP doesn&#x27;t need saved? Maybe it&#x27;s okay that a language isn&#x27;t popular? Maybe It&#x27;s okay that a language isn&#x27;t hip? Maybe it&#x27;s okay if a language doesn&#x27;t have the latest gee wiz social status? The fact that people keep trying to save LISP every 4 or 5 years could mean it&#x27;s perfectly fine how it is. I don&#x27;t see people trying to save the COBOL, or FORTRAN, or &lt;insert favorite esoteric language here&gt; community.
评论 #6367893 未加载
评论 #6368225 未加载
cagefaceover 11 years ago
I came to precisely the same realization about ten years ago, after struggling in vain with the culture and quirks of Common Lisp. There&#x27;s no question that learning Lisp in some form will make you a better programmer but don&#x27;t get caught up in the cult that surrounds it. Virtually all of Lisp&#x27;s innovations now been validated and adopted by more mainstream languages and the fact that nobody has picked up the s-expr syntax is telling.<p>These days I focus more on writing useful code and making end users happy and I&#x27;ve found that to be much more satisfying than wringing my hands over the inelegance of everyday languages.
avodonosovover 11 years ago
heresy