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."
0 comments:
Post a Comment