Croquet - A Collaboration Framework, David Smith
Croquet is simply an example of David's real concern: innovation and the nature of innovation. Dave bought his first Mac in 1984 almost twenty years ago. Today that's what we have but faster and with more colours. What is new about what MS has given us? The answer is, nothing. Smalltalk, laptops, windows: it all came from Xerox Parc decades ago. ('Please restart your computer: failure to do this may result in lost revenue to Microsoft'.) Croquet came from his and Alan Kay's frustration about that (and Andreas Rob and Dave Reed, co-inventor of TCP/IP). Croquet is build entirely in Squeak (OpenGL at the bottom).
The internet is wonderful in what it could be, boring in what it is. It should be a broadband phone call. As soon as Alan et al got basic two dimensional stuff working in the old days, how to use 2D quickly became obvious. They think that Croquet will similarly drive the discovery of what to do with 3D.
He showed us two croquet screens, his and Mike Reuger's, showing a three-D world with mirrors, people (Alice and the white rabbit were his and Mike's avatars) and other objects that could be moved, resized, etc., by either of them. He spun the objects, reflected them in the mirrors, etc. Mike walked around too so we saw many things from two sides.
Dave Reed worked out how to make these objects collaborate. It is not a protocol. Objects understand messages and when objects are in the collaborative architecture they can collaborate on any message by default.
Other objects are portals: URLs represented as windows into another world. Dave went to Mars through such a portal and drove the lander around, etc. (BTW, look at the performance of this; Smalltalk's performance is so much no longer an issue !!!) Dave has only been an Smalltalk programmer for two years and the ability to modify while running is superb. Dave looked back at earth through the portal and grabbed an object on earth while viewing from Mars.
Dave raised and lowered a flag while Mike spun the platform Dave was standing on. ("Can't pull flag back instantly because it's a simulation and just like real cloth it would tear - ours just goes unstable and it's not pretty).
He went into an underwater world and Alice (his avatar) turned into a fish, as did Michael (White Rabbit) when he entered. This is a kind of security model. He then looked at web pages under water (eliciting the inevitable demo glitch: they were not using a web connection and the page was not cached on Mike's machine). He then drew a new fish in the Squeak paint package, inserted it into the world and 'pumped it up with air' to make it into a 3D fish. Andreas created this world in a few hours. This makes Croquet a powerful design tool, especially as you can work collaboratively (and remotely) with others.
He showed us a flash movie playing in an object. He then walked into a gaming world (fountains playing, impressive ruins, etc.). Alice walked up and along the high aqueduct to audience cries of 'Don't do it' from all and sundry (sundry were those who cried 'jump' instead :-)).
Croquet has internet telephony (built in Squeak). Snapshots are worlds into which you can jump, and jump back (like favourites); you just snapshot where you are.
He is working on a (kind of) 3D portal; a doll's house miniature version of the larger space. (Alan Kay, "A point of view is worth 40 IQ points.")
"Innovation is not dead but it's really been put on hold." A year and-a-half ago, Croquet did not exist. Three people (Alan just paid for it :-)) built it. Dave thinks this or things like it will make the next few years more interesting than the last twenty.
Q. At Stamford you said, "You hoped that this would grow to economic adequacy". This needs more than people building cool stuff in it. To change the world, it also needs an economic story. Dave agreed. They have done things to allow it to be secure, able to prevent bad code going to bad places and ensuring that if you use it for a phone call noone can listen in. Also, if you want to use what someone else has done, how can they charge you for it? This needs an economic model.
Q. What is on what machine? Teatime is their collaboration architecture and is still being completed (due this month). The demo was peer-peer; the worlds were on both machines.
Q. Where do permissions live? On the object: object owns its access state.
Q. Have you seen other 3D world avatar systems: Black Sun, etc. Dave has been doing 3D worlds for twenty years. He wrote the first 3D adventure game, 'The Colony' in 1987. He has always been convinced that 3D had to be more than just the worlds, just pretty pictures. He is disappointed with what people have done. The multi-player games are the best but in them the most complex thing you can do with a person is blow them up, which is fun but he doesn't think it scales :-).
Q. Pictures replace code? No, text programs are an efficient form of communication. Pictures let you do things quickly but not deeply.
Q. Can the avatars interact? Not in this example but the avatars are just objects like others so interaction is easy to program.
Q. Ten years hence, what will the clerk in a retail store see? Maybe the store, where the stock is. Doubtless there will be other apps; for sure, anyone would rather have apps written in this than in Windows.
Q. You've done this with Smalltalk's 30-year-old object model. Do we need more? Smalltalk has been wonderful so far. They are looking at parallel architectures and feel no obligation to maintain the status quo. Smalltalk lets you transcend itself; you can use it to rewrite itself. So they will do that as, if and when the problems require it. To date, they have changed very little. Teatime required compiler modifications and the scripting required some deep changes.
Q. Will the OS disappear under the impact of ideas like this? Dan has said OSs are bad. Everywhere Squeak (and a little 3D) will go, Croquet will go. OS will become less important.
Q. Will it be easy to shoot yourself in the foot in this? Alan's eToys work with children (Smalltalk was originally to teach programming to children) helps us build a system that avoids this. They have worked with non-programmer artists and found that when objects know how to do things then non-programmers can tell them what to do.