I used to read these kinds of articles with interest, back in my Common Lisp programming days. They would worry me. Back in the day, I would even sometimes participate in language advocacy discussions.
These days, I don't care at all — I just write great apps that work (fast). Some code runs on the JVM, some code runs in the browser, some runs in both places. I get to use an impressive set of libraries from at least three different ecosystems (Clojure/ClojureScript, Java, Javascript). I get to use fantastic languages with impressive concurrency support. I deliver applications which customers pay money for.
For me at least, Clojure made this kind of writing totally obsolete, in the span of several years.
I've had the same experience but only in isolated places where I could choose the technology. Most of the time, though, I bring up any Lisp and people act like I walked in with dog excrement on my shoes. But these are the same kind of people that are telling me that Golang is going to cure cancer, too so the feeling is mutual.
Unfortunately, due to the JVM, Clojure is not the answer for everyone.
It is not for embedded systems, not for Android (last I checked, it was very slow), and not for browsers. I believe that ClojureScript is probably what's going to take the crown, eventually.
Still, Clojure or ClojureScript missing a lot of things from Lisp. Restarts, for instance.
I'm curious why you say that Clojure(script) is not for browsers? The only time I've really had a problem with Clojurescript is when I'm doing something that heavily interacts with an imperative browser api (like webGL). And even then I just create an interface for that part in JS.
When I wrote this essay, Clojure was beginning to show its chops. You're right, the success of Clojure has made Lisp armchair theorizing obsolete. I'm a little tired of the essay, but I keep it up because I still get e-mails praising me for it (cf. the volunteers who made translations linked at the bottom of the page).
I used to think that, but alexandria:with-gensyms is pretty nifty. I think the lesson I learned is that every syntax pain point is a macro waiting to be born.
Can't agree more. I feel like the reason why a lot of Lispers back in the day ended up re-inventing the wheel is not because of Lisp's "dark, seducing power" but simply because the tools and solutions just weren't there yet.
For example, if it wasn't for the existing JVM ecosystem of tools and libraries, I would probably end up creating my own undocumented, unportable, bug-ridden implementation of 80% of Netty. Instead, I just use https://github.com/ztellman/aleph
The difference is that Hicky is good at marketing. His lectures are awesome and he has made himself the leader of the immutability movement. That hasn't happened to lisp before.
I just started learning Clojure and I would agree with you already. It has all the nice parts from other ecosystems and is just fast to do what I need to do.
Startup time is something of a red herring for me, kind of like "give me a single EXE or your language is useless" used to be in the Common Lisp world. I don't encounter this problem in practical use. But then, I don't use Clojure to write scripts that I then run hundreds of times from the shell (but why would you want to do that, rather than write a program that does what is needed to hundreds of files at once?).
These days, I don't care at all — I just write great apps that work (fast). Some code runs on the JVM, some code runs in the browser, some runs in both places. I get to use an impressive set of libraries from at least three different ecosystems (Clojure/ClojureScript, Java, Javascript). I get to use fantastic languages with impressive concurrency support. I deliver applications which customers pay money for.
For me at least, Clojure made this kind of writing totally obsolete, in the span of several years.