4 ms·
The other frameworks would "fall down" or you would need to write a small amount of glue code? While Django is mature, I'm using it right now in fact, I find t
by freshhawk 14y ago
The other frameworks would "fall down" or you would need to write a small amount of glue code?
While Django is mature, I'm using it right now in fact, I find that I spend a hell of a lot of time trying to figure out why Django is doing a specific thing or how to convince it to do the exact thing I want.
I'm convinced, after a few years of Django work and a year or so of Flask (or just werkzeug libraries), that Django is the wrong level of complexity for a web framework.
For every minute I've saved by having django handle the edge case or having some great feature built in I feel like I've lost a few minutes to fighting against the framework when my use case doesn't fit into the expected usage and I'm fighting against a fairly rigid framework.
This feeling is what I think the OP is trying to get at with the "excessive complexity" measurement, although using a single metric like this is probably not the answer. It does fit decently well with my impressions of the frameworks listed (among the ones I've used anyway) but this is a messy and subjective problem.
I've found myself firmly in the "libraries > frameworks" camp because of this issue so I'm certainly biased towards liking this metric, even with it's faults.
- crucialfelix 14y agoSame here. I tried valiantly to do some class based views the other day and my spidey sense started going off. Maybe I'll find time later to get those the way I want them but I suspect they will suck up more time than they will save. It's a general problem with hierarchies of inheritance. Too many separate places where the actual functionality is, so you have to learn all of them and hold them in your head to understand the few pithy lines of code in front of you. And that's the issue with the admin and forms. Hard to keep track
- camus 14y ago> It's a general problem with hierarchies of inheritance. And what do you suggest to make it easier for you to read, spaghetti code ? Django makes great use of mixins, mixins you can re-use to make your own views if you dont like the default generic views.
- crucialfelix 14y agoThat's what I was doing, using mixins. In a way it's no different than stacking decorators, but soon enough you get helper methods being called and cooperations between helper methods and you have no memory which class its implemented it. An IDE can help but that's an indicator that the solution has a readability problem.
- freshhawk 14y agoHow about loosely coupled components and code that makes the logical flow explicit? Tightly coupled frameworks with a lot of magic is a poor solution to annoyance at boilerplate/glue code in most professional situtations. That's not saying Django should do this, they want to create an easy to use, well integrated framework. That's saying why it might be a good idea to avoid tightly coupled frameworks when designing an application.
- OzzyOsbourne 14y agoSo which framework comes out on top with the least developer friction metric? Not just convenient features like an ORM but also, your ability to do stuff without the framework getting in the way.
- freshhawk 14y agoI find the best solution is as minimal a framework as possible with full featured libraries. Avoid the temptation to let a big framework choose your orm, forms library, routing, etc. just because decisions are stressful or complicated. Loose coupling, loose coupling, loose coupling!