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.

CL21: An experimental project redesigning Common Lisp

162 pointsby phabianover 10 years ago

13 comments

mark_l_watsonover 10 years ago
This looks cool enough but it would need a big community to really change the common lisp landscape (in my opinion). I wonder how the lazy sequence support stacks up to Clojure, Haskell, etc. support.<p>One difficulty with promoting a more modern layer to common lisp is that Clojure is already such a productive and practical language. I have written a few common lisp books, and remain a fan of the language, and an upgrade does sound good.<p>I am curious to hear the opinions of the heavy hitters in the common lisp world.
评论 #9078155 未加载
评论 #9079320 未加载
评论 #9077617 未加载
bachmeierover 10 years ago
One of the things I don&#x27;t like about Common Lisp is the unusual names. Just on the basis of the linked page, CL21 doesn&#x27;t fix that.<p>Take princ #&quot;Hello, ${name}\n&quot;. Why not just use print like the rest of the programming world. Okay, some languages use writeln, etc. But princ? Why not print?<p>A little further down, we see while-let1. Why the number? If you want to call it &quot;Common Lisp in the 21st Century&quot; you need to clean up the syntax.
评论 #9077655 未加载
评论 #9080064 未加载
评论 #9078543 未加载
评论 #9078681 未加载
评论 #9077264 未加载
评论 #9081132 未加载
jwrover 10 years ago
As a former common lisper, I don&#x27;t see the point. Clojure is better in pretty much every respect and incorporates many fresh ideas (such as excellent concurrency support). Syntax is the least of CL&#x27;s limitations. I didn&#x27;t switch to Clojure because it was &quot;easy&quot; (quite the contrary).<p>And no, I do not miss reader macros. Perhaps more surprisingly, I don&#x27;t miss CLOS at all, much as I always admired its design. It&#x27;s just... Unnecessary.<p>What I do enjoy is STM, good performance, Java interop, ClojureScript, core.async and lots of excellent code with fresh ideas popping up all over the landscape.
评论 #9078457 未加载
评论 #9078465 未加载
评论 #9080563 未加载
Guthurover 10 years ago
In the examples I see nothing overly compelling which would justify fragmenting the mind share.<p>Some of them could possible be considered for alexandria <a href="https://common-lisp.net/project/alexandria/" rel="nofollow">https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;alexandria&#x2F;</a>. Admittedly I am not sure how alive development is but it certainly would be worth breathing new life into as it is probably the most heavily used CL library.<p>As things like STM and lazy which Clojure has, they have been implemented at the library level for CL.<p><a href="https://common-lisp.net/project/cl-stm/" rel="nofollow">https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;cl-stm&#x2F;</a><p>The beauty about a Lisp is that you can easily add so much on top of the language that will feel as if it was always there. CLOS is a good example of this.<p>In the case of JVM with CLojure, and of course others will disagree, I don&#x27;t think accessing the Java ecosystem is a good thing. The mindset there is monolith &quot;Enterprise Solutions&quot; &quot;Inversion of Control frameworks&quot; which invariable mean systems that are so complex the authors don&#x27;t even understand them and lets write XML above all else.<p>Also if you want CL-&gt;Javascript; Parenscript.
eslaughtover 10 years ago
Interesting, but for looping I think a better point of comparison is iterate:<p><a href="https://common-lisp.net/project/iterate/" rel="nofollow">https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;iterate&#x2F;</a><p>In my personal opinion, the iterate loops read better than the code samples of the main page.
评论 #9077528 未加载
评论 #9077254 未加载
joesbover 10 years ago
Three things I don&#x27;t like about Common Lisp.<p>1. It has CLOS but it doesn&#x27;t really embrace it in standard library. You have list, vector, hash-table, each with its own iterator function. You have lots of #with-xxx macro. All modern languages utilize the idea of common interface like #iterator or #dispoable. You can clearly see CLOS library and pre-CLOS library in CL. CL needs to eat its own dog food (CLOS) more.<p>2. It lacks basic practical API library, while another containing big complicate academic functions. Its #format function is probably Turing complete. It has function to format number in Roman numeral. But it doesn&#x27;t have function to deal with datetime. No networking IO function. No Threading library.<p>3. Condition and Restart could take the idea from Dylan. Tying condition to available restarts, and making class hierarchy of them, is a better idea. This problem stems from CL not actually utilizing CLOS.<p>Also, PACKAGE should take the idea of LOCALE, allowing easier local package rename, and less symbol conflicts problem.
评论 #9080681 未加载
mordocaiover 10 years ago
By the way, looking at the github there are 40 open issues 5 open pull requests and no changes to master for 6 months. I think this project may be dead, or at least on hold for the time being.
评论 #9078035 未加载
lisperover 10 years ago
Another effort along the same lines:<p><a href="https://github.com/rongarret/ergolib" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rongarret&#x2F;ergolib</a>
arturventuraover 10 years ago
I&#x27;ve been thinking about this for a while. I&#x27;ve wrote some thoughts I had over the years about modernising Lisp.<p><a href="https://news.ycombinator.com/item?id=9078444" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9078444</a>
wedesoftover 10 years ago
I can recommend having a look at GOOPS [1] (GNU Guile&#x27;s implementation of CLOS) for inspiration. It provides multiple dispatch and facilitates overloading of existing functions (such as &quot;+&quot;).<p>[1] <a href="http://www.wedesoft.de/oop-with-goops.html" rel="nofollow">http:&#x2F;&#x2F;www.wedesoft.de&#x2F;oop-with-goops.html</a>
arh68over 10 years ago
I think this is an okay idea, but the comparison to Clojure is really lacking. Why build on CL when you can build on Clojure? I get the inter-operability, but when <i>Multi-Threading and Multi-Processing</i> is listed under <i>Deferred</i>, Clojure could provide so much of that for free. <i>On</i> Clojure, etc.
评论 #9078266 未加载
评论 #9078548 未加载
bitwizeover 10 years ago
Inb4 the newLISP cultists arrive.
ajarmstover 10 years ago
Oh, god. Not again. Stopped reading at &quot;More Object-Oriented&quot;.