starring an Englishman and three hicks from flyover country who don't know Latin
- Daniel mistakenly calls Dick "Bill"
- Josh is so excited about Scala 2.11 his tongue is stuck permanently out
Scala 2.11 announced (4:40)
- 40+ libraries available by the time of the announcement
- since the release was out before it was out
- the Scala team issued a lot of patches and fixes to 3rd-party open-source projects
- Daniel hit a 2.11 regression with type parameter bounds inference and variant polymorphic type constructors, in code involving Scalaz iteratees. or something like that
- 2.11 was the first Scala release that came out on a timetable
- what's ready in time gets in, if not, not
Scala 2.11 features and changes, part 1 (11:20)
- so long, octal literals!
- lots of deprecations
- Seth's 2.11 upgrades were super low drama
- spurious warnings, that's about it
- standard library modularized (scala-parser-combinators, scala-xml, scala-swing)
- modules can have their own version numbers, release timing
- community now free to fix or replace scala-xml
- Josh hasn't used XML in two whole days!
- 2.11 has an experimental "delambdafy" flag (by James Iry)
- fewer inner classes generated
- moves us towards Java 8 style lambdas based on method handles
Scala 2.11 features and changes, part 2 (22:35)
- features like delambdafy "sneak in" first as experimental
- Seth notes that classifying features as experimental doesn't necessarily stop people from using them
- library authors might start depending on them, e.g. macros, continuations plugin
- Josh: macro-writing API can change without macro-using API changing
- "experimental", "unsafe", "internal" ("beware of the leopard"?)
- Seth: are the modularized 2.11 libraries abandonware?
- evolution rate has nowhere to go but up
- Josh: perhaps maybe separating them will actually work. it really is easier now to improve them
- performance improvements to collections (Rex Kerr)
- macro quasiquotes make writing macros sane
- 2.10: compiler plugin
- 2.11: it's built in
- REPL is now usable as a scripting library (JSR-223)
- REPL has :save now (in addition to the old :load and :replay)
Scala 2.11 features and changes, part 3 (34:30)
- .NET backend is gone
- what happened there? reified types were a problem
- do we like reified types?
- Daniel doesn't: "Your runtime is deciding what your type system can support."
- Seth: "People who complain about type erasure should be careful what they wish for."
- does Scala have types at runtime or doesn't it?
- well, there's manifests and type tags and so forth
- do typeclass instances qualify too? discussion.
- what do people use reified types for, anyway?
- improved -Xlint. more "unused" warnings. other new warnings
Scala.JS revisited (47:30)
- Dick tries to teach Latin to the Americans
- Daniel retaliates by calling him "Bill" again
- thank you Erik Bruchez for sending us a batch of Scala.JS news
- Haoyi Li made http://www.scala-js-fiddle.com
- we didn't say so, but the tree-shaker is better now at removing unused code
- async & await work!
- a viewer asks, what happened to the proposed LLVM backend for Scala?
- Geoff Reedy isn't still working on it as far as we know
- no Akka in Scala.JS
- some people want to use the same language to write both server and client code. the Node.js people seem to like it
- Daniel says "Comet", betraying his advanced age. cool kids like Josh use WebSockets
Source code layout (1:02:20)
- Daniel can't figure out where things are in Unfiltered
- sbt is changing from tabs to spaces
- Daniel's approach to reviewing pull requests is to lead off with a barrage of nitpicking about formatting
- Josh thinks that might upset someone
- Dick has the equivalent of tabs for hair
Reactive Streams (1:09:10)
- read about it at http://www.reactive-streams.org
- is it like scalaz-stream? kind of
- it's Java compatible
- it's about bringing Akka, Reactor, and Rx.Java in alignment
- and maybe others too. there's a standard you can implement
- digression on running Scala on GPUs
- Josh on performance benchmarking of streams and iteratees
- Josh proposes a reactive streams vs scalaz streams smackdown
- if free monads are free, they must not be any good
Esoteric Ecosystem Enumerated (1:19:40)
- there's a sbt plugin for Go now
- Dick thinks Go is finding a niche as a "master of ceremonies", e.g. Docker and other configuration-y things
- Dick's lawyers seem to have advised him to say he loves Groovy
- anyone have ideas for Scala for the script bowl this year?
Scala Days 2014 (1:22:55)
- Scala Days is in Berlin, June 16–18. http://www.scaladays.org
- keynoters: Martin Odersky, Erik Meijer, Chad Fowler
- Chad taught Josh: Anything you care about needs to be measured, and make your metrics public.
- Does conducting project business in public encourage good behavior?