Frameworks are leading indicators for programming languages
March 08, 2005 |
co.mments
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
Comments
Bill,
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
Patrick
PS: Thanks for the kind words about OS...
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.
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
Trackback Pings
TrackBack URL for this entry:
http://www.dehora.net/mt/mt-tb.cgi/1487