Hacker News new | past | comments | ask | show | jobs | submit login

Are either commonly used in the way Rails, Spring, and Django are? Clojure is niche but Go is big and I don't see many webapps powered by Go like they are in Ruby/Java/Python with Rails/Spring/Django. In the web world most Go programs I see are API backends.

Here's why I think "just use composable libraries" is a bad idea:

First it isn't very friendly to new developers. You tell them to go out there and find their libraries and they have zero clue where to start.

The second problem is its not very friendly to developers with a couple years experience either. Frameworks take care of so much stuff that most people don't know they need to take care of. Not just obvious things like connecting to an RDBMS but also very basic stuff that every website will need like CSRF protection, session management, etc.

And finally, when you rely on a wide variety of micro libraries you're actually relying a wide variety of other developers. What is going to have more support and development in the future: 10 libraries split across 10 developers with varying levels of commitment, or 1 framework with a group of developers working together on it?

You don't need to build your framework like Rails or Django. You could make it easier to plug in other libraries. But it should have a sane default for everything it needs for the benefit of both new and intermediate developers. Spring kinda works like this. It's easy to use Spring libraries for different parts but you can also just use your own.




This is in constant discussion in the Clojure community but some of the draw backs of frameworks are that you start seeing libraries and code that only work with the big framework

Even when they could have worked without it, and they over Shadow competitors in the space, why use that shiny new router library when my framework already has an one that's "easy" to reach

And then of course the worst thing to happen to a code base, the framework it's built on falls out of favour and you can't hire devs or get security patches for it anymore

"don't put your eggs in one basket", and "developers know the benefit of everything and the cost of nothing" applies here

I think if a framework is to be successful in Clojure it needs to not be intertwined with itself in the "simple made easy" sense

Additionally if the "interface" is data like you might get lucky enough that you get multiple implementations, like many cljs libraries support the react interface

With declarative programming we could certainly keep the intention of code the same whilst changing out the implementation but it would require careful coordination between library creators and a open data interface so that new requirements can be satisfied later down the line and even then multiple variants to serve completely different approaches




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: