Skip to content

Instantly share code, notes, and snippets.

@SethTisue
Last active August 29, 2015 14:07
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SethTisue/cfe80e8edcbf736f3489 to your computer and use it in GitHub Desktop.
Save SethTisue/cfe80e8edcbf736f3489 to your computer and use it in GitHub Desktop.
Scalawags #22: Heather Miller in a Pickle

Scalawags #22: Heather Miller in a Pickle

YouTube link: https://www.youtube.com/watch?v=uCpw9eBYbOw

don't just listen to the audio, you'll miss out on Heather talking with her hands: http://cl.ly/image/3Z2y2c0v1O2i/heather.png

Intro (0:00)

  • Daniel's sinister feline overlord has been taking podcasting lessons
  • our guest is Heather Miller
  • of Ph.D.-student-of-Martin's-at-EPFL fame
  • of research-intern-at-Databricks fame
  • of Scaladoc fame
  • of non-horrific-looking Scala websites fame
  • of pickling fame
  • of spores fame
  • of parallel data structures fame
  • and that's not even all, see http://people.epfl.ch/heather.miller
  • the Scala website blinks like it's 1995
  • but needs 8-bit dubstep

Spores (and pickling) (5:40)

  • it's all tied together (by having stupid names)
  • "no, Heather! don't tell Martin!"
  • spores: it's about sending closures over the wire
  • explicitly declaring what gets closed over and serialized
  • taming wild object graphs
  • Akka users need this
  • Spark users need it too
  • be careful! don't serialize Wikipedia
  • Daniel: couldn't we prune the object graph statically?
  • Josh hates C++ because it forces him to think
  • ordinary functions have an implicit conversion to spores
  • the spores paper: http://infoscience.epfl.ch/record/191239
  • by Miller, Haller, and Odersky
  • Josh's LOLcat Spark library gets smacked down for having zero stars. ouch!
  • Pedro Furlanetto and Seth ask: are spores ready for people to use?
  • Heather: current code isn't public, but will be by the first week of November
  • spores can have type constraints
  • Dick: what features of Scala are involved?
  • macros. scary ones? no, just black box

Macros (27:25)

  • Dick: what do you think of macros?
  • Heather: they're a double-edged sword, because of the reflection API
  • classpaths and classloaders: the horror, the horror
  • some macros only need read-only access to ASTs
  • too crazy! too powerful! restrain them!
  • what about Scala.meta?
  • Eugene Burmako sleeps on a giant pile of Scala-related domain names, like Smaug on his pile of gold

Pickling (and spores) (33:20)

  • serialization. it is the horrifying thing that must be done.
  • pickling does as much checking and work at compile-time as it can
  • the rest happens at runtime which is slow
  • most of the competition does everything at runtime
  • Josh: what about binary compatibility?
  • classes change. serialization libraries themselves change.
  • schemas. do we need schemas?
  • have it your way! you can define your own pickling format
  • Seth triggers a round of collective rambling about time and space
    • Dick proposes pickling be renamed TARDIS: Types And Relative Dimensions In Scala
    • too late, Eugene registered that years ago
  • Daniel: please, can we just keep our algebras closed, and not suffer?
  • Heather: the problem is, Java exists
  • kids serialize the darnedest things
  • multi-user MacPaint is the holy grail
  • Daniel digresses, Dick sub-digresses, Josh sub-sub-digresses
  • Heather claims expertise on movies of the 1980's and 1990's
  • a listener asks: how do spores and pickling interoperate?
  • Heather: we integrated them. it's not a problem.

Intermission: Heather's mom raids the fridge (1:02:00)

  • Willy Wonka invented serialization (but for chocolate)

Ropes and collections (1:04:40)

  • Heather added ropes to the Scala collections framework
  • but that was a long time ago and she doesn't seem too excited about it now
  • they're a tree-like data structure good for representing strings
  • Daniel: ropes are why you can open a 50GB file in vi
  • Josh runs out of beer, yet heroically continues podcasting for 21 full minutes afterwards
  • Josh: what do you think of the collections hierarchy?
  • Josh says "maintaining sbt is 100% easier" than maintaining the collections API, awing all who hear
  • we all vaguely hope typeclasses will help
  • pickling: can it save us from Shellshock?
  • Scala is too hard to make fun of, not like Go

Names (1:19:20)

  • Daniel already suggested calling spores "anthrax" instead
  • someone suggests "burrs"
  • no, spores are burr removers. burrs are the things that came along for the ride, that you didn't mean to serialize
  • Germans don't know the word "spore". or do they?
  • French people can't say "Heather". in France, Heather is EE-ZAIR.

Outro (1:27:25)

  • Heather insincerely thanks us for our expert marketing advice
  • plants in Florida are angry the monkeys took all the oxygen and sent chocolate to the floppy disks
  • the plug is pulled
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment