|Designed by||Greg Hudson|
|Developer||Greg Hudson (and others)|
|Major implementations||ColdMUD, Genesis|
|Influenced by||C, MOO, CoolMUD|
||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (April 2010)|
ColdC is a programming language, originally designed for ColdMUD by Greg Hudson in 1993, but with some applications in fields unrelated to MUDs. It is a dynamically typed prototype-based object oriented system, with a syntax derived from the C programming language. It is similar to the MOO programming language in that it operates in a runtime which provides persistence (through an object database) and network access.
ColdC includes many of the attributes that made their debut with the CoolMUD system and programming language, such as:
- 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 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 ColdC language itself.
- Multiple parent relationships, that is multiple objects from which an object can inherit behaviour.
In addition, there are some specific innovations that ColdC added:
- A new datatype for lightweight, immutable objects; whimsically called "frobs".
- An associative array datatype.