|
|||
Castletroy College, Limerick |
|||
|
|||
Patrick Collison | |||
|
|||
Croma is a new programming language
and aims to improve on existing technology in two mostly unrelated areas: web application development and Lisp programming.
Today, writing sophisticated web applications is notoriously complex, involving a myriad of frameworks and technologies. Over the past five to ten years, there has been an explosion of competing languages with web use as a primary (or at least major) goal. But none has been very successful; none has risen above the competition as a clear high-point � as C did with systems programming. We believe that this is mostly because none has addressed the true problem with web development: HTTP's stateless and transactional nature. Croma, a new dialect of Lisp written from scratch, targets this. Broadly, as a language, Croma aims for expressiveness and clarity of expression. In terms of features, it compares very favourably to other languages and even to other Lisp dialects, including full support for continuations (going beyond even Scheme's facilities), proper macros, excellent debugging support, and a relatively innovative new technique for generalised assignment, as well as full Unicode support (currently very rare in programming languages). Contemporary Lisps are mostly stagnant (in terms of development of the core languages themselves � implementations and community are far from it). The twin standardisation processes for Common Lisp and Scheme have arguably hampered innovation. Croma tries to address this with its advances, but also, less tangibly, by providing a framework for future development that isn't constrained by compatibility. Croma itself consists of a reasonably fast interpreter written in C, a custom VM, also in C, and a Croma compiler written in Croma itself. Most major Unices, including Solaris, Linux, *BSD and OS X are supported (Windows isn't). While Croma is general-purpose, it was, as stated, designed with web programming in mind. Using an integrated web-server and interesting continuation-based techniques, Croma allows web-applications to be intuitively and naturally modelled in functional style. Programmers can ignore HTTP's statelessness; low-level details are automatically handled. Web-applications written in Croma prove substantially shorter than in other languages, in terms of lines of code; a factor of 5 or more isn't uncommon. Savings of this magnitude lead to similar reductions in development time and project cost. The functional clarity of Croma programs, coupled with their brevity, make innovative new web-based applications possible, and their ongoing maintenance a more straightforward task. ![]() Photograph courtesy of The Irish Times
|
|||