5 ms·
Obligatory link to the best ever libraries-vs-frameworks post in the history of internets: http://term.ie/devdev/why_frameworks_suck http://term.ie/devdev/why_f
by cousin_it 17y ago
Obligatory link to the best ever libraries-vs-frameworks post in the history of internets: http://term.ie/devdev/why_frameworks_suck http://term.ie/devdev/why_frameworks_suck .
Choice quote: I’d really like to give you this fork Jimmy, but you’re gonna need a knife and plate to use it.
- irrelative 17y agoThat's a great article -- hadn't seen that before. I guess everything's already been ranted about...
- Hexstream 17y agoBah. Why monolithic frameworks suck. If the framework is implemented as a bunch of nicely integrated yet modular libraries that you can use standalone, you can use the fork without the knife and plate.
- natrius 17y agoPart of the benefit of monolithic frameworks is the third party tools built on top of it. If you choose libraries independently, you've avoided reinventing a few wheels, but there is more functionality you could avoid reimplementing than just the basic database interaction, template system and request handling.
- Hexstream 17y agoThere's a bit of a paradox here: a monolithic framework gives you less choice because you can't use only a part of it without great pain, however you have ostensibly more choice of functionality from third-parties since there's a standard way to use it that's hard to diverge from. But if you're any NIH on the side, the framework-as-bunch-of-easily-integrated-libraries approach really makes more sense. It also lets you try a framework incrementally, therefore decreasing risk instead of committing to a behemoth framework prematurely.
- Silhouette 17y agoI'm not sure that article is a fair discussion. To me, the framework wouldn't do as your quote says. My framework would ask me how many people I want for dinner, what mood I'd like, and what should be on the menu. Then it would surround my table with exactly the right number of chairs, lay out appropriate crockery and cutlery for the courses, and switch on suitable lighting and music. It would also give me a facility to override its choice of lighting and music to specific settings if I wanted to, and a way to tell it one of my guests is left-handed and another is a vegetarian so their places at the table can be adjusted accordingly. Of course, my framework would suck at laying out food for a finger buffet for 50 at my big party, but then if that's what I wanted, I doubt I would have started with that framework anyway. And I'd still have to decide on the music and lighting.
- randallsquared 17y agoUnfortunately, the "vegetarian" option was written by someone who eats bacon every day, and it's really buggy. Since it's wired into the framework, though, figuring out why it's serving chicken nuggets to the vegetarian is difficult. The facility for including a child at the dinner just says //TODO.
- Silhouette 17y agoI appreciate the joke, but you can have software that sucks whether it's a framework or a less structured library. In a decent framework, there are usually hooks for lots of stuff, but much of the time you don't use any particular hook because the default behaviour is what you want. In your case, it ought to have been possible to override the vegetarian dish preparation with a version completely of your own creation if you wanted to. But in any case, there's not that much difference between this and building a project around a specialised library that doesn't have a whole framework: you're still screwed if you discover late in the proceedings that it's got nasty bugs and whoever produces it isn't willing or able to fix them. (If you get to invent another library that conveniently provides the same interfaces and has no bugs to use as a drop-in replacement, I get to pull an interchangeable and bug-free framework out of the same magic hat.)
- aboodman 17y agoGreat article. I have wanted to write that exact post for about a year now. Good to know it's already been done :).