Functional Roundup for May 6, 2016
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” (
package) but members like methods and even
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
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
trueif the current project is a Scala.js project
As well as the following bug fixes:
- #2320: Objects extending
js.GlobalScopeshould not allow
@JSName(potentially breaking change if you have
- #2319: Objects extending
js.GlobalScopeinside objects are allowed but require
- #2314: Infinite loop in
- #2333: The JUnit runner does not report failures as events, causing
sbt testto erroneously succeed
- #2345: Different
hashCodein JS and JVM for case class with big
ProvidedJSrequires 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, 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.
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:
- 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:
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