4 ms·
The bigger picture: Clojure was designed with no backwar(d/t)s compatibility. https://clojure.org/about/rationale#_lisp_is_a_good_thing https://clojure.org/abo
by lispm 5y ago
The bigger picture: Clojure was designed with no backwar(d/t)s compatibility.
https://clojure.org/about/rationale#_lisp_is_a_good_thing https://clojure.org/about/rationale#_lisp_is_a_good_thing
> Clojure is a Lisp not constrained by backwards compatibility
Which means that basically no (!) Lisp software from the past ran in Clojure and trying to make it results in a re-implementation and re-architecture of that software.
- kaba0 5y agoSo the 3 lisp programs will be missed.. Sarcasm aside, seeing the resulting popularity of Clojure, I don’t think at all that this tradedoff was not worthy. Depending on Java/Js’s much much richer ecosystem is a win.
- capableweb 5y ago> Clojure was designed with no backwar(d/t)s compatibility Correction: Clojure was designed with no backwards compatibility with previous lisps Clojure puts a huge focus on being backwards compatible within it's own ecosystem. I've used libraries that haven't been updated in ages (think Clojure 1.3) but still works the same way as they did back then. This is also reflected in the community where libraries are very careful of breaking the public API, often creating new libraries under new names if there are breaking changes.
- lispm 5y ago> Clojure puts a huge focus on being backwards compatible within it's own ecosystem Like lots of languages. Incl. Lisp itself. For example the Maxima computer algebra system written in Lisp has been started >50 years ago (as Macsyma) and still is being worked on. https://maxima.sourceforge.io https://maxima.sourceforge.io The current build system ASDF works in Lisp implementations which date back to the mid-70s... https://common-lisp.net/project/asdf/#implementations https://common-lisp.net/project/asdf/#implementations
- capableweb 5y ago> Like lots of languages. Incl. Lisp itself. Sure, I'm just highlighting that your statement about Clojure is correct when it comes to compatibility against other languages while being incorrect if you consider it within the Clojure ecosystem itself.
- lispm 5y agoYou might want to tell the maintainers about their error: > Clojure is a Lisp not constrained by backwards compatibility https://clojure.org/about/rationale https://clojure.org/about/rationale
- capableweb 5y agoNo need, the maintainers of Clojure.core knows about it, propagates the idea and most people in the community follows it as well.
- lispm 5y agoRight, that it is compatible to itself does not sound particular noteworthy. Lots of language eco-systems have that. That's also why many languages (like C, C++, JavaScript, Java, Ada, Common Lisp, ISLISP and Scheme) have actual language standards with, where there is a high focus on protecting investments.
- capableweb 5y agoI'm not submitting "Clojure and the ecosystem focuses on being backwards compatibility" as a new HN story. I'm simply adding additional information to your "Clojure was designed with no backwar(d/t)s compatibility" statement which could be read as "Clojure core/libraries break their own API interface all the time" (like in the JS/NPM ecosystem) which is simply not true. Just to be clear, I'm not saying this is unique in Clojure, simply making sure that others who read your comment don't read it the wrong way as it was a bit ambiguous.