I desperately want to play with The Croquet Project. The idea behind the Croquet project is to experiment with creating a brand new operating system using today's knowledge, complete integration with the Internet, wide social interaction and a 3D environment. I don't know that Croquet is the future (history suggests that it's only a prototype of the future), but 3D operating systems with full-time Internet connections are the future. We're finally getting to the point where computers are fast enough, the 'net is fast enough and graphics cards can handle the load. Heck, 3D monitors and laptops are being sold and their price is coming down. The only thing that's really stopping us from using 3D operating systems is that they haven't been built.
With Croquet, we have a chance to see what the operating system of the future looks like. Originally, they attempted to program it in Java but found the language too limiting. They switched to a language called Squeak (a free version of a language called SmallTalk) to get the flexibility they've needed. Because I'm so interested in the project, I've downloaded the Squeak language and started playing with it. It's very fun. It will seem strange if you're not used to working with a true object-oriented language (Java is nowhere close, thank you), but everyone I know who's really familiar with Squeak and SmallTalk rave about the languages.
Just to get an idea about the possibilities of a 3D operating system, check out Croquet's screen shots. Just remember, those are not screenshots of a game. They are screenshots of an operating system. Think about that the next time you're staring at your computer's wallpaper.
Of course, not to be outdone, Sun Microsystems has their own 3D desktop called Project Looking Glass. Not surprisingly, it's built using Java. Superficially it looks like they're just trying to layer a 3D user experience on top of existing tools. That's not as interesting to me (and it could be dead wrong) but perhaps it's a more viable approach. Still, statically typed languages such as Java slow down development tremendously. As systems get larger, dynamically typed languages (Perl, Ruby, Squeak, etc.) are going to start coming into their own. SmallTalk was actually one of the dominant OO languages for a while. Java managed to displace it, but only because much of SmallTalk's development is not a "natural" fit with existing tools and practices. That's a shame. Just as the debate between high-level languages (HLLs) and assembler (or machine code) raged in the days when HLLs first came into being, the debate between statically and dynamically typed languages rages today. Hopefully, both camps will lower their silly arms and realize how silly the arguments are.