As you may know, I'm doing a research internship at the software engineering department at our university. I'm doing conceptual design most of the time, but I spent the past few days writing up tutorial-like material for "Archium":http://www.archium.net. Archium is the architecture/programming language that the people here are working on "as I described a while ago":http://www.zefhemel.com/archives/2005/04/25/research-internship. Yesterday I started working on something that grew into a simple "Archium Tutorial":http://wiki.zefhemel.com/index.php/Archium. For this tutorial I wrote a very simple application that creates two component entities (a client and a server) of which the server exposes one method: getVersion(). The only thing the client does is call that method and print the result. After a while I got it to work. The current implementation of the Archium compiler first compiles to "ArchJava":http://www.archjava.org code. ArchJava then compiles ArchJava to Java code and the Java compiler compiles it to Java code. All that's left to do then is to let the Java virtual machine run it and compile it to native machine code on the fly. Yah, it's not really efficient, but it works (most of the time).
The result? A "93-line piece of archium code":http://www.zefhemel.com/upload/Version.archium that practically prints just one line:
Server version: 1.0
That's the beauty of progress. I can't wait until this stuff is mainstream in about ten years.