Created by Gavin King for Red Hat, Ceylon is an object-oriented, strongly statically typed programming language. Programs built with Ceylon run on the Java virtual machine and can be compiled to JavaScript.
Currently maintained by the Eclipse Foundation, Ceylon is available largely through the Apache License. All parts of the language are available under open-source licenses, although part of its source code is licensed under a GNU Lesser General Public License.
Ceylon is a language designed for writing large programs in teams. Ceylon programs can execute in Java and JavaScript virtual machines, and can readily interoperate with native code, taking advantage of the large library ecosystems of these platforms.
The language is packaged with a modular software development kit (SDK) that includes cross-platform APIs for most common programming tasks, as well as a full-featured Eclipse-based integrated development environment (IDE), command-line tools, and support for modularity built-in.
Modularity is built into the language. Ceylon code is organized into packages and modules and compiled to module archives. Its tooling supports a system of module repositories, Ceylon Herd being the central point. Ceylon's type system is designed to be clean, elegant, and powerful, using intersection and union types as basic building blocks, along with enumerated types and type aliases.
As an object-oriented programming language, everything is an object, even numeric values, the null value, a function, and a class. Collections can be handled with higher-order functions and comprehensions, a well as a smooth streams API.
Ceylon is more typesafe than most other languages, although fewer types need to be written, as the language features local type inference, flow-sensitive typing, a typesafe null value, and a typesafe switch statement.
Support for generic programming and metaprogramming is also a feature of Ceylon. Annotations, a typesafe metamodel, and reified generics are the foundation of the language's approach to typesafe runtime metaprogramming.
The development of Ceylon was influenced by Java, Lisp, ML, Scala, and Smalltalk.
The focal point of this category is on the Ceylon programming language. Websites whose chief topic is focused on the language itself, any implementations, editors, IDEs, or other tools designed to facilitate programming in Ceylon are appropriate for this category, as are Ceylon user groups, forums, tutorials, guides, reviews, and informational sites.
 
 
Recommended Resources
Made for writing large programs in teams, Ceylon is an open-source programming language under development as a community project. Eclipse Ceylon is a whole programming platform with a modern SDK and an IDE. The key features of the language and IDE are put forth, along with download links, documentation and references, an informational blog, and licensure information. Support features include an interactive user forum, calendar of events, and contacts.
https://www.ceylon-lang.org/
IBM Developer: Ceylon: True Advance, or Just Another Language?
Published on June 21, 2011, M. Tim Jones discusses the Ceylon programming language, for the purpose of assessing whether it’s just another unnecessary language or whether it truly represents an advance in programming. He discusses its origins and features, and presents some simple coding examples, in types, class, higher-order functions, type narrowing, and other control functions, then theorizes on the future of the language, particularly those that might make it important.
https://www.ibm.com/developerworks/library/l-ceylon/
Renato Athaydes offers a two-part tutorial on learning to program in Ceylon. In the introduction, he discusses programming in general and mentions the advantages of choosing Ceylon as a language to learn. A brief history of programming languages is followed by an overview of the Ceylon language, the installation of the IDE, creating a Ceylon module, and coding the traditional “Hello, World!” program. From there, he moves on to the more technical details of syntax, type, values, and so on.
https://renatoathaydes.github.io/Learn-Programming-In-Ceylon-Part-1/
The Ceylon Language: Say More, More Clearly
Hosted by Massachusetts Institute of Technology (MIT), Gavin King offers an introduction and tutorial for version 1.3.3 of the Ceylon programming language. Featured is an introduction and language overview, including its type system, object-oriented programming, language module, lexical structure, type system, declarations, statements, blocks and control structures, expressions, annotations, execution, and its module system, including sample code and source.
http://web.mit.edu/ceylon_v1.3.3/ceylon-1.3.3/doc/en/spec/html_single/