title | layout | tab | unique_id | author |
---|---|---|---|---|
Key Features |
default |
features |
keyfeaturespage |
Gavin King |
Ceylon is a language for writing large programs in teams.
Here's some of what's special about it.
Ceylon programs execute on Java and JavaScript virtual machines, and can easily interoperate with native code.
Code is organized into packages and modules, and compiled to module archives.The tooling supports a system of module repositories, with Ceylon Herd as its social focus point.
Ceylon has a full-featured Eclipse-based IDE and excellent command-line tools, with support for modularity baked right in.
The type system is especially clean, elegant, and powerful, featuring intersection and union types as basic building blocks, along with enumerated types and type aliases.
Programming with objects is a breeze. Everything is an object, even numeric values, even the null value, even a function or class. Handle collections with higher-order functions and comprehensions. Model difficult relationships with mixin inheritance.
Ceylon is more typesafe than other languages, but you write down fewer types: the
language features
local
type inference,
flow-sensitive typing, a typesafe null
value, and a typesafe switch
statement.
Generics that don't suck: Ceylon "fixes" generics with declaration-site covariance and contravariance, reified type arguments, and principal instantiation inheritance.

Annotations, a typesafe metamodel, and reified generics are the foundation of Ceylon's unique approach to typesafe runtime metaprogramming, which makes framework development a pleasure.
To learn more, start with the quick introduction.