Skip to content

Instantly share code, notes, and snippets.

@SethTisue
Last active November 21, 2015 15:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SethTisue/5b18c1e3abf0666259b4 to your computer and use it in GitHub Desktop.
Save SethTisue/5b18c1e3abf0666259b4 to your computer and use it in GitHub Desktop.
Scalawags #35

Scalawags #35: What’s in a Standard, Anyway?

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

Your hosts: Josh Suereth, Dick Wall, Seth Tisue

Join us during and between episodes for web-based Scalawags chat on Gitter.

Intro (0:00)

  • steel yourself for 8 unbroken minutes of Seth's face
    • may we suggest the audio version?

News (1:10)

  • Scala Days 2016 is announced:
  • Josh will reunite with the ancestral Suereths of Germany (and tell them raccoon stories)

What should the standard library be? (4:15)

  • Dick: what if SLIPs were all about developer collaboration?
  • Josh: it's about defaults and about the beginner experience. languages are judged by this
  • how'd this start? Matthew de Detrich submitted a SLIP on JSON ASTs
  • much of the ensuing discussion (300+ comments) wasn't so much about JSON in particular, but about whether this was a proper subject for a SLIP at all

Everybody gets a JSON library! (10:30)

  • I want to use JSON in Scala, what do I do?
    • there's an old, bad parser in a standard module that people still use because it's there
    • and there's at least a half dozen competing parsers and they all use their own, non-interoperable ASTs
    • some projects (e.g. Jawn) attempt to support multiple AST implementations, but this is cumbersome to maintain
  • Dick: in my training classes, #1 question about libraries is what JSON library to use. and I don't know what advice to give them
  • is there a writeup of the pros and cons? there's Manuel Bernhardt's:
  • Dick: choosing a database library isn't much easier
  • Seth: testing libraries in Scala are a community success story, actors are a community success story, there are other success stories. JSON in Scala is a failure story.
  • Josh: the perfect is the enemy of the good. there are tradeoffs. picking a standard with decent choices won't eliminate competitors that want perfection on some axis. but that's fine.

What's wrong with defaults? (20:30)

  • Seth fails to grasp why the idea of providing a default choice provokes so much opposition. Josh and Dick attempt to enlighten him
  • meanwhile in Haskell-land they're talking about this Oleg article on "freer monads", check it out:
  • Josh wants two standard libraries: the regular impure one, and an alternate for purely functional programming. and separate areas for strict vs lazy
  • Dick tells the story of Play and Specs; was it bad for the Play project to pick a default test framework?
  • Seth reminds himself that we're still living with negative consequences of past decisions, so it's understandable for "we know better now" to be met with skepticism

Evolution and migration (31:00)

  • Josh: other languages have good module systems and discoverability of modules (CPAN, Hackage). Java (and Scala) have Maven. meanwhile Oracle is still working on the long-promised Java module system. the platform makes it hard.
  • Seth: we should (perversely) be thankful Scala breaks binary compatibility frequently; it culls legacy libraries from the ecosystem
  • Python 3000, success story or disaster?
    • a lot of people are still sticking with Python 2
    • import future, yay
    • Thomas Bild points out: shouldn't migration be easier in a statically typed language?
  • we (still) need automatic tools for rewriting Scala code
  • Josh: "you need to spend more time on migration tools than on the feature". 3x-4x more
  • don't tread on Erik Osheim

Wish list (39:55)

  • what, in one sentence, do we want?
    • Seth: a smaller standard library, a larger set of standard modules
    • Dick: a trusted source where people can go to find high quality libraries, with reviews and information. and think of newcomers, and be nice.
    • Josh: ...
  • and it's a cliffhanger: Josh's internet connection died
  • and now you get Dick's face until the end

Module discovery (42:35)

  • Seth agrees, libraries need to be easier to find and easier to add to your REPL or your project
  • Dick: in Ubuntu there are "meta-packages" that bundle multiple dependencies. how about something like that for Scala? the EPFL metapackage, the Typelevel metapackage, etc
  • and then the hangout dies, putting a merciful end to this cursed episode

Josh
Seth
Dick

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment