June 25, 2004

Virtual Machines

Well, there is an interesting conclusion I came to some days ago. As long as I am a developer there has always been someone who asked me the famous question: "why is software development so expensive?"
Sometimes the question was disguised as: why is programming so tedious? Or, aren't modern architectural blueprints a complete failure?
The developer in me tried to explain the requirements a developer or architect must meet in order to fulfill customers' requirements. Of course, I took the developers' part. Yet, I don't want to list requirements or arguments. Just imagine which of them are the most convincing for you and take them for granted. By the way, I strongly believe that we have to become much more efficient in software development and there are some good ideas out there.

But a few days ago I realized that there are some people doing really fancy stuff. Instead of writing features that are required and they were hired for, they define abstract machines to process abstract pseudo code. Maybe you know 'The Pragmatic Programmer', a book I like very much. It advocates among other things the use of domain specific languages, which is very reasonable in various applications. But the clue is domain specific. If you start writing your own virtual machine in a high level programming language, just to execute your own byte code, I'd say that you're still trying to learn basics of programming or that you completely lost your focus. First is okay, the latter is not.

There are lots of languages and virtual machines available. There's only little demand for people who try to distinguish themselves by superfluously introducing additional complexity and showing off their marvellous approach of dealing with it. It's incredibly insane that this still happens outside of education or research.

Posted by Phillip Ghadir at 8:50 PM | TrackBack