Gavin King, leader of the Ceylon project, has announced the availability of M6 release, which has also been tagged as Ceylon 1.0 Beta, the language been considered feature complete. This release includes complete language specification, a command-line toolset – compilers for JVM and JavaScript VMs, documentation compiler –, an SDK, and an Eclipse-based IDE.
Beside bug fixes, this release includes the following language enhancements:
- annotations and annotation constraints
- a typesafe metamodel
- "static" method and attribute references
try
with resources- support for strings, integers, and characters in
switch
- support for named Unicode characters in string and character literals
- the
**
scaling multiplication operator - nonempty variadic parameters
- a new improved syntax for calling concrete members of inherited interfaces
Some of the IDE’s enhancements are:
- support for launching Ceylon programs on the module runtime
- integration with Eclipse's built-in file and package refactorings
- inline "linked-mode" rename, and rename support for references in documentation strings
- improvements to autocompletion, including "linked-mode" argument completion
- improved integration for Eclipse's merge viewer
- integration with the command-line toolset's configuration file format
- new quick fixes and assists
The language and related tools have been in development for more than 3 years, and it is not clear when GA is due, but chances are to see it done in Q1 or Q2 of 2014. Work has started on Ceylon 1.0 but only 7% of a total of 167 open issues have been closed so far, according to the project’s roadmap. Beside fixes, the Ceylon team intends to add serialization, repository replicator, and a number of modules: ceylon.transaction
– support for distributed transaction processing-, ceylon.local
– support for localization, and ceylon.format
– number and date.time text formatting.
According to King, Ceylon was born out of the desire to have a language that relieves the frustration accumulated with Java, which was considered being over complex in certain aspects and late in being updated with new sought-after features: tight integration with XML, lack of language level modularity, lack of first-class or higher-order functions, or language mistakes that “annoy us every day”, such as getters/setters, array and primitive types, the “dangerous” synchronized keyword, verbose constructor syntax, etc. Ceylon attempts to solve those issues, and it was initially meant to target the JVM, but support for the JavaScript VM has been added along the way, so the code runs also in the browser and on Node.js. The Ceylon syntax resembles that of C, Java , and C#, the language itself being meant to be simple. But as with other recent languages, such as Google Go and Dart, its success depends entirely on its adoption rate.