Positioned as an easy-to-learn general-purpose programming language, Citrine can be used with Unix-like OSes, including Linux, OpenBSD, and Mac OS X.
Everything is an object in open source Citrine, de Mooij said. "You write a program by making these objects talk to each other, by sending messages. What is the benefit of everything being an object? It makes object-oriented programming easier." In Citrine, an email address, for instance, would be an object. "The trick here is that you can implement very beautiful object-oriented architectures without having the feeling you're constantly overengineering," said de Mooij.
The language emphasizes readability to better enable others to subsequently extend and modify the code. It uses "syntactical and conceptual minimalism" for the sake of simplicity, the Citrine website notes. A block of code can be treated like a function; dynamic scoping is featured as well, along with closures and higher-order functions.
For reusing code, Citrine leverages prototypical inheritance. "Suppose you have a dog and a cat, both can respond to the message 'eat', so to avoid duplicate code we put that response in another object called Animal and then create dog by sending the message
new to Animal instead of Object," the Citrine website explains.
De Mooij describes Citrine as a "still a young language." He expects to reach either an 0.9 or 1.0 release milestone by the end of the year. Citrine is available via a BSD license.