One of my current interests is in AJAX programming. To that end, I’ve decided to develop the basics of a lightweight web “operating system.” I’m calling it MetaDesktop mostly because it’s goal is to be a quite literally a meta desktop that is able to run on a number of different servers and platforms. It’s almost entirely client-based, with as little server-side communication as possible. The server-side portion of the system could theoretically be implemented in any scripting language that is capable of accepting URL-based (“query string”) parameters and can produce HTML/XML output. It is my eventual goal to maintain two separate server-side implementations in ASP.NET or ASP and in PHP.
To put it succinctly, MetaDesktop has the following goals:
Platform Availability. Work in all major browsers, and on all major server/scripting platforms. There will eventually be separately maintained server portions of the program in PHP, ASP/ASP.NET, and maybe even other languages if I decide to learn them (or someone contributes them!).
Speed. A lot of server communication can lead to a very slow user experience. I aim to put as much of MetaDesktop on the client-side as possible. This raises a whole host of interesting problems (and in problems are learning opportunities!) such as dealing with concurrency in a language that has practically no support for it.
See the links to the right if you want to preview MetaDesktop. If you would like to download the code, see the links below. This program is licensed under GPLv3.