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.
Latest version of the Akka toolkit, an implementation of Actor Model, comes with persistence enabling stateful actors to persist their internal state, together with support for Java 8 lambda expressions.
Version 2.0 of Slick, a Functional-Relational Mapping, FRM, library for Scala, (corresponding to an Object-Relational Mapper, ORM, for object-oriented languages), was recently released with a code generator for reverse-engineering a database schema and new driver architecture to allow support for non-SQL databases.
Ten years ago today, the first release of the Scala language was announced on the comp.lang.scala newsgroup. It's come a long way in ten years; what will the next ten years be like? InfoQ looks back.
Vaughn Vernon, author of Implementing Domain-Driven Design, recently talked about using Scala and the Actor Model implementation Akka together with Doman-Driven Design as a means to remove some of the architecture overhead typically found in event-driven or hexagonal architectures.