Citrine Programming Language
With Citrine you can easily create apps and games using your native language. You can export your creations to any PC, mobile phone, game console or website. Citrine is Open Source (source). * * Some features are still under development.
Latest News
Translation Kit Media Plugin
Citrine ASCII/EN available
Citrine 0.9.6 released
More news »
Manual
Citrine thinks in objects. Everything is an object. You create a program by sending messages to these objects. There are 3 types: Unary messages have no arguments. binary messages have 1 argument and consist of 1 character. keyword messages have 1 or more arguments.
☞ x ≔ ‘Hello’ length. ☞ x ≔ 3 + 7. ☞ x ≔ Number between: 0 and: 10.
With ☞, you declare a new variable. On line 1, you see a single message length. On line 2, we send the binary message + 7 to 3. You can group pieces of code with { ... }, then it becomes a task. You can repeat tasks (×) or only execute them under certain conditions:
(x ≥ y) yes: { ✎ write: ‘buy!’. }. { :i ✎ write: i. } × 3. { x add: 1. } whilst: { ↲ x < 9. }.
A task can have parameters (:i is, for example, the iteration: 1,2,3). To use a variable in a text, you send a message with the text to be replaced and that variable:
‘Hello visitor!’ visitor: ‘John’.
To create your own object, you send new to Object. But you can also base your own objects on other objects. You can add new tasks to any object with: on:do:.
Number on: ‘double’ do: { ↲ ⛏ × 2. }. ✎ write: 3 double.
⛏ represents the object itself. To declare a property of an object, you use: ⚿. These properties can only be accessed from a task belonging to the object itself or belonging to a derived object.
☞ cat ≔ Object new. cat on: ‘name:’ do: { :me ⚿ name ≔ me. }.
Apart from a few details, that's basically all there is to
it! Now you know Citrine!
For more examples, open the learn-by-example manual, which is available
for all languages supported by Citrine!
* Translated manual available
EXAMPLES (ALL LANGUAGES)
Citrine is a localized scripting language.
For some languages, we have to rely on machine translations
because we haven't found translators yet.
We appreciate any help!
All natural languages are welcome**, even if they are not very common (EGIDS-status 6).
** Artificial languages, fantasy languages, private languages and other
non-natural languages will not be included but you are free to fork the project of course.
Improve Translations
Also, check the technical FAQ for advanced users
(this page is currently available only in English).
Want to learn more about Citrine? In our online shop you can buy the official
Citrine book. This extensive manual covers all the core concepts as well as
advanced Citrine programming techniques. The Citrine book is currently available
in English and Dutch.
Export your own Citrine creations using our online build server to
Android, iOS, Windows, Linux, SteamOS, the web and more!