The Anxiety Driven Knee-Jerk Framework Debate

Ray Tayek of the OCJUG posted a link to a TSS discussion about an article Drinking the Java EE Kool-aid. It's worth commenting on because this sort of article seems to float around now and then, eliciting strong commentary on all sides. I call it the The Anxiety Driven Knee-Jerk Framework Debate and it is ongoing.

It seems that there is an unusual amount of angst in the Java community, specifically surrounding the web framework landscape. A superficial glance at Java programmers on the web would imply to a dispassionate observer that either Java programmers don't know how to write programs, or if they do, they aren't happy with the work that they must do to actually create a working program.

This is unfortunate. But while I give little credence to the conclusions arrived at by the anxious one must address the simple fact that anxiety exists, albeit in a smaller fraction of the programmer community than a cursory survey would suggest. Anxiety is bad. How to prevent it?

To those who know how to program and don't enjoy it (loudly) I say: Sure there's drudgery involved in writing programs. But so what? Why are we special in not having to experience some boredom, some busywork, some unnecessary painstakingly repetitive valueless work? 95% of humanity earns a living like that.

I'm not saying that we shouldn't attempt to make things better. But to react with indignity or anger to the fact that some programming tasks are inelegant or inefficient strikes me as unproductive at best, and counter-productive at worst. We have an unfortunate situation where knee-jerk reactions cause good programmers to write knee-jerk frameworks, and then other programmers react to the preponderance of frameworks to create new frameworks...and pretty soon there's a lot of frameworks floating around of little use to anyone.

If we stop getting angry, take a deep breath and really look at what we have, I think there's no option but to be really pleased. Indeed, one finds not only that there is a lot of pleasent software floating around, but a lot of cool things to learn about.

To those who don't know how to make a working program I say: One may also discover that a lot of the anxiety is caused by simple ignorance. Part of the problem is that programmers don't stick with a process long enough to get good with it. By skipping from one process to another a programmer ensures that he is never good at any of them. Many framework critics ignore the simple fact that one should be an expert in a framework before one criticizes it. One should be an expert in more than one framework before creating a new one! (And should also be expert in the history of software!) Know your limits and be humble with your criticisms. Note: it helps to know about other successful projects using your technology.

To both types of programmers my advice is simply this: let others get worked up in their endless framework arguments. Understand your own practical needs and over time patiently, open-mindedly add to your simple toolbox those things that have proven value. Leave out those tools which don't justify their cost. If, over a period of years there are still missing features, or even an entire approach which is missing, then write your own framework! But please introduce your work with the joy of someone creating something for its own sake, not as a slap-in-the-face to those who went before you.

No comments: