47 Degrees joins forces with Xebia read more

Functional Roundup for July 29, 2016

Functional Roundup for July 29, 2016

Apache Spark 2.0 released

Apache Spark 2.0 Unleashed

We’ve been champing at the bit for Spark 2.0 ever since the update’s juicy details were revealed at Spark Summit this Summer and the wait is finally coming to an end. The first major release of the 2.x line was made public on July 26th.

Here are some of the highlighted changes and additions according to the release notes:

  • API Stability including unifying DataFrame and Dataset, a new streamline configuration API for Spark Session, and a simpler more performant accumulator API.

  • Improved SQL functionalities with SQL2003 support, a native SQL parser that supports both ANSI-SQL as well as HIVE QL.

  • Substantial (2-10x) performance speedups for common operators in SQL and DataFrames (via whole stage code generation).

  • Experimental release of Structured Streaming.

  • The default build is now using Scala 2.11 instead of 2.10.

The release also includes over 2500 patches from a whopping 300 contributors.

There are a few API breaking changes that you may want to check out before you proceed here: Removals, Behavior Changes and Deprecations

You can view the full list of changes here: Apache 2.0 Release Notes.

Scala.js 0.6.11

Scala.js 0.6.11 release

The latest release of Scala.js v. 0.6.11 is primarily focused on optimizations, including:

  • #2488 - Longs have been vastly approved with speedups up to 15x.
  • #2490 - The Google Closure Compiler used for fullOptJS has been upgraded improving speed of the production applications by up to 2x (but on average by 10-15%).
  • #2507 and #2533 - New JDK APIs java.util.Optional and java.util.EventObject.

And 29 bug fixes, including:

  • #2471 - The BufferedReader implementation does not close its underlying Reader.
  • #2474 - 2+ top-level exports with the same name cause trouble at run-time.
  • #2491 - Name clash in some cases after renaming by the Closure Compiler in fullOpt.
  • #2512 - java.util.Arrays.asList() cannot be called.
  • #2513 - @JSExport does not work for abstract vals and vars.
  • #2539 - java.util.ConcurrentHashMap.putIfAbsent() is wrong.
  • #2445 - Paren-free def’s with type-parameters are handled as a function in js.native traits.

This minor release is binary compatible with the prior 0.6.x series releases.

You can view the full list of changes here: Scala.js v. 0.6.11

Iteratee for Cats

Iteratee for Cats Version 0.6.0-M1

Travis Brown dropped a milestone release for iteratee for Cats this week.

M1 mainly focuses on version updates of Monix, Scala.js, and Cats. The following changes are also noted:

  • #98 provided Scoverage dependencies removed from the published POMs.
  • #100 - readBytesFromStream enumerator now exists (thanks to Romanlakovlev) which behaves the same as readLinesFromStream but returns byte arrays.
  • #101 -

Travis mentions that the final 0.6.0 release will likely come after the final Monix 2.0 version and perhaps, Cats 0.7.

You can view the announcement here: iteratee 0.6.0-M1 ___

Suggested information to digest this weekend:

The functional programming community has no shortage of excellent conferences and talks. Here are just a few that were recently released that we recommend checking out if you missed them the first time:

Alexander Prodkhalyuzin:

  • Mastering Scala with IntelliJ IDEA
  • Scala Days Berlin 2016

“Why do developers love IntelliJ IDEA? Because it takes care of all the routine and provides intelligent coding assistance. Once you master it, the productivity gains are quite surprising. In this session I’ll show you the 30 hidden gems of IntelliJ IDEA that will help you become a more productive Scala developer.”

Watch the talk here:


Dmitry Petrashko:

  • Dotty Linker: Precise Types Bring Performance
  • Scala Days Berlin 2016

Dmitry Petrashko speaks about, “common arguments for using more elaborate type systems include safety and documentation. But we will show how more expressive type systems can be used to drive novel powerful optimizations and make the program faster. Based on this principle, we built the Dotty Linker, a whole-program optimizer that represents a breakthrough in optimization of Scala code. We will demonstrate how the linker is capable of reducing the performance overhead of commonly-used Scala features such as generic methods and classes, lazy vals, implicit conversions and closures.”

Watch the talk here:


Jamie Allen:

  • The Future of Services
  • Webinar

Jaime Allen presents the Future of Services: “Building Asynchronous, Resilient and Elastic systems. The talk forcuses on “how to build elastic, resilient service-based applications that can handle tremendous amounts of data in real time, and to introduce the new Lightbend framework for Microservices-based applications called Lagom.”

Watch the talk here:


Upcoming Events:

Scala Up North

  • August 5th - 6th
  • Concordia University - Montreal, Quebec

PDXScala Monthly Meeting

  • August 16th
  • Dexcom - Portland, OR

Scala World

  • September 10-14th
  • The Rheged Centre - Cumbria, UK

Typelevel Unconference & Lambda World

  • September 30th - October 1st
  • Palacio de Congresos - Cádiz, Spain

Have a news tip for us? Tweet to us @47deg or send to us via email here.

Ensure the success of your project

47 Degrees can work with you to help manage the risks of technology evolution, develop a team of top-tier engaged developers, improve productivity, lower maintenance cost, increase hardware utilization, and improve product quality; all while using the best technologies.