Skip to content

Instantly share code, notes, and snippets.

@SethTisue SethTisue/

Last active Aug 29, 2015
What would you like to do?
Scalawags #15

Scalawags #15

starring an Englishman and three hicks from flyover country who don't know Latin

Intro (0:00)

  • 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
  • type your Scala code on the left, the server compiles it to JavaScript and it runs on the right
  • 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
  • Seth just wants (please, for the love of god) to write his JavaScript in something with a type system
  • 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
  • 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.
  • 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?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.