Clojure China

Things I hate about ClojureScript


I was a big fan of ClojureScript. Now I’m still am, but not that sure. The most significant thing I did with ClojureScript is implemented myself a React-like library for DOM manipulations. A year ago I thought ClojureScript is the best languages for designing virtual DOM solutions. It was because of persistent data, which brought a lot of convenience.

However, ClojureScript is not persuasive. Not even compared to JavaScript. I think Rich designed Clojure great. But that turned out to be not enough. People don’t buy it. I barely see people using ClojureScript in production. Not even myself.

Here are the main problems I see:

  • ClojureScript does not care about Webpack. It’s 2017 now, people agreed that Webpack is cool and essential. We have to bundle all kinds of resources for a website, images, fonts, CSS code. Meanwhile we will need code splitting since we have different situations to solve. Webpack has done a lot. I asked before but got an answer than Closure Compiler got smaller bundle size. Well, it’s nice to have smaller bundle size, but a picture will make the size a lot greater, how about hundreds of pictures! But we need Webpack, nearly all languages that compile to JavaScript use Webpack in order to fit into JavaScript ecosystem.

  • I don’t like the closed community too. I can’t say it’s bad but it reduced lots of chance beginners get enough help. During the first days I was learning ClojureScript, I googled a lot but got less help compared to that in JavaScript. Later I found people posting answers on Slack. That’s why I can’t find it on Google. Today people think and remember things with Google. I wrote 3 posts doing survey on type system usage in JavaScript, and Google find all of them. Not if it’s in Slack. People from ClojureScript side tried a lot to convince people that ClojureScript is superior to JavaScript. I think that’s wrong. We should convince them that ClojureScript is better then TypeScript, CoffeeScript, Flow, Babel, Elm, PureScript, ReasonML… all of them!

  • It has been several years now since self-hosted ClojureScript come out. Many people who picked JavaScript as the first language hate JVM, JVM is slow compared with Node.js. And Node.js is somehow more and more powerful. With Node.js we can do more do build better toolchains. It can be heavy work with JVM.

After trying a lot of languages I still believe that Clojure is a special language that designed with simplicity in mind. Other languages added lots of features to get problems done, sometimes got features more heavy than the problem itself. Clojure is complicated but I don’t see it heavy. Just on the ClojureScript side, I do hate then poorness.


I agree with you. The clojurescript is the best language.
I hope lumo can be better and better day by day.
Even webpack is also including in. :smiley:


@wind13 @jiyinyiyong Do you use lumo as your ClojureScript environment? I wanna try it now :slightly_smiling:


I heard someone used it in production. Sounded quite good. But they had to fork some packages in order to make all things work(maybe pm2).