Live data from Hacker News

Why I Hate Frameworks

discuss.joelonsoftware.com

41–50 of 127 posts

Re: Why I Hate Frameworks

#41
post #11

Earlier quoted context omitted.

Well, not quite... that's a bad analogy too, actually... Rails isn't IKEA - and most java frameworks are definitely not IKEA. Frameworks are tools, not end products.

Have you tried assembling an Ikea flat-pack?

Many times, and I can't for the life of me understand why anyone would struggle at it.

IKEA provides flat-packed products. You never buy a wardrobe at IKEA and then turn it into a couch instead. It will always be a wardrobe, and nothing else.

On the other hand, if you buy a set of tools and environment (aka framework) to build furniture, you can use it to build whatever furniture you want/can.

Re: Why I Hate Frameworks

#42
post #32
post #27

Here's the dirty little secret that no one wants to talk about... The purpose of "assisters" like frameworks and higher level languages is NOT to make good progammers more efficient. It's to make mediocre programmers more likely to produce something of value and to make poor programmers capable of producing anything at all. And if the bell curve tells us anything at all, it's that these "tools" target 90% of all prog…

I agree completely. Web frameworks add a layer of code bureaucracy that really doesn't need to be there in most cases. Reading and setting browser cookies is not that hard. Creating and reading web forms and validating inputs is not hard. Creating a relational database schema and objects that store themselves in that schema is not hard. You can do all of this directly in mod_python, essentialy by buildng your own fra…

Code bureaucracy? A friend of mine managed an Extreme Programming project for the Department of Defense. When he first started out, the paper bureaucracy required to create a new class amounted to two full business days! He got that whittled down to two hours.

Re: Why I Hate Frameworks

#43
post #27

Here's the dirty little secret that no one wants to talk about... The purpose of "assisters" like frameworks and higher level languages is NOT to make good progammers more efficient. It's to make mediocre programmers more likely to produce something of value and to make poor programmers capable of producing anything at all. And if the bell curve tells us anything at all, it's that these "tools" target 90% of all prog…

Lets see I can use Rails and build something or I can spend my time building something like Rails from scratch. Not a tough choice. The top ten percent probably don't reinvent the wheel when they don't have to. Do you write all your own libraries too? Maybe your situation doesn't fit the mold but your claims about efficiency and programming prowess are a bit absurd.

Re: Why I Hate Frameworks

#44
post #32

Earlier quoted context omitted.

I agree completely. Web frameworks add a layer of code bureaucracy that really doesn't need to be there in most cases. Reading and setting browser cookies is not that hard. Creating and reading web forms and validating inputs is not hard. Creating a relational database schema and objects that store themselves in that schema is not hard. You can do all of this directly in mod_python, essentialy by buildng your own fra…

"essentially by building your own framework" Why build your own framework when there's one already there? Already well-used, well-tested, well-extended? Sure it may be easy enough to do, but is it really worth it? I, for one, would much prefer to be spending my coding time writing application logic than Yet Another Validation Library.

Because frameworks aren't optimized to your use case.

Re: Why I Hate Frameworks

#45

Over-complexity is common in the Java space. I was aghast at using JMS. You make a Context so that you can tell it to make a ConnectionFactory, so that you can then ask that thing for a Connection, then you finally get to login . You can then instantiate Producers and Consumers and finally get messages. Why do I need to have 5 different objects when one would do? Having 5 different objects did absolutely nothing for…

This also makes unit testing extremely diffcult since you have the joy of creating mock objects for your Context, ConnectionFactory and Connection. I have all but given up writing test code at work. The various j2ee frameworks I have to use make it almost impossible.

Re: Why I Hate Frameworks

#46
post #32

Earlier quoted context omitted.

I agree completely. Web frameworks add a layer of code bureaucracy that really doesn't need to be there in most cases. Reading and setting browser cookies is not that hard. Creating and reading web forms and validating inputs is not hard. Creating a relational database schema and objects that store themselves in that schema is not hard. You can do all of this directly in mod_python, essentialy by buildng your own fra…

"essentially by building your own framework" Why build your own framework when there's one already there? Already well-used, well-tested, well-extended? Sure it may be easy enough to do, but is it really worth it? I, for one, would much prefer to be spending my coding time writing application logic than Yet Another Validation Library.

So, the popular theorem is that programmers who have been working for any amount of time already have the makings of their own frameworks. They've already written code to connect to or abstract a database. They've already written their authentication pieces. They've already written (or are using) something like Smarty for 'views' or display data.

For many developers who toil in the same language all the time, or who have spent many hours in whatever language they're currently in, that's the case.

For me, I avoid Rails because it makes me feel like a failure. ActiveRecord, for one reason or another, hates me. I like Rails, and I like the Framework concept (however limiting it might be) -- because I feel that it gets you started more quickly. At the end of any significant project, I feel like you will have likely massaged enough elements of the framework to make it work for you that it's hardly recognizable, but it still got you something to show people that much faster.

That said, ActiveRecord is the showstopper for me in Rails. It seems like I've either never properly wrapped my head around it, or there are fairly low limits to what you can do, or I'm doing everything wrong. What that's always meant for me is that instead of using ActiveRecord to its fullest, I'm building SQL queries manually. And if I'm deviating from the framework's toolset, why am I using this framework in the first place.

This is NOT a knock on Rails, I'm probably just doing it wrong. Rails and I can still be friends... just not in that way.

I've always liked the 'middle ground' that Zend offers, in that it abstracts away the connection and handle, and gives me a convenient place to start building the model code. It's not 100%, but it doesn't make me feel guilty in the morning either.

Re: Why I Hate Frameworks

#47
post #37
post #27

Here's the dirty little secret that no one wants to talk about... The purpose of "assisters" like frameworks and higher level languages is NOT to make good progammers more efficient. It's to make mediocre programmers more likely to produce something of value and to make poor programmers capable of producing anything at all. And if the bell curve tells us anything at all, it's that these "tools" target 90% of all prog…

"Only when you dip down into the mediocre masses do you need this help." And what is wrong with that? Some of us aren't the programming gods you are. If it helps people why get so high and mighty about it? I know with your superior intellect us philistines might seem dumb to you, but maybe you should stop writing about how smart you are when you can't even spell "programmers" right.

Amen. If the goal of programming is to liberate humanity from tedium, what's with this kind of elitism? Many of us live happy lives as programmers with zero formal training but relentless curiosity; having never cracked SICP or taken an electronics course but producing solid work -- often with the help of high level languages and frameworks. I mean shit, isn't that the whole point? To let anyone make something effective?

Re: Why I Hate Frameworks

#48
I stopped reading after "In the process, I'm evaluating a bunch of J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container frameworks."

Re: Why I Hate Frameworks

#49
post #37
post #27

Here's the dirty little secret that no one wants to talk about... The purpose of "assisters" like frameworks and higher level languages is NOT to make good progammers more efficient. It's to make mediocre programmers more likely to produce something of value and to make poor programmers capable of producing anything at all. And if the bell curve tells us anything at all, it's that these "tools" target 90% of all prog…

"Only when you dip down into the mediocre masses do you need this help." And what is wrong with that? Some of us aren't the programming gods you are. If it helps people why get so high and mighty about it? I know with your superior intellect us philistines might seem dumb to you, but maybe you should stop writing about how smart you are when you can't even spell "programmers" right.

Struck a nerve, huh?

This was partially in jest (notice the lol), and I realize this is sometimes hard to convey in writing. Sorry.

But there's also a lot of truth in it, too.

No one is born a mediocre programmer. It's a choice.

Notice I didn't say a "junior" programmer. There's a difference. A junior programmer has less experience, but has a good attitude, is willing to learn, and practice his or her craft to get better. A mediocre programmer is just lazy and thinks he or she knows better.

This was directed at the thousands of lazy thoughtless programmers I've had to clean up after over the years. You know the ones. They refuse to follow accepted standards. They name their variables whatever they feel like at the moment. Good luck figuring out what "a" "aa" or "aaa" mean. Or locating them in a text editor. They use single entry, multiple exit. Good luck changing one line of code in the middle of that. They rewrite the same functions over and over, so I have to change all 14 versions. And spend the next 2 weeks regression testing.

I only wish these people were required to use a framework that forced them to conform to anything that would have made my life a little easier.

If "high and mighty" means "wants to get work done" or "cares about others", then thank you. Some of us choose to write clear, effective, easy to maintain code without a framework. If you ever have to maintain my code, perhaps you'll understand.

Re: Why I Hate Frameworks

#50

On a related note, I saw this on reddit this morning: http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server... What's sad is that I have no idea if this is a joke or not.

The Apache XML-RPC framework is a complete joke. It is completely over-engineered with crazy patterns and stupid extensibility hooks that nobody is waiting for.

When Polar Rose still used XML-RPC we rolled our own framework that integrates well with Spring. You basically expose your POJO and be done with it ...

http://code.google.com/p/polarrose-spring-xmlrpc

Post reply on HN