Dotty, a platform aimed to develop new technology for Scala tooling as well as try out new concepts for future Scala versions, has reached bootstrap status. This means that its compiler is written in Dotty and can compile itself, thus providing a drop-in replacement for the original one. InfoQ has spoken with Dotty major contributor Dmitry Petrashko.
Bazel, the build system that Google open sourced six months ago, has reached the first beta milestone as planned, adding support for several languages and technologies.
Typesafe's Play team has released version 2.4 "Damiya" of their web framework. By embracing dependency injection, the refactoring towards better modularization that was started in 2.3 has continued in this release. Play 2.4 requires Java 8 and uses Lambdas and Default Methods in Play's Java-API.
Slick, Typesafe's database query and access library for Scala, now supports the Reactive Streams API in the just released version 3.0. This enables developers to query their databases asynchronously and non-blocking. InfoQ talked to Slich Tech-Lead Stefan Zeiger to learn more about the new features and what they've planned for the future.
At Craft Conference 2015, Adrian Trenaman discussed the evolution of the Gilt.com architecture from a monolithic Ruby on Rails application to a cloud-based microservice ‘lots of small applications’ platform utilising Scala, Docker and AWS. Trenaman shared both technical and organisational lessons learnt from the past eight years, as Gilt has grown from a startup to a $1B company.
The recently released Maven 3.3.1 adds support for core extensions to be added to a project through additional metadata as well as using alternatives to the eponymous pom.xml file for building. This has been used to create build scripts for JRuby that build upon Maven but use a JRuby script to represent dependencies and plugins.
InfoQ reviews the results of the recent Typesafe survey of Java developers, focusing on the adoption of Java 8, and talks to Typesafe co-founder Jonas Bonér about the impact on Scala adoption for Java developers.
In a recent article, Alex Payne, organizer of the Emerging Languages Camp, provides insight on how the language landscape has changed in the last five years and how it might change in future. InfoQ has talked with him.
A week after floating the idea of a community sponsored fork of Scala, Miles Sabin, principal engineer of the shapeless library and active member of Typelevel, announced a fork of the Scala compiler on the Typelevel blog. Three days later, Paul Phillips, a Typesafe co-founder who left the company in 2013, announced his own Scala compiler fork.
The Scala Team recently published a "Scala: Next Steps" article describing the future of the language, and detailing the features of the next three major Scala releases and main goals: to make the language and its libraries simpler to understand, more robust, and better performing.
CQRS and Event Sourcing provide a clear and concise way to build distributed applications that adhere to the reactive manifesto, Duncan DeVore claimed in a recent presentation sharing his experiences building a distributed application using Akka and Scala.
The Play 2.3 release increases modularization of the framework by separating parts from the framework. Also, the Play shell has been replaced by Activator, which includes a browser UI and project templates. InfoQ also talked to Play tech lead James Roper to learn more about the changes and futures plans.
Typesafe has recently announced the release of Scala 2.11 under the standard 3-clause BSD license. This is a major release which includes improvements in scalac, the REPL, packaging/modularization, macros, the Collections library, and various bug fixes. Scala 2.11 targets Java 6, with only limited, experimental support for Java 8. Scala 2.11 is not binary compatible with the 2.10 series.
Typesafe has announced the early preview of Akka Streams, an open source implementation of the Reactive Streams draft specification using an Actor-based implementation. Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure on the JVM. Back pressure in needed to make sure the data producer doesn't overwhelm the data consumer.