3 ms·
Clojure being a lisp on the JVM is was what first drew me to try it out. Clojure being immutable-first, data-oriented, and having a core library based largely
by filoeleven 4y ago
Clojure being a lisp on the JVM is was what first drew me to try it out. Clojure being immutable-first, data-oriented, and having a core library based largely on the seq abstraction was what hooked me.
The lisp REPL benefits are wonderful, and I miss them all the time in other languages, but I also miss the overall design philosophy equally as much. Value-based data structures with atomic updates where necessary is something that ought to be the default for our industry. Give it another 40 years to settle, I guess.
- yogthos 4y agoYup, once you come to appreciate the elegance of Clojure, most other languages start feeling very clunky. Completely agree that defaulting to immutability was an excellent decision. I also find that having everything operate on a common set of data structures makes it very easy to build data processing pipelines. If I use a library, I just have to know what data it takes as an input and what it produces as its output. The data is transparent and inert. I don't need to know anything about the internals of the library worry about any special behaviors. On the other hand, if I'm working with OO based language, then library APIs are object graphs, and objects are opaque and volatile. I now have to worry about the behaviors of each individual object in the graph, and their state.