Functional Roundup for May 6, 2016

Functional Roundup for May 6, 2016

Scala 2.12.0-M4 documentation

Scala Standard Library 2.12.0-M4 documentation released

Something was turning heads in the Scala community this week, and it’s probably not what you’d initially expect. It wasn’t a fix to a major issue or a new code breakthrough; it’s the documentation for the Scala standard library for 2.12.0-M4.

Felix Mulder transformed the documentation into a layout that’s not only functional; it’s also easy on the eyes. The best feature of the documentation is the single Scaladoc-wide search that’s a game changer in terms of efficiency and ease of use.

According to Mulder, “The new search functionality allows you to not only look for so called “top-level entities” (class, trait, object and package) but members like methods and even val and vars. The new search is not at all taxing, on a big library like the collections - the results are shown almost instantaneously. Nevertheless, we’ve got a progress bar showing you something’s actually happening.”

Word on the street is that Mulder’s been working on the dottydoc as well, and it might be even more impressive.

Check out the combination of beauty and brains in the documentation here: Scala Standard Library 2.12.0-M4 documentation ___

Scala.js 0.6.9 released

Scala.js 0.6.9 released

On Saturday, April 30th, the release of Scala.js 0.6.9 was announced.

While the latest version primarily focuses on support of Scala 2.12.0-M4 and M5, it also contained a few enhancements and fixes.

The release features the following improvements:

  • #2009: No own class for anonymous Scala.js-defined JS classes
  • #2350: A read-only sbt setting isScalaJProject which is true if the current project is a Scala.js project

As well as the following bug fixes:

  • #2320: Objects extending js.GlobalScope should not allow @JSName (potentially breaking change if you have -Xfatal-warnings)
  • #2319: Objects extending js.GlobalScope inside objects are allowed but require @JSName annotation
  • #2314: Infinite loop in BigDecimal.isValidLong
  • #2333: The JUnit runner does not report failures as events, causing sbt test to erroneously succeed
  • #2345: Different hashCode in JS and JVM for case class with big Long
  • #2358: ProvidedJS requires OS dependent path separator

0.6.9 is binary compatible with previous releases in the 0.6.x series.

You can view more about the latest release here: Scala.js 0.6.9 released!


Programming in Scala

Programming in Scala, Third Edition published

The third edition of Programming in Scala by Martin Odersky, Bill Venners, and Lex Spoon was released this week. The book is considered the premier tutorial on the Scala language and the latest version brings it up to date with the following:

  • String interpolation
  • Features and concurrency, including new methods added in 2.12 and asynchronous testing with Futures in ScalaTest 3.0
  • Wildcard types
  • New recommendations for writing hashCode
  • The close integration of Scala 2.12 and Java 8, most significantly the new ability to use function literals to express instances of SAM types
  • The latest recommendations for Scala coding styel
  • Implicit classes
  • Creating your own AnyVals
  • The context bounds syntax for type classes

“The book is carefully crafted to help you learn. The first few chapters will give you enough of the basics that you can already start using Scala for simple tasks. The entire book is organized so that each new concept builds on concepts that came before–a series of steps that promises to help you master the Scala language and the important ideas about programming that Scala embodies.”

If you are at Scala Days NYC, Odersky and Venners will be signing copies of their book at the Artima booth on Tuesday, May 10th.

You can also purchase a copy from Artima or Amazon. ___

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:

Konrad Malawski: The things we don’t see - stories of Software, Scala and Akka Scalapeno - Tel Aviv 2016

Konrad Malawski describes the things that are not often seen explicitly or that aren’t noticable in daily work, yet make up a large part of the ecosystem, as well as the maturity of the ecosystem in its entirety. He also tackles the confusion that can exist surrounding using the same words for different things in software.

You can view the slides below:


Brendan McAdams:

  • Scala Macros for Mortals
  • Typelevel Summit Oslo

Brendan McAdams describes, “since their introduction in 2.10, Macros have veritably taken Scala by storm. They pop up everywhere, often providing elegant syntax extensions for Scala libraries; note the prevalence of “sql” string interpolation macros, for example.

Many developers, however, are scared and confused by Macros – rightly so. Many examples of Macros require deep knowledge of the Scala AST, internals and oddities. But hope exists: newer features like quasiquotes make it ridiculously easy to write powerful Macros with code templating.

In this talk, we’ll demystify just how Macros work and are constructed, walking through many of the different “types” of Macros that Scala supports. A final focus will be given to the use of the newer Quasiquotes and Annotations features as a way of quickly constructing powerful new code features in your own Scala code.””

View the slides here:


Upcoming Events:

Scala Days NYC May 9 - 11th New World Stages - New York, NY

Scala at the Sea May 10th WhitePages - Seattle, WA

Data by the Bay May 16 - 20th Galvanize - San Francisco, CA


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

blog comments powered by Disqus

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.