Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

Latest commit

 

History

History
141 lines (129 loc) · 6.62 KB

features.md

File metadata and controls

141 lines (129 loc) · 6.62 KB
title layout tab unique_id author
Key Features
default
features
keyfeaturespage
Gavin King

Key features of Ceylon

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.

Cross-platform execution

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.

Platform libraries

Ceylon provides a brand-new modular SDK, with elegant, cross-platform APIs for all the most common programming tasks.

Modularity

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.

Tooling

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.

Powerful type system

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.

Object-oriented programming

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.

Type inference, flow-sensitive typing, and typesafe null

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.

Simplified generics with fully-reified types

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.

Typesafe metaprogramming

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.