When comparing Ceylon vs Cor, the Slant community recommends Ceylon for most people. In the question“What are the best languages that compile to JavaScript? ” Ceylon is ranked 15th while Cor is ranked 42nd. The most important reason people chose Ceylon is:
It has a Web IDE: http://try.ceylon-lang.org/ with impressive demos: http://try.ceylon-lang.org/?gist=bd41b47f325b6d32514a so you can try it without installing anything, and see the JS generation / interop in action.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Try it out in the browser
It has a Web IDE: http://try.ceylon-lang.org/ with impressive demos: http://try.ceylon-lang.org/?gist=bd41b47f325b6d32514a so you can try it without installing anything, and see the JS generation / interop in action.
Pro Strong static typing, null safe and flexible, almost dynamic type system
The compiler prevents you from using a potentially null variable, unless you check it is not null. Ie. it forces you to check a potentially null value before using it.
The type system is strict, but flexible, allowing union and intersection of types, covariant and contravariant types, reified types, etc.
Type inference and union types allows a dynamic programming style, close of JS spirit.
Pro Designed from the start to generate JavaScript
It brings type safety to JS, allowing to define interfaces to existing JS APIs, yet using the dynamic
keyword for flexible calls in the JS ecosystem.
Pro Excellent IDE support
Ceylon has reified generics, so it doesn't loose the type of collections at runtime. This makes autocompletion, debugging, etc. first-class. The Eclipse plugin makes it a full-fledged Ceylon IDE, and an IntelliJ IDEA plugin is in the works.
Pro Great tutorial
Gavin King, main author of the language, has a great, clear technical writing style, making understandable difficult concepts like variance or sound type system.
Pro Excellent documentation
The language specification is very complete and up to date; also, the language module is very well documented.
Pro Javascript interoperability
Ceylon has special language-level support for interoperation with dynamically typed languages like JavaScript, and its module system even interoperates with npm.
Pro Easy to learn even if you don't have prior programming experience
Ceylon is indeed fairly easy and readable. Of course those ones who know OOP and a bit of functional programming concepts will feel almost at home right from the start.
Pro Generate HTML
HTML generation is supported right in the SDK.
Pro Same code in backend and frontend
If you don't use platform-specific features, you can reuse the same code in your backend server (be it in Java or JavaScript) and in your client-side browser code, for example for storing data, validating input etc.
Pro Easy to debug
Cor supports source-maps, allowing you the easy debugging in major browsers. However a line of Cor source is compiled to the exact line number in JavaScript for accurated debugging when developing in platforms that doesn't supports source-maps such as servers.
Pro Clean syntax
Cor enables you to write large applications by providing a clean syntax, classes and a modular architecture to keep organized code, enforcing the writing of readable source code based on conventions.
Pro Cross platform
Cor compiles to plain JavaScript, so, to run it in Node.js or in the browser is piece of cake.
Pro Support coroutines
Cor support coroutines which can be chained, stopped, and synchronized, fitting very well into the web asynchronous world.
Pro Hot reload
Cor provides a smooth front-end development by furnishing a builtin hot-loader which resolves dependences and compiles source code on the fly, with just reloading the Web page. You will only need to use CLI tools to deliver a production-ready version of the app.
Pro Concurrent and parallel
Cor allows to synchronize coroutines by passing messages through channels, and supports the execution of many tasks in parallel, all of that by writing sequential code.
Cons
Con Lack of physical or electronic books
We should hope Red Hat or anyone interested would take the time and write one. That would strengthen the maturity of the language, but Ceylon is rapidly developing which can make the author's efforts futile because his or hers work will become obsolete soon.
The second hindrance is, of course, popularity of the language which can't give much to the pockets of the author (however, Dart's unpopularity at start didn't prevent it to have a lot of printed material, but that's Google's child, we know).
Con Currently has large runtime
Ceylon 1.2 needs a language runtime of 1.55 MiB, and the Collection library adds another 370 KiB. That's a lot for the Web...
Now, this has to be put in perspective: if you use Ceylon to make a web application, these files will be loaded once, then cached by the browser (that's not casual browsing).
Moreover, most servers compress such resource, and the numbers become respectively 234 KiB and 54 KiB, which is more reasonable...
Con Work in progress
Cor is still a very much young project (as of November 2015) with just one contributor, few stars on GitHub and virtually no learning resources outside the official documentation.
