title | layout | tab | unique_id | author |
---|---|---|---|---|
Key Features |
default |
features |
keyfeaturespage |
Gavin King |
Ceylon is a language for writing large programs in teams.
It's elegant, extremely powerful, readable, and lots of fun.
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, and take advantage of the huge library ecosystems of those platforms.
Ceylon provides a brand-new modular SDK, with elegant, cross-platform APIs for all the most common programming tasks.
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 `ceylon` command is a real Swiss Army knife, with an open plugin architecture.
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, and an elegant streams API. 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.
Ceylon's reified generics even allow us to inspect runtime type arguments in the debugger.
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.