»

Changelog & News

Citrine Programming Language

Citrine Roadmap

These are ideas for future versions of Citrine. This roadmap is just here to give you some idea of what I intend to do in the future, it might change at any time.

Next version is: Citrine 0.9.5: Sorghvliet Edition.
For details, please consult the Citrine 0.9.5 Roadmap.
Expected Alpha Release: 1 October 2022.
Expected Beta Release: 1 November 2022.
Expected Final release: 5 January 2023.

Long-term Citrine Roadmap 2023 and beyond

The long-term Citrine Roadmap for 2023 and beyond is just an estimation. This long-term roadmap may change at any moment due to circumstances. This is just an indication of how I think the Citrine Project will evolve. Note that I personally will probably only develop the core language itself. I will (most likely) not create all possible plug-ins, compilers, embedded versions, bindings and/or transpilers myself, this has to be done by the community. Otherwise the project would be far too big for me. I only focus on the core programming language and I assist those who help me create the rest. So for instance, instead of creating bindings for every currently popular programming language (PHP, Java), I will simply build to tools to do so (ACET). Instead of wrapping every currently popular library myself, I will simply build a tool to make this process easier (EcoGEN). The same applies to all the other elements of a programming language ecosystem.

PeriodFeatures
2023
  • 1st Edition of Citrine Book
  • Test-o-Mat
  • PoC AST
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins
2024
  • Studio/C: Improved online demo
  • CeeWorldVM: Virtual Machine image of Citrine
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins
2025 - 2026
  • EcoGen: automatically create library wrappers
  • GlobeAPI: dictionary files with universal concepts (like: users, accounts etc)
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins
2027 - 2029
  • IGNS: Intergalactic number system (support for alternative number systems compile-time)
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins
2030 - 2035
  • ACET: Automatic Citrine Embed Tools to automatically embed Citrine in any language, like Python, PHP, Java, Haskell for power users
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins
2035 - 2045
  • Development of a Special Citrine Keyboard
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins
2045 - 2065
  • Further language development
  • Add support for more human languages and improve existing language support
  • Improve code quality, performance, portability, add tests
  • Add Plug-ins

Changelog

2022 Citrine 0.9.4 - Koekamp

2021 Citrine 0.9.3 - Solleveld

2020 Citrine 0.9.2 - Wapendal

2019 Citrine 0.9.0/1 - Van Leydenhof

2018 Citrine 0.7.5-0.8.4

2017 Citrine 0.6.1-0.7.4

2016 Citrine 0.4-0.6


History

Around 2009/2010 I started a project called PenelopePHP. The purpose of this project was to make PHP code more readable by adding wrapper objects. The project tried to turn PHP into a Smalltalk-like programming language. In 2012 I decided to make the project more generic, rewriting it as a classic interpreter in C. Because of the JavaScript hype, I did another rewrite to turn the system into a JavaScript transpiler. Those projects were called DinkyScript. In 2014/2015 I decided to plan a major rewrite of the system again in C using an AST-parser instead of a classic parser. In 2016 I released the first official version of Citrine.

Inspiration

The inspiration for the Citrine Programming Language comes from Smalltalk (message-based, pure object oriented programming), JavaScript (prototypal inheritance), and BASIC (dynamic scope). The name Citrine refers to the yellow coloured gem and honours the short lived tradition to name programming languages after shiny minerals like Pe(a)rl and Ruby.

 

Plug-ins

Want to help contribute to Citrine? The Citrine Programming Language can be easily extended using plug-ins. If you like, you can support the project by implementing one of the plug-ins on the wishlist:

  • Big Number Library [TODO]
  • FastCGI/WEB plug-in [TODO]
  • PostgreSQL/DATABASE plug-in [TODO]
  • MySQL/MariaDB/DATABASE plug-in [TODO]
  • SQLite/DATABASE plug-in [TODO]
  • Crypto plug-in [TODO]
  • E-Mail plug-in [TODO]
  • Math plug-in [TODO]
  • Support for alternative number systems [TODO]

PLEASE CONTACT ME before you begin, I might help you to get started in a better way.

The following plug-ins have been implemented already:

  • Demo plug-in [DONE]
  • SCGI/CGI/WEB plug-in [DONE]
  • JSON plug-in [DONE]

Other tasks to be done:

  • Windows Version [Work in progress...]
  • MacOS port maintenance
  • Performance improvements
 

News Archive

Older news items:

 

Back to homepage.