Live data from Hacker News

Differences with other Lisps

clojure.org

11–20 of 108 posts

Re: Differences with other Lisps

#11
post #6

Is clojure the newest popular-language-you-can-get-a-job-in? It's initial release was 2007. Rust (2010) (edit Kotlin (2011) perhaps), but point being there aren't many newer: https://en.wikipedia.org/wiki/Timeline_of_programming_langua... That metric is subjective and arbitrary, but it's on my mind because my company is hiring for clojure developers (see my immediate comment history & apologies for the advertisement)…

[deleted]

Re: Differences with other Lisps

#12
post #6

Is clojure the newest popular-language-you-can-get-a-job-in? It's initial release was 2007. Rust (2010) (edit Kotlin (2011) perhaps), but point being there aren't many newer: https://en.wikipedia.org/wiki/Timeline_of_programming_langua... That metric is subjective and arbitrary, but it's on my mind because my company is hiring for clojure developers (see my immediate comment history & apologies for the advertisement)…

Go (2009), TypeScript (2012), Julia (2012) and Swift (2014) are all contenders

Re: Differences with other Lisps

#13

> There is more to collections than lists. You can have instances of empty collections, some of which have literal support ([], {}, and ()). Thus there can be no sentinel empty collection value. Probably my favorite feature over common lisp. Combined with comma (,) being treated as whitespace (ie, use comma if you want to but you don't have to), makes typing out data structures in clojure a much more enjoyable proces…

This isn’t really a thing, though: Common Lisp has built-in literal syntax for n-dimensional arrays and structs and libraries like fset provide literal syntax for Clojure-style immutable data structures.

Re: Differences with other Lisps

#14

In many ways I feel like Clojure is a better Lisp than Lisp itself. Syntactic niceties like support for vectors/maps/sets are, once you've gotten used to them, hard to do without. And although it's orthogonal to the syntax, I also appreciate its focus on immutability. I just with there was a Lisp like it that didn't run on the JVM.

Like ClojureScript?

Re: Differences with other Lisps

#15

In many ways I feel like Clojure is a better Lisp than Lisp itself. Syntactic niceties like support for vectors/maps/sets are, once you've gotten used to them, hard to do without. And although it's orthogonal to the syntax, I also appreciate its focus on immutability. I just with there was a Lisp like it that didn't run on the JVM.

> I just with there was a Lisp like it that didn't run on the JVM.

There are a few, with varying degrees of distance from the JVM and varying degrees of similarity to Clojure.

- There's ClojureScript, which is Clojure transpiled to JavaScript.

   - See also Lumo () and Planck ()
- There's Babashka (https://github.com/babashka/babashka), which is a natively-compiled Clojure interpreter, implemented with the Small Clojure Interpreter (https://github.com/babashka/sci) and GraalVM for native compilation.

- There's Joker (https://github.com/candid82/joker) with a similar mission to Babashka, but commonly used as a linter.

- There's ClojureCLR (https://groups.google.com/g/clojure-clr) on the Common Language Runtime.

- There's Cloture (https://github.com/ruricolist/cloture), which is Clojure in Common Lisp.

- There's Clojerl (https://www.clojerl.org/), which is Clojure for the Erlang VM.

- There's Pixie (https://blog.goodstuff.im/pixie), with Clojure syntax, but compiling to native.

- There's Ferret (https://github.com/nakkaya/ferret>) which is Clojure transpiled to C++11.

- There are some Lisps that have borrowed Clojure's syntax:

  - Janet 

  - Carp 
There are a variety of other Lisp-like languages listed here: https://github.com/dundalek/awesome-lisp-languages

Apologies for the formatting.

Re: Differences with other Lisps

#18

> There is more to collections than lists. You can have instances of empty collections, some of which have literal support ([], {}, and ()). Thus there can be no sentinel empty collection value. Probably my favorite feature over common lisp. Combined with comma (,) being treated as whitespace (ie, use comma if you want to but you don't have to), makes typing out data structures in clojure a much more enjoyable proces…

This isn’t really a thing, though: Common Lisp has built-in literal syntax for n-dimensional arrays and structs and libraries like fset provide literal syntax for Clojure-style immutable data structures.

Immutability by default is a world of difference from library support. I think pretty much every language has a library for it.

Re: Differences with other Lisps

#19
post #18

Earlier quoted context omitted.

This isn’t really a thing, though: Common Lisp has built-in literal syntax for n-dimensional arrays and structs and libraries like fset provide literal syntax for Clojure-style immutable data structures.

Immutability by default is a world of difference from library support. I think pretty much every language has a library for it.

Immutability by default is mostly overrated: I’ve written code in many languages (Haskell, Clojure, JS, CL, etc.), and I’ve found I care more whether a library (Immer, ramda, etc.) provides referentially transparent APIs than whether or not the language’s data-structures provide immutability guarantees.

But, additionally, my point was that CL has literal representations for arbitrary data types, not that you can get immutable datastructures from a library.

Post reply on HN