Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News New Releases: Ceylon 1.2, Node.js 5.0 and Atom 1.1

New Releases: Ceylon 1.2, Node.js 5.0 and Atom 1.1

This item in japanese

Ceylon, Node.js and Atom have all seen stable upgrades this week, and we have decided to write a common post covering most notable features and enhancements that come with these new versions.

Ceylon 1.2

Released a year after Ceylon 1.1, version 1.2 comes with:

  • Named constructors – they do not rely on overloading and have names (other than the class’s name) starting with a lowercase letter. Named constructors are declared with the keyword new.
  • Serialization
  • Native annotations
  • Better flow-sensitive typing
  • let, switch, if expressions
  • Inline object expressions
  • Destructuring for tuples and entries
  • Directly importing the members of a singleton
  • etc.

Ceylon 1.2 has new APIs: immutable maps and sets, Collection.permutations(), formatFloat(), and others. The Java compiler was improved providing better interoperability with Maven and Java annotations, basic support for interoperability with Scala libraries, and compiled classes are serializable. The JavaScript compiler supports type functions. The debugger has been rewritten and modules can be packaged as Java EE WAR archives. There are many enhancements of the IDE and the online IDE has been redesigned. For a full list of what new and enhanced in Ceylon 1.2, we recommend reading Gavin King’s announcement.

Node.js 5.0

After many years marked by small releases (0.x.y), Node.js has picked up the pace this year both in number of source code commits and version numbering, a new major version coming every month or a few months. Node.js 5.0 is an intermediary version that will be replaced by v. 6.0 in April 2016 which will become a LTS (long term supported) release. Users that need stability are recommended to stay with version 4.x.

Node.js 5.0 are for those wanting to experiment with the latest enhancements, but they are to expect quite a few breaking changes. Also, because of using a new version of V8, all native add-ons need to be recompiled. This post mentions the complete list of changes.

Atom 1.1

This release is the first version coming out of the beta channel recently announced. The Atom team decided to introduce two new channels besides the master one, called beta and stable to deal with code regressions. Using only one code base and generating a release directly from it implied a simple model and less overhead, but it was quite problematic when issues were discovered with the code released to the public. When they had to roll back some of the changes and generate a new minor release which fixed the problem, this time the code might contain new untested features added between the initial release and the rollback. Introducing separate channels and releasing out of beta solves this problem.

Atom 1.1 introduces a new approach to font measurement still based on the DOM but in a more controlled way. This was needed because font measurement used to slow down the IDE. The performance was also improved by minimizing the GC pauses. This is possible by reusing a poll of DOM elements when new content has to rendered, instead of always creating new nodes. Other improvements in Atom 1.1 are: the fuzzy search yields better results, the Markdown preview now uses the installed theme, plus several fixes. The announcement lists all the enhancements coming with the latest version of Atom.

Rate this Article