Channels ▼
RSS

Global Developer

JDK Language from Red Hat, Ceylon, Sails on to v. 1.0 Release


The first production release of the Ceylon language specification, compiler, and IDE has arrived this month. Originally created by Red Hat, Ceylon is a modular and statically typed programming language for the Java and JavaScript virtual machines.

Ceylon has a powerful static type system that prevents bugs while letting developers express: union types, intersection types, higher order functions, mixin inheritance, and enumerated types. The source code for Ceylon and its specification are available from GitHub.

The new version of Ceylon includes a complete formal language specification to define syntax and semantics, a command line toolset (including compilers for Java and JavaScript) a documentation compiler, and support for executing modular programs on the JVM and Node.js.

There is a module architecture here for code organization, dependency management, and module isolation at runtime — the language module; i.e., the minimal, cross-platform foundation of the Ceylon SDK, plus a full Eclipse-based integrated development environment.

Ceylon is marked out for its emphasis upon readability and strong bias toward omission or elimination of potentially-harmful constructs. It also claims to have a "unique" treatment of function and tuple types to enable abstractions.

According to Gavin King of the Ceylon project, the new version includes an "extremely powerful" type system combining subtype and parametric polymorphism with declaration-site variance, with first-classunion and intersection types, and using principal types for local type inference and flow-dependent typing, first-class constructs for defining modules and dependencies between modules, a very flexible syntax including comprehensions and support for expressing tree-like structures, and fully-reified generic types, on both the JVM and JavaScript virtual machines, and a unique typesafe metamodel.

Just prior to this launch King wrote, "Ceylon 1.1 will be all about performance, including language performance, compiler performance, and [David's] ongoing work on IDE build performance. A warning: We expect to break binary compatibility between 1.0 and 1.1. That's not something we do lightly, and it's not something we plan to make a habit of. Changes affecting binary compatibility should occur in major releases, not minor releases. Please forgive us if we break our own rule this one time."


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video