4 ms·
My take is that frameworks are great when you are building new projects, but become somewhat limiting over time. Also, with a complex application you often find
by jwr 8y ago
My take is that frameworks are great when you are building new projects, but become somewhat limiting over time. Also, with a complex application you often find that not everything can be nicely abstracted and there are features which cut across the stack, requiring changes everywhere.
In my fairly large Clojure+ClojureScript app I do not use a framework, mostly because nothing existed when I started. I pick libraries and make them work together. This has advantages, but also brings endless frustration when I have to deal with stuff like web authentication, file uploads, or Oauth2. I really wish there were good solutions for these kinds of generic problems.
Also, not all choices made by the framework are necessarily a good fit for every application size. I used to like Reagent, and I still think it's great for learning. But then it became limiting, I switched to Rum and never looked back.
But in general, why not take the Clojure approach and use the right tool for the right thing? You don't have to chain yourself for life to a framework, you can use a framework for one app and use a bunch of separate libraries in another. I think in the Java world there is so much incidental complexity, that you have to choose a single framework and stick with it, as it's likely the only thing you will be able to learn. Not so in the Clojure world.
- blunte 8y agoThe huge reason I'm not using Clojure for webdev is because there is rarely an accurate, current guide that demonstrates how to plug things together to get a typical CRUD+user auth website going. I know that everything I need already exists, but I have yet to find a complete tutorial (Rails Depot, for example) that actually works. There's always some gap that isn't explained or some step that fails because the guide is 2+ years old. So while I do agree that choosing your own libraries (and essentially building your own custom framework, because that's what they all end up as) is preferable long term, it is incredibly frustrating trying to build that first webapp.