« Communication Languages | Main | Thinking bad, Foostering* good »

Frameworks are leading indicators for programming languages

Patrick has a dig at Rails. Hype deflation is a good thing (and RoR is over-hyped), but one thing he said in comments bothered me - that programming languages don't matter, at least not with respect to frameworks and tools.

First of all, I want good languages, frameworks and tools - these are not mutually exclusive. Second, programming languages clearly do matter. For example the capability of the base language will heavily influence the requirements for any framework you build on top of it and the particular software patterns and idioms you need to use. You write enough C code and you end up wanting a VTable; you write enough C++ code you end wanting garbage collection; you write enough Java code you end up wanting funargs. Each time, someone will build a framework or a library to support something that will end being part proper of another language. A framework is a patch for a programming language.

A framework is also a way of dealing with impedence between a programming language and its environment - in particular with respect to how data is modelled. For example, the plethora of Java web frameworks probably comes down to a mismatch between object oriented languages and web architecture - this, in much the same way objects mismatch with relations or XML, but there is better awareness in the Java world about those two.

Frameworks provide leading indicators of what developers want to get their work done. The signs with Java frameworks indicate developers want for support for function passing, easy introspection, inverted dependency management, and object runtimes that are essentially REPLs.

Finally, Patrick says he plans to a better job of promoting OpenSymphony. No argument there - OpenSymphony is consistently one of the best Java OSS foundries. WebWork, Quartz Sitemesh, and OSCache are all excellent.

March 8, 2005 10:41 PM


Patrick Lightbody
(March 8, 2005 11:20 PM #)

You're right -- they all matter. I was just merely trying to point out that counting lines of code is silly. Counting effort to produce and maintain is all that matters. Certainly other languages can make that easier, but for me, I can't live without IDEA. Refactoring via "find and replace" just freaks me out too much! :P


PS: Thanks for the kind words about OS...

(March 9, 2005 12:34 AM #)

I'd have to completely disagree. Frameworks are not patches for a language. If writing a specific framework makes you wish for 'funargs' in Java then you must be writing some pretty strange Java code. A framework ideally is nothing more than a formalization of a few design patterns. Also I'm not sure you get your list of what Java developers want... but except for the obvious "dependency management" I don't think it's right.

(March 9, 2005 10:21 PM #)

why do you think you disagree?
Bill is saying that frameworks show a need they do not generate it.

OTOH, you just talked about frameworks as "formalizing patterns", but mr.Norvig pointed out years ago that all the the GoF DPs are oneliners or builtin in some languages, thus merging the two things prove the original point.

Post a comment

(you may use HTML tags for style)

Remember Me?

Trackback Pings

TrackBack URL for this entry: