Ceylon M1 - Newton lands

Red Hat’s JVM language Ceylon hits first milestone

Chris Mayer
ceylon

Release is ‘major step down the roadmap towards Ceylon 1.0′

Following November’s proper unveiling by Red Hat’s Gavin King of
their new JVM language, the minds behind Ceylon have released the
first part of their masterplan.

The first official release includes the Ceylon command
line compiler, documentation compiler, language module, and
runtime, and presents a 
major
step down the roadmap
 toward Ceylon 1.0 according to
King.

Ceylon has been designed to effectively cut the fat of Java and
create a ‘familiar and readable syntax’ that is meant to make any
developer feel at home, making it easy to pick up and use. Ceylon is
meant to be as all-encompassing as possible as modules can be
executed on any virtual machine (although favouring the JVM),
aiming to eliminate bottlenecks, complex modularity and cumbersome
 

The language has faced fierce
criticism
 however as some don’t see its place within the
JVM with Scala already there. Some have even called it ‘a Java
killer’ rather than the next generation of Java as King had
intended. At to that the fact that since Ceylon was announced, many
competitors have emerged jostling for a similar space
 Kotlin, Go, Dart, Rust for example…

It’s been tough for King to persuade some of
Ceylon’s benefits
but the first release, Newton could change
your mind. King states that this first official
release ’has essentially all the features of Java except
enumerated types, user-defined annotations, and reflection.’ But
even with this close tie to Java, Newton says it does the following
better :

  • JVM-level primitive types are ordinary classes in Ceylon
  • type inference and type argument inference based on analysis of
    principal types
  • streamlined class definitions via elimination of getters,
    setters, and constructors
  • optional parameters with default values
  • named arguments and the “object builder” syntax
  • intersection types, union types, and the bottom type
  • static typing of the null value and
    empty sequences
  • declaration-site covariance and contravariance instead of
    wildcard types
  • more elegant syntax for type constraints
  • top-level function and value declarations instead
    of static members
  • nested functions
  • richer set of operators
  • more elegant syntax for annotations
  • immutability by default

Support for the
following language features is not yet available, just yet:

  • first-class and higher-order functions
  • comprehensions
  • algebraic types, enumerated types,
    and switch/case
  • mixin inheritance
  • member class refinement
  • reified generics
  • user-defined annotations and the type safe metamodel

In terms of the SDK, currently the
only module available is the language
module 
ceylon.language,

Several issues aimed to be resolved in the next release with
Java interoperability problems being a top priority fix. This
release of Ceylon includes support for local module
repositories. 
Support for remote repositories and the
shared community
repository modules.ceylon-lang.org will be
available in the next
release
. We can also expect an Eclipse-based IDE in the second
milestone, where users may make use of Ceylon’s static type system
to their heart’s content

You can find the code at Github whilst Ceylon’s site
does an excellent job with all the
documentation
you need to find out more.

Author
Comments
comments powered by Disqus