It’s long story for me since I started learning JavaScript(Acrually CoffeeScript) in 2012. I spent a lot of time in React since late 2014. It got me enough experience to be familiar with most of the concepts appeared in React, and me aware of several tricky problems in React.
My opinion is, JavaScript is a messy language, which led to the fragmental fact of React libraries. People are trying in different directions, using stores that are immutable and observable as well as plain js objects. Meanwhile people add syntax sugars to libraries too with tricky of JavaScript.
By “much better” I meant Webpack. Webpack is lots of great features. Before Webpack, we tried lot of sulotions, however Webpack almost ended the war. It brought loaders, long term caching, hot module replacement, dynamic loading… all built inside Webpack. And it’s not slow to run, compared to Lein and Boot.
Speaking of the length of configure files. I think it can be better, not it’s essentially that complex. Now I’m using shadow-cljs for development and releasing, it’s not short too: https://github.com/mvc-works/coworkflow/blob/master/shadow-cljs.edn . If you want something short, check out some tools that does less, it can be very short: https://parceljs.org/ . I mean, modern web development does need lots of configuration, not problem of js.
For example, to build servers, add a few lines of code of Node.js , it would work. But server side programming is hardly that simple. There are databases, different environments, maybe dockers too. It always becomes complicated.
In the start of 2017, there are several things we can’t do in ClojureScript. Async module loading, long term caching, requiring npm modules in browsers… I used Webpack before and I knew some of them are essential to modern web apps. Now thanks to shadow-cljs and ClojureScript core team, it’s already possible.