What’s in Scala 2.12

In a roadmap published in Scala’s website last June 30, 2014, stated their plan for the new Scala version – Scala 2.12.

While Scala 2.10 and Scala 2.11 use previous versions of Java, the distribution for Scala 2.12 will be entirely built and will require Java 8. Therefore, in preparation for the Scala 2.12, the next releases of Scala 2.11.x, “Java 8-style closure compilation: Miguel’s new back-end & optimizer” will be introduced as experimental features. The Scala team is also planning to have an easy cross-building between 2.11 and 2.12 using full backward source compatibility. Version 2.11 and 2.12 compiler and standard library code bases will be aligned closely to achieve a smooth transition to Java 8.

The roadmap also listed the following shared features of Scala 2.11 (under a flag) and 2.12:

  • Java 8 interop (bidirectional)
  • Miguel’s new back-end & optimizer
  • Style checker
  • Collections enhancement
  • Improvement on documentation
  • Continuous improvements on infrastructure such as sbt build, pull request validation & release automation, bug tracker cleanup and automation.

On the fourth quarter of 2014, infrastructure development for 2.12 will start and the development for transition will be on 2015. Below is the schedule which they follow:

2.10.0             |             04/01/2013             |             First 2.10.x release

2.11.0             |             16/04/2014             |             First 2.11.x release

2.11.1             |             19/05/2014

2.11.2             |             21/07/2014

2.11.3             |              29/09/2014

2.10.5              |          Q4 2014                   |             Last 2.10.x release

2.12.0-M1        |           24/11/2014

2.11.4             |           Dec 2014

2.12.0-M{2,3,4} |           Q{1,2,3} 2015          |              quarterly 2.12.0-Mx releases

2.12.0-M5        |             Oct 2015

2.12.0-RC1        |          Nov 2015                |                (1 year after M1)

2.12.0                |            Jan 2016

The new features exclusive for Scala 2.12 that will be developed on 2015 are as follows:

  • FunctionN will be turned into Functional Interfaces wherein higher-order methods in Scala can be called without a wrapper using Java 8 code
  • Support for @interface traits
  • Possibility of integrating Streams into Scala collections
  • JDK’s forkjoin library will be used instead of embedding your own
  • Enhanced lazy val initialization – SIP-20

These features are binary incompatible thus cannot be backported to 2.11.

Visualize.js: Framework for Embedded Analytics and Reports

Jaspersoft, a new acquisition of TIBCO Software, is an open source software vendor that concentrates in providing products used for Business Intelligence (BI).

TIBCO Software recently released Jaspersoft’s newest product – Jaspersoft 5.6. It includes a new Javascript framework that offers built-in analytics and reports called Visualize.js.

The Jaspersoft group came up with Visualize.js because they envision that analytics “is becoming a core component and differentiator of applications and services” for application developers. There is now an increase growth in embedding analytic functionality, however, it is “too complex or too costly” to implement. Jaspersoft’s solution was to incorporate REST and iFrame approaches in this product. “REST gives you a lot of control, but it’s very code-intensive to embed. iFrame is simple, but essentially a dumb terminal window. We give you the best of both worlds. You get the control of REST with the simplicity of iFrames. With just a couple of lines of JavaScript, you can embed pretty much any part of our server.” Karl van den Vergh, Jaspersoft’s Senior Vice President said.

Visualize.js equips your applications with the following features:

  • Embed Analytics Anywhere – it has the ability of an analytic server with the control of JavaScript and is available as a cloud service.
  • Combine Big Data with Relational Data – Data from MongoDB, Hadoop or Cassandra can be combined with relational data using Visualize.js.
  • Powerful Analytic Functions – provides new built-in analytic calculations and functions.
  • New Data Visualizations – includes five new visualizations such as bubble, spider and dual level pie charts.
  • Boosted Report Interactivity – improved interactive report viewing and navigation on multi-page reports.

It also includes other features such as:

  • Faster Platform Performance
  • Offline Mode for Mobile Devices
  • New Metadata Administration
  • Enhanced OLAP Engine

Triumph Learning is one of the companies who used Visualize.js in their application. They built a web-based application called GET Waggle using a beta version of Visualize.js, the application simplifies tracking and measuring students’ progress and growth. With interactive visualizations, teachers and school administrators are delighted in using their application.