Live data from Hacker News

Why I Hate Frameworks

discuss.joelonsoftware.com

1–10 of 127 posts

Re: Why I Hate Frameworks

#2
An oldie (2005) but goodie.

Although it is less about frameworks and more about a disease which was largely contained to Java enterprise-y architecture stuff. (I say as a practitioner in that field... remind me why we are using the Factory pattern here, again?)

Re: Why I Hate Frameworks

#3
Rails: Here's a kick-ass hammer, a kick-ass saw, a kick-ass measure tape, etc...

Oh, and if you need them to be different from the default, you can modify them as you want, but we think the default works for most people.

Re: Why I Hate Frameworks

#4
post #3

Rails: Here's a kick-ass hammer, a kick-ass saw, a kick-ass measure tape, etc... Oh, and if you need them to be different from the default, you can modify them as you want, but we think the default works for most people.

But don't bother checking for the spring mechanism that retracts the measure tape in case it breaks or the power supply connection point on the saw if it stops working.

Those bits just magically work!

:)

Re: Why I Hate Frameworks

#5
post #3

Rails: Here's a kick-ass hammer, a kick-ass saw, a kick-ass measure tape, etc... Oh, and if you need them to be different from the default, you can modify them as you want, but we think the default works for most people.

But don't bother checking for the spring mechanism that retracts the measure tape in case it breaks or the power supply connection point on the saw if it stops working. Those bits just magically work! :)

There must be hole in the spring mechanism testing procedure

Re: Why I Hate Frameworks

#6
post #3

Rails: Here's a kick-ass hammer, a kick-ass saw, a kick-ass measure tape, etc... Oh, and if you need them to be different from the default, you can modify them as you want, but we think the default works for most people.

But don't bother checking for the spring mechanism that retracts the measure tape in case it breaks or the power supply connection point on the saw if it stops working. Those bits just magically work! :)

They don't magically work. You'll understand the mechanism when you know a bit more about how to build a measure tape and a saw. Also, all the so-called magic is extensively and automatically tested, and so an order of magnitude more reliable than your own custom-rolled spring mechanisms.

Re: Why I Hate Frameworks

#7
post #2

An oldie (2005) but goodie. Although it is less about frameworks and more about a disease which was largely contained to Java enterprise-y architecture stuff. (I say as a practitioner in that field... remind me why we are using the Factory pattern here, again?)

It made its way into the .NET space also many years ago. Working on a pretty big application now with a big team. We have two sets of Factories, with interfaces between them so that nobody ever sees an actual class. Egads!

Re: Why I Hate Frameworks

#8
Frameworks can sometimes be annoying. It's like learning a new sub-language on top of the programming language as there is a certain amount of familiarity you need with a framework's calls (ex. to program in Python, it goes a lot faster if you know that it's len(list) not list.length() and similarly if you're using Rails it's important to know that there is no validates_is_number, but there is validates_numericality_of). So, you start learning all these things that may or may not apply to your project - the language of the framework. And in some places it slows you down and you feel like there's abstraction just for the sake of abstraction, but in the end I think it's worth it.

I also think Joel misses something: most programmers are bad programmers. They'll dig you into holes, write lots of spaghetti string code, etc. At least when they're using a framework there's some constraint on their madness. Frameworks (generally) make it a tad difficult to work outside of their constraints and so the default becomes to work in that standard way. So, you don't get people doing weird things as often - like building a string that is the page that they'll echo out like the piece of PHP I'm working on today does (guess they didn't realize that you could simply go out of PHP mode to do that).

Re: Why I Hate Frameworks

#9
post #6

Earlier quoted context omitted.

But don't bother checking for the spring mechanism that retracts the measure tape in case it breaks or the power supply connection point on the saw if it stops working. Those bits just magically work! :)

They don't magically work. You'll understand the mechanism when you know a bit more about how to build a measure tape and a saw. Also, all the so-called magic is extensively and automatically tested, and so an order of magnitude more reliable than your own custom-rolled spring mechanisms.

Exactly. This is why the article is such a bad analogy - frameworks makes things simpler by handling things you'd already do without them.

If you're making a spice rack:

Without framework: DIY shed filled with tools

Framework: IKEA

Re: Why I Hate Frameworks

#10
A friend convinced me to try AppFuse once. I have a burning, probably un-justified hatred of Eclipse, so I tried the AppFuse + NetBeans tutorial.

That may be the most unproductive I have felt in my entire life. I made a damn login form and it took like 12 pages of tutorial, tons of setup, generating a whole bunch of files that seemed like they could have been done algorithmically because they are always the same, editing like nine different XML files with little bits of glue, and eventually like one or maybe two lines of code.

Then, I got to wait for the WAR to compile each time I wanted to test a change, because the tutorial didn't seem to know about a developer mode which probably exists.

I hate to sound all ranty and partisan, but I could find no way in which that process could be efficient and couldn't imagine anyone doing it voluntarily unless they were ordered or just had no exposure to the rest of the world.

Also, I sort of object to having code stuffed in an eight-folder deep hierarchy where the preceding seven folders contain nothing at all. That's a lot of wasted navigation and clicking time and distraction.

Post reply on HN