The Croquet Project

If you are at all interested in human interface design and the possibilities for collaborative work made possible by the Internet, I would highly recommend that you take a look at the Croquet Project. I can’t really do the concept justice in words, so just take a look at their screenshots section to get an idea of what it’s all about, but it basically allows users to project their 2D desktop workspaces into a virtual 3D world and allows them to show, share and collaborate on those desktops with other Croquet users. Apparently, the applications themselves don’t even need to be specially tailored for Croquet – they think it’s just another window manager.
It is programmed in Squeak (a Smalltalk implementation), so that’s a downside, but at least it’s not using Java… *shudder*

4 Comments

Primarily because of the (as I see them) unnatural constraints imposed upon both programming style and performance by the adherence to a strict MVC paradigm inherent in Smalltalk (and Smalltalk-esque languages). Perhaps that’s just my C bigotry showing through, but I get all shuddery when people start talking about entirely OO’d languages.

Smalltalk doesn’t “impose” MVC – MVC is one design pattern among many. Not having looked at Croquet’s design, I have no idea how much (if at all) MVC plays into it. MVC is actually a good way to decompose a UI design though; I’m not at all sure I understand why you think it has performance issues.

I may require some re-education on this point, but when I was using Smalltalk back in college, performance never seemed to be the aim of any of the implementations I used. It seemed to make a good teaching tool for object-oriented programming (basically by forcing everything, including basic types to be objects) but didn’t seem like it offered anything above and beyond that.
I haven’t messed around with Squeak very much, so I can’t vouch for its performance. From what I know/have learned, though, I wouldn’t think that any Smalltalk implementation would make a very good foundation for a robust graphical environment. I could be fiercely wrong, though. Care to educate me? *grin*