Paradigm | Prototype-based |
---|---|
Designed by | Stephen F. White |
Developer | Stephen F. White |
First appeared | 1992 |
Typing discipline | dynamic |
Major implementations | |
CoolMUD | |
Dialects | |
CoolMUD | |
Influenced by | |
MOO | |
Influenced | |
ColdC |
CoolMUD is a type of MUD, and a descendant of MOO. It is a text-based online virtual reality system to which multiple users are connected at the same time. Created by Stephen White, also known by the handles "Ghondahrl" and "ghond", CoolMUD has many similarities to MOO, but pushes more functionality from the driver into the core (the portion written in the CoolMUD language itself) and has extra features for programming distributed objects. The project is currently managed by Robin Lee Powell.
The main differences between the programming languages in MOO and CoolMUD include:
- Instance variables ("properties" in MOO) are all private and not externally visible. Methods ("verbs" in MOO) must be written to expose them. This is similar to early object-oriented programming languages such as Smalltalk.
- There are no builtin properties for owner and location like in MOO. This was done partly to simplify the language and partly to permit more versatile applications.
- There are no facilities for ownership of objects or code security, as strong encapsulation permits these facilities to be written in the CoolMUD language itself.
- Servers can choose to distribute their objects and use objects from distributed servers. Distributed objects can be referenced by putting an email-like address after the object number, for example: "#14@AnotherMUD".
Unlike MOO, CoolMUD's object database is fully disk-based. Whereas MOO's implementation of persistence is based on periodic "checkpoints" during which the complete state of the server's object memory is written to disk, CoolMUD keeps the majority of the object database on disk and keeps a cache of the most frequently used objects in memory, a strategy known as incremental persistence. The CoolMUD implementation of the disk-based object memory is based on Marcus Ranum's work from UnterMUD.