4 ms·
The Clojure programming language was a single person effort in the first years and all of the design and implementation was done by Rich Hickey in the first ver
by dimitar 5y ago
The Clojure programming language was a single person effort in the first years and all of the design and implementation was done by Rich Hickey in the first version (2 years of work, not counting previous experience).
He was burned out from the state of commercial programming around the time and funded a sabbatical with his pension savings to work on Clojure. He had at least 3 attempts to bridge Common Lisp and the JVM or CLR runtimes and he had formed strong opinions on the need for Clojure to be hosted.
He kept up doing 90% of the work with the next few versions and even today it he calls all the shots on its development, it not being a "bazaar" style open source project. Of course it being open source anyone is free to write their own patches and make forks, but generally contributions are more likely to be accepted by the community as libraries, not language changes.
The whole story has been submitted here a few times and is quite interesting:
https://download.clojure.org/papers/clojure-hopl-iv-final.pdf https://download.clojure.org/papers/clojure-hopl-iv-final.pd...
- closeparen 5y agoIt’s also of course in the fundamental nature of Lisp that you can change the language by importing stuff rather than actually editing the core implementation.
- dimitar 5y agoClojure somewhat limits that by not having reader macros
- dwohnitmok 5y agoClojure has explicitly walked back some of that flexibility of "changing the language" by deciding against reader macros in return for better interoperability of packages.
- nikonyrh 5y agoYeah I was about to highlight this, for example the core.async library bringing "go channels". Like the `while` loop is not "part of the language", it is a macro which rewrites it as a `loop`. Also `for` is just a macro, feel free to write your own version without needing to fork the language itself. This might be a difficult concept to understand to people who have only used Python, JS, C# etc.
- jcubic 5y agoThere is video version of this paper: https://www.pldi21.org/prerecorded_hopl.11.html https://www.pldi21.org/prerecorded_hopl.11.html