Ceylon 1.3.1 is a significant minor release of the Ceylon language, with over 140 issues closed. This is the first release of Ceylon which supports interoperation with Java 8 lambdas and streams, with RxJava, and with Spring Boot. This release also introduces support for
This release of Ceylon has been tested with a wide variety of Java libraries and frameworks, including:
- Spring Boot,
- WildFly and WildFly Swarm,
- Hibernate (JPA),
- RESTEasy (JAXB and JAX-RS),
- Weld (CDI) and Guice,
- Eclipse Equinox, Apache Karaf, and Apache Felix (OSGi),
- JOGL (OpenGL), and
Example code demonstrating the use of these frameworks is available.
Compared to previous releases of Ceylon, the use of Java frameworks based on reflection is now much more transparent, and integration with multi-module Maven-based platforms and frameworks is now much easier to configure.
Enhancements to the language and command-line distribution include:
staticmembers in Ceylon classes
- interoperation with Java 8 lambdas—ability to pass Ceylon functions to Java SAM types
- support for spread operators
java.lang.Iterableand Java arrays
- literal tuples in
cases of a
- new Maven interop mode
--fully-export-maven-dependenciesfor projects depending on multi-module platforms like Spring Boot
- support for POM-only Maven artifacts
- new Java EE-friendly compiler mode, making it easy to use Java frameworks that depend on reflective direct access to fields
- ability to pass Ceylon metamodel to Java methods accepting
- ability to pass Ceylon strings to Java methods accepting
- improved treatment of
nullvalues originating in calls to native Java
- several bugfixes to relating to interop with overloaded Java methods
- new command line options:
Naturally, the release incorporates many more bugfixes and minor enhancements.
Exactly 15 issues affecting the Ceylon SDK have been fixed, and the new platform modules
ceylon.interop.persistencewere introduced. New 1.3.1 releases of the platform modules are available in Herd.
For the JVM, this release is backwards-compatible with all previous releases of Ceylon since 1.2.0.
Ceylon 1.3.1 is backward-compatible with Ceylon 1.3.0, and so it’s not necessary to recompile or change dependencies. However, upgrading to version 1.3.1 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 plugin for the
ceyloncommand that supports compilation and execution for the Dart VM,
- a plugin packager for WildFly Swarm,
- a plugin code formatter,
- two full-featured integrated development environments: for Eclipse and IntelliJ IDEA, and
- a plugin for Visual Studio Code.
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,
You can follow @ceylonlang on Twitter.
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.