back

by iLemming·7y ago·view on hn ↗
> building production grade software

IMO Clojure is the only viable choice today (that fits your requirements)

- Common Lisp (sadly) on the trajectory of becoming "Latin of Lisps". If you seriously into Lisps, at some point you'd probably would have to learn it, but practicality of that knowledge is slowly diminishing.

- Racket is still quite "academic", not much of it is used in the enterprise (in comparison).

- Erlang VM lisps are even less popular.

- There are a bunch of "smaller" lisps, like Fennel, but they are mostly used by solo enthusiasts, and not for driving businesses.

Clojure is really nice. Clojurescript is probably the best AltJS alternative today (compared to Elm, Purescript, ReasonML, Scalajs, Kotlinjs, GHCJS, etc.). Clojure is extremely stable. And don't worry about Java. There's no need to "dig into the Java world". There are tons of Clojure wrappers.

I think among FP languages Clojure is still the best choice today, because it is "worst is better of Haskell" * . Haskell is awesome, but: a) it is indisputably hard b) it's not a Lisp.

  * https://en.wikipedia.org/wiki/Worse_is_better
2 comments
Looking just at Redmonk's language popularity rankings, Common Lisp has risen over the last n years, and the most recent one had it right in the middle of the chart on discussions plotted with repos. I think it's a mistake to characterize it as being on a "dying" trajectory, at least when it's currently enjoying a resurgence. (In my mind in no small part thanks to Clojure, but I think the biggest cause of growth is the existence of the Quicklisp project.)
> Clojurescript is probably the best AltJS alternative today (compared to Elm, Purescript, ReasonML, Scalajs, Kotlinjs, GHCJS, etc.).

Do you mind expanding on this? I’m moving away from Elm and I’ve been considering Clojurescript, ReasonML, and Purescript.

AFAIK FFI and use of existing JS libs is a pain in both Elm and ReasonML (that is my subjective, empirical observation). Purescript is nice, but what would you use in the back-end? Haskell? Or would you target nodejs? Deploying and maintaining nodejs clusters is not fun. Using Haskell in the enterprise could be fun, but getting to the level where it is fun is extremely hard. Finding and hiring people is also difficult. Searching for a Haskell job is difficult.

People often dismiss Clojure for being dynamically typed, but it has Spec and Spec is awesome.

People dismiss Clojure because it's JVM based, but they missed the fact that JVM actually is pretty robust and very nice piece of tech.

People dismiss Clojure because "all the changes to the core have to be approved by Rich Hickey", but they miss the fact how stable Clojure is. It is hard to find a language ecosystem where you can pick any library written years ago, bump versions of major components and expect everything to work.

I am not even talking about how people ignore Clojure because it is a Lisp. That's just outright dumb.

There are no silver bullets. Any language ecosystem has its own limitations and incur certain degree of frustration. Clojure nicely minimizes frustration. It doesn't get rid of it completely (otherwise they wouldn't call it "work", they'd call it differently and I wouldn't get paid for it)

Thanks for the reply!

It being a Lisp is a positive point for me.

I'm not a fan of dynamically typed languages, but I'll have a look through spec. From a cursory look, Clojurescript can use Spec as well.