Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ceylon From Here to Infinity: The Big Picture and What's Coming


Published on

Ceylon is a new modern, elegant programming language for the JVM and JavaScript VM, designed for team work. But it's more than that, it is a full platform with modularity, an SDK, tools and IDEs.

We will present Ceylon the language, the platform, and its ecosystem. You will see everything from starting a new project in the IDE to publishing it on Herd, our module repository, including using the SDK. We will also discuss the ongoing Ceylon projects such as the build system, Vert.x integration or Cayla, the new web framework.

Finally we will discuss the plans for Ceylon 1.2 and further.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Ceylon From Here to Infinity: The Big Picture and What's Coming

  1. 1. Ceylon from here to infinity: the big picture and what's coming Stef Épardaud / Tom Bentley @UnFroMage Red Hat Ceylon Team
  2. 2. Of course we have a plan •Who's that? •What do they do? •Let's explain what it's about –The Ceylon ecosystem •Ceylon's future
  3. 3. Who? What?
  4. 4. N’importe qui, n’importe quoi •Stef and Tom work for Red Hat –Since Ceylon went public •Started the JVM compiler, Herd •Work on the SDK, tools, integration
  5. 5. Ceylon
  6. 6. Ceylon is •A language •Powerful, modern •Readable •Predictable •An ecosystem •A platform •With modularity •Tooling
  7. 7. The language
  8. 8. The language •Inspired by Java, C# •Type inference •More powerful typing •Flow-typing •Mixins •Lambdas •Comprehensions •Reified generics •Modules •Metamodel •Compiles to JVM, JSVM •Full interoperability with Java, JavaScript
  9. 9. The Ceylon IDE
  10. 10. The Ceylon IDE •Eclipse plugin started by David Festal (Serli) and Gavin King •Integrated with JDT •Compiles to JVM, JS •Quick-fixes, refactoring, wizards •Integrated with the module system •As production-ready as Java Plugin
  11. 11. Ceylon on IntelliJ •Project started by Bastien Jansen and Matija Mazi •Syntax colouring •Compilation •Navigation •Execution •Work in progress –Started working on it again
  12. 12. Demo
  13. 13. The SDK
  14. 14. ceylon.language thin •String, Boolean, Integer, Float, Character •Set, List, Map •Operators : Summable, Correspondence… •Callable, apply… •System information : runtime, language •Metamodel
  15. 15. SDK aside •ceylon.collection •ceylon.dbc* •ceylon.file* •ceylon.html •ceylon.interop* •* •ceylon.json •ceylon.locale •ceylon.logging •ceylon.math* •* •ceylon.process* •ceylon.promise* •ceylon.test •ceylon.time •ceylon.unicode*
  16. 16. CLI
  17. 17. The developer's best friend: the CLI •Inspired by git •One command: ceylon –Many sub-commands (compile, run…) –Plugins scripts: ceylon-build •Completion •Contextual help –Exported in man, html, docbook
  18. 18. Demo
  19. 19.
  20. 20. •Started by Loïc Rouchon •Lets you write your build in Ceylon •Inspired by Gradle
  21. 21. Demo
  22. 22. Herd
  23. 23. The module repository of tomorrow •As pretty and useable as GitHub •Web interface easy to use •REST API •Staging repositories •Works with teams •Integration with IDE, CLI, GitHub •Social aspect
  24. 24. Demo
  25. 25. Vert.x / Cayla
  26. 26. Vert.x / Cayla •Started by Julien Viet (now working for Red Hat on Vert.x and Ceylon) •Consists of: –ceylon.promise –io.vertx.ceylon.core •For Vert.x 2 and 3 –io.cayla.web
  27. 27. Demo
  28. 28. The future
  29. 29. The past, actually •1.0 released in November 2013 •1.1 released in October 2014 –Compilation twice as fast –Up to 5 times faster in the IDE –Many bug fixes –IDE way more polished and powerful –Few changes in the language –Much better Java interoperability
  30. 30. The future •1.2 early 2015 –Serialisation –Flow-typing in expressions •if, switch expressions •else blocks –let-expressions –Multiple constructors –Tuple destructuring –Lambda arg type inference •1.3 in 2015 –Sugar for enumerations –Assemblies –Multi-backend modules –Sync with Java 8 features –AST transformers –Linq-style comprehensions
  31. 31. Q & A