Ceylon 1.3.0 is a major release of the Ceylon language, with over 330 issues closed. This is the first release of Ceylon which supports Android development, the Node Package Manager (npm), and Wildfly Swarm.
For the JVM, this release is backwards-compatible with all releases of Ceylon 1.2 (1.2.0 to 1.2.2).
Ceylon IDE 1.3.0 is now available for the two leading Java development environments:
- for the very first time, as a plugin for IntelliJ IDEA and Android Studio, alongside
- existing support for the Eclipse platform.
Ceylon IDE for IntelliJ was designed for high performance in large projects with many Java dependencies, and is currently the best-performing IDE for Ceylon.
Enhancements to the language and command-line distribution include:
- support for developing Android applications
- support for importing modules from npm and for publishing Ceylon modules to npm
- support for developing microservices with WildFly Swarm
- cross-platform services, abstracting the Java service loader
- addition of the
fat-jartool for packaging a Ceylon program and its dependencies into a single assembly
- much slimmer runtime
- destructuring for parameters of anonymous functions
- destructuring in
cases of a
- addition of the
- addition of
- many minor improvements to interoperation with Java
- experimental support for Java APT processors
- improved behavior for
istests with generic Java types
for things annotated
- full support for Java 8
- reduced typechecker memory footprint
Naturally, the release incorporates many more bugfixes, minor enhancements, and performance improvements.
Support for Docker
Docker images for Ceylon are now available, making it very easy to run Ceylon programs in a Docker container.
Ceylon IDE for IntelliJ is a brand-new development tool for IntelliJ IDEA and Android Studio, featuring incremental error reporting, code completion, basic refactoring, many intention actions, sophisticated navigation, searching, type hierarchy and file structure, online documentation, full integration with Ceylon Herd and much, much more.
Almost 60 issues were fixed in Ceylon IDE for Eclipse, and code completion was redesigned around a non-blocking approach which is much more responsive in large projects. In addition, improvements to the typechecker have resulted in significantly lower memory usage.
Exactly 40 issues affecting the Ceylon SDK have been fixed.
Migration from Ceylon 1.2.2
Ceylon 1.3.0 is backward-compatible with Ceylon 1.2.2, and so it's not necessary to recompile or change dependencies. However, upgrading to version 1.3.0 of any Ceylon platform module is recommended.
Ceylon enables the development of cross-platform modules that execute portably in both virtual machine environments. Alternatively, a Ceylon module may target one or the other platform, in which case it may interoperate with native code written for that platform.
In the box
This release includes:
- a complete language specification that defines the syntax and semantics of Ceylon in language accessible to the professional developer,
- a powerful module architecture for code organization, dependency management, and module isolation at runtime, which also supports interoperation with OSGi, Jigsaw, Maven, and npm, and
- the language module, our minimal, cross-platform, foundation-level API.
- updated versions of the platform modules that comprise the Ceylon SDK,
- a code formatter as a plugin for the
- a plugin for the
ceyloncommand that supports compilation and execution for the Dart VM, and
- two full-featured integrated development environments: for Eclipse and IntelliJ IDEA.
Ceylon is a highly understandable object-oriented language with static typing. The language features:
- an emphasis upon readability and a strong bias toward omission or elimination of potentially-harmful or potentially-ambiguous constructs and toward highly disciplined use of static types,
- an extremely powerful and uncommonly elegant type system
combining subtype and parametric polymorphism with:
- first-class union and intersection types,
- both declaration-site and use-site variance, and
- the use of principal types for local type inference and flow-sensitive typing,
- a unique treatment of function and tuple types,
enabling powerful abstractions, along with the most
elegant approach to
nullof any modern language,
- first-class constructs for defining modules and dependencies between modules,
- a very flexible syntax including comprehensions and support for expressing tree-like structures,
The source code for Ceylon, its specification, and its website, is freely available from GitHub.
Information about Ceylon's open source licenses is available here.
Bugs and suggestions may be reported in GitHub's issue tracker.
As always, we're deeply grateful to the community volunteers who contributed a substantial part of the current Ceylon codebase, working in their own spare time. The following people have contributed to Ceylon:
Gavin King, Stéphane Épardaud, Tako Schotanus, Tom Bentley, David Festal, Enrique Zamudio, Bastien Jansen, Emmanuel Bernard, Aleš Justin, Tomáš Hradec, James Cobb, Ross Tate, Max Rydahl Andersen, Mladen Turk, Lucas Werkmeister, Roland Tepp, Diego Coronel, Matej Lazar, John Vasileff, Toby Crawley, Julien Viet, Loic Rouchon, Stephane Gallès, Ivo Kasiuk, Corbin Uselton, Paco Soberón, Michael Musgrove, Daniel Rochetti, Henning Burdack, Luke deGruchy, Rohit Mohan, Griffin DeJohn, Casey Dahlin, Gilles Duboscq, Tomasz Krakowiak, Alexander Altman, Alexander Zolotko, Alex Szczuczko, Andrés G. Aragoneses, Anh Nhan Nguyen, Brice Dutheil, Carlos Augusto Mar, Charles Gould, Chris Gregory, klinger, Martin Voelkle, Mr. Arkansas, Paŭlo Ebermann, Vorlent, Akber Choudhry, Renato Athaydes, Flavio Oliveri, Michael Brackx, Brent Douglas, Lukas Eder, Markus Rydh, Julien Ponge, Pete Muir, Nicolas Leroux, Brett Cannon, Geoffrey De Smet, Guillaume Lours, Gunnar Morling, Jeff Parsons, Jesse Sightler, Oleg Kulikov, Raimund Klein, Sergej Koščejev, Chris Marshall, Simon Thum, Maia Kozheva, Shelby, Aslak Knutsen, Fabien Meurisse, Sjur Bakka, Xavier Coulon, Ari Kast, Dan Allen, Deniz Türkoglu, F. Meurisse, Jean-Charles Roger, Johannes Lehmann, allentc, Nikolay Tsankov, Chris Horne, Gabriel Mirea, Georg Ragaller, Harald Wellmann, Oliver Gondža, Stephen Crawley, Byron Clark, Francisco Reverbel, Jonas Berlin, Luke Hutchison, Nikita Ostroumov, Santiago Rodriguez, Sean Flanigan.