FAQs
From Croquet Consortium
Contents |
Is Croquet an application?
Answer: No. Croquet is a software development toolkit (SDK) that provides a complete professional programmer’s language (Smalltalk/Squeak), integrated development environment (IDE), and class library in every distributed, running participant’s copy. On the other hand, Cobalt is a metaverse browser and virtual world construction application that is being developed using the Croquet SDK.
What is TeaTime?
Answer: TeaTime is the basis for Croquet's object-object communication and synchronization. It is designed to support multi-user applications that can be scaled to massive numbers of concurrently interacting users in a shared virtual space. Croquet's treatment of distributed computation assumes a truly large scale distributed computing platform, consisting of heterogeneous computing devices distributed throughout a planet-scale communications network. Applications are expected to span machines and involve many users. In contrast with the more traditional architectures we grew up with, Croquet incorporates replication of computation (both objects and activity), and the idea of active shared subspaces in its basic interpreter model. More traditional distributed systems replicate data, but try very hard not to replicate computation. It is often easier and more efficient to send the computation to the data, rather than the other way around, however. Consequently, Croquet is defined so that replication of computations is just as easy as replication of data alone.
What is Squeak?
Answer: Squeak is an open, highly-portable Smalltalk-80 implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. The list of features in Squeak is extensive. What would, in other environments, be third party extensions downloadable elsewhere comes fully integrated in the standard Squeak release. More
Why is Croquet built on Squeak?
Answer: Croquet required a number of capabilities that could only be provided by a true late bound, message sending language. Croquet's relationship to Squeak gives Croquet the property of a purely object-oriented system. This allows for significant flexibility in the design and the nature of the protocols and architectures that have been developed for Croquet. An essential part of our development process is Squeak's ability to keep the system running while testing and especially while making changes. Squeak allows even major changes to be performed incrementally and they take no more than a fraction of a second to effect. Another key feature of Squeak is its generalized storage allocator and garbage collector that is not only efficient in real-time (so that animations and dynamic media of many kinds can be played while the garbage collector is collecting), but that allows reshaping of objects to be done safely. It may be interesting to note that when we first set out to build Croquet, we intended to do it in Java. However, we had to abandon that approach because Java lacks needed meta facilities.
What is the Squeak virtual machine?
Answer: The Squeak virtual machine is software that acts as an interface between Squeak code and the microprocessor. The Squeak virtual machine is written in Slang, a functional subset of Smalltalk that can be translated into standard C. Squeak essentially uses the C language as a cross-platform equivalent of assembly language. Since Slang is a subset of Smalltalk, the Squeak virtual machine can be edited and debugged by running it in Squeak itself. The virtual machine can also be extended with plug-ins, written in either C or Slang. These are used in Squeak for such things as playing MPEGs and for Squeak's built in public key encryption abilities.
