The Croquet Project

Warning: minor geeking ahead.

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.
  • Current Mood: impressed impressed
That *is* pretty spiffy. The one problem I'd have is that it would be quite difficult for a 3D OS to be as efficient on a 2D display as is the traditional (now) windowed system... I've played around with a few different 3D windowmanagers and that's really the main complaint I've had... They're pretty and interesting, certainly, but moving around between windows is sort of a slow hassle compared to more traditional methods.
I can see your point about their being slower to navigate, though I've not tried Croquet yet so I can't say (though via email they've informed that a demo will be available this month.)

Still, I think the problem with navigation is that we have mice (mouses?), trackballs and other things designed for 2D but we don't have anything for 3D. Back in the day when everyone used a command line (I was programming back then :), a mouse would have seemed stupid. We had to have the 2D graphic interfaces before the mouse was a realistic alternative.
True enough, but I also remember the Nintendo "Power Glove"... 3d input devices at this point are still rather arcane and lacking in usefulness or precision. :)
I've never tried using a 3D OS, but the two principal objections that spring to mind are, as l00p says, the difficulty of navigation and suchlike using our basically 2D input devices, and also the level of resources needed to keep the operating system active while trying to run other programs.

My friend (who is, admittedly, somewhat obsessive about memory efficiency and background processor time - he'd still be running MS-DOS if he could get away with it) opined that 3D OS's would never catch on because of this latter problem; fancy trying to run Doom 3 while a fully 3D orgy of interactivity is going on in the background? Of course, computers will get more powerful, but computer games will carry on demanding more resources. Hum.

Okay, Maybe I should stop pretending to know what I'm talking about. The truth is the idea of 3D net-integrated operating systems gets me terribly excited, but that might just be because I've read Tad Williams' "Otherland" books and can just see how such things would be a step in the direction of the world he pictures, which would be, well, damn cool. I think voice recognition should also be integrated, so that, say, bringing up new windows or switching to another one already open would be a case of muttering a word or two, rather than a series of mouse clicks. But maybe voice tech isn't really sophisticated enough for that kind of thing yet.

I've completely lost track of what I've been saying now, so maybe I'll just leave. Forgive me; I'm ill.