February 09, 2006
I've been tracking a discussion between Michael Feldstein and Stephen Downes lately. I haven't met Michael but he seems a good guy. Stephen I've known for some time. They've been having a "heated debate" on the topic of how to build a system.
This isn't really a debate about the merits of a particular open standard, but of implementation technologies.
I'm a fairly language-agnostic type myself - my CV lists everything from COBOL and Pascal to ASP, JSP, Python and Java - so I'm always amazed at the depth of feeling this type of conversation generates. Its as if choosing to implement a function to add some numbers together using Java as opposed to Perl is some sort of political statement.
There is a serious point about architecture - scalability, reliability, maintenance and cost are no joke when you start getting into the big numbers. These non-functional requirements are always context-specific: a solution for a small college has different requirements than for a global public service expecting millions of subscribers.
There is nothing inherent in OO languages that makes development projects turn into expensive quagmires with 10,000 page specification documents and insanely complicated configurations; nor is there anything inherent in scripting languages that makes web applications turn into piles of cycle-grabbing spaghetti when you turn your back on them. The affordances differ, but not as greatly as you might imagine for server-side code. How you manage the process of development is vastly more important than what the source code is written in.
Actually, I don't believe any of the above. Everything that isn't written in Malbolge is clearly inferior, and you'd be insane to build a learning tool using anything else.