Ceylon

Ceylon 1.3.2 is now available

Ceylon 1.3.2 is a significant minor release of the Ceylon language, with over 100 issues closed. This release introduces Ceylon assemblies, allows you toexport Ceylon modules as Maven repositories, makes it even easier than before to have a mixed Java and Ceylon project in Maven, allows string interpolation in assertions, and introduces lazy initialization for attributes.

This release of Ceylon has been tested with a wide variety of Java libraries and frameworks, including:

Example code demonstrating the use of these frameworks is available.

Changes

Enhancements to the language and command-line distribution include:

  • Assemblies (.cas archives)
  • Generate Maven repository
  • Support for mixed Java and Ceylon module projects in Maven
  • String interpolation in assert messages
  • Lazy initialization for attributes marked late

The most notable issues representing those changes are:

  • #6712, #6927, #6929 assembly support — ceylon assemble and .cas archives
  • #6856, #6847 ceylon maven-export to assemble a Maven repo from list of Ceylon modules
  • #6872, #6853, #6875 syntax for specifying maven group/artifact ids and npm module names
  • #3692 string interpolation in assertion failure messages
  • #3544 attribute lazy initialization
  • #6721 allow late attributes in declaration section
  • #6804 much better return type for Iterable.sequence()
  • #6797 named constructors to create Java arrays with streams of elements
  • #6784, #6778 static methods for Integer, Float, and String
  • #2324 add annotations to java.lang for Java modifiers
  • #6735 add --exclude-module option to ceylon copy

Naturally, the release incorporates many more bugfixes and minor enhancements.

IDE Changes

Ceylon IDE 1.3.2 for IntelliJ and Eclipse resolves more than 60 issues, and adds several new features, including support for running as a fat-jar and an improved formatter in IntelliJ.

SDK Changes

Exactly 6 issues affecting the Ceylon SDK have been fixed. New 1.3.2 releases of the platform modules are available in Herd.

Migration

  • For the JVM, this release is backwards-compatible with all previous releases of Ceylon since 1.2.0.

  • For JavaScript, this release is backwards-compatible only with the previous two releases (1.2.2 and 1.3.0).

Ceylon 1.3.2 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.2 of any Ceylon platform module is recommended.

About Ceylon

Ceylon is a modern, modular, statically typed programming language for the Java and JavaScript virtual machines. The language features a flexible and very readable syntax, a unique and uncommonly elegant static type system, a powerful module architecture, and excellent tooling, including an awesome IDE supporting both IntelliJ IDEA and the Eclipse platform.

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 command line toolset including compilers for Java and JavaScript, a documentation compiler, a test runner, a WAR archive packager, a “fat” JAR packager, and support for executing modular programs on the JVM and Node.js,
  • 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.

Available separately:

Language

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 null of 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,
  • fully-reified generic types, on both the JVM and JavaScript virtual machines, and a unique typesafe metamodel.

More information about these language features may be found in the feature list and quick introduction.

Community

The Ceylon community site, https://ceylon-lang.org, includes documentation, and information about getting involved.

You can follow @ceylonlang on Twitter.

Source code

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.

Issues

Bugs and suggestions may be reported in GitHub’s issue tracker.

Reference: Ceylon 1.3.2 is now available from our JCG partner Gavin King at the Ceylon Team blog blog.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Amit Parmar
4 years ago

Thanks for explaining the things. There are many-things which clears my doubt .

Back to top button