Scala World 2019
2019-09-11..2019-09-13
Lake District, United Kingdom
[Scala World 2015, Scala World 2017, Scala World 2019]
who it's for
Scala developers, functional programmers, compiler engineers, language designers, tooling engineers, library authors, formal methods researchers, machine learning for code researchers
topics
live coding with Sonic Pi; monoids and Cats combinators; Scala 3 type inference changes; fiber-based IO runtimes; session types via Dotty plugin; universal constructions in Scala; Bloop incremental compilation; AST autoencoders with Tree LSTMs; compile-time logic via implicits; PartialFunction API redesign; tapir endpoint descriptions and OpenAPI; DOT calculus and mechanized soundness
| title | author | length |
|---|---|---|
| Sonic Pi | Sam Aaron | 01h 00m |
Sonic Pi is a free, Ruby-based live‑coding environment that runs on macOS Windows and Raspberry Pi, used by over 500,000 users. Code sends timestamped messages… | ||
| Monoids, Monoids, Monoids | Luka Jacobowitz | 55m |
Argues that monoids underlie many Scala patterns and shows concrete code-level uses: integer addition, string concat, set union, Option and tuple monoids, Map… | ||
| Scala 3, Type Inference and You! | Guillaume Martres | 45m |
Scala 3 (Dotty) changes when type variables get instantiated: it delays instantiation when a type parameter appears invariant or contravariantly, chooses lower… | ||
| How do Fibers Work? A Peek Under the Hood | Fabio Labella | 01h 00m |
Explains an IO runtime implemented as a data type (pure, delay, flatMap) plus a single interpreter loop using an untyped call-stack of continuations, with… | ||
| Effpi: Verified Message-Passing Programs in Dotty | Alceste Scalas | 49m |
Effpi provides a Scala 3 DSL plus a Dotty compiler plugin that encodes behavioral (session-like) types as dependent types, checks program-to-protocol… | ||
| Live-coding with Universal Constructions | Bartosz Milewski | 59m |
Claim: universal constructions from category theory translate directly into runnable code, and diagrams yield concrete implementations. Live-coding translates… | ||
| Design Challenges of Bloop | Jorge Vicente Cantero | 47m |
Bloop is a background build server that compiles, tests, runs and provides diagnostics over BSP and a custom RPC, powering Metals and IDEs while integrating… | ||
| A Learning Story: Love, Scala & Artificial Intelligence | Zoë Weil | 39m |
Implements a denoising autoencoder that encodes Scala Meta ASTs into a latent vector using Tree LSTMs and decodes with stacked LSTMs, trained in a PyTorch… | ||
| Compile-time Logic Programming in Scala: what for? | Daniel Beskin | 49m |
Claim: Scala implicit resolution maps to Prolog-style logic so the compiler can perform compile-time Prolog via Scala implicits by encoding atoms as traits… | ||
| How to Totally Fix PartialFunction | Dale Wijnand | 49m |
Argument: PartialFunction breaks expectations by inheriting from Function1 and redefining apply, which weakens Liskov substitution and causes surprising… | ||
| Designing Programmer-Friendly APIs | Adam Warski | 01h 00m |
Library tapir models each HTTP endpoint as an immutable Scala value and separates its description from interpretation, so the same description generates both… | ||
| The DOT Calculus: An Introduction for Scala Programmers | Paolo G. Giarrusso | 37m |
Small core calculus formalizes the Scala 3-ish type system and claims type soundness with fully mechanized proofs verifying that well-typed programs do not get… | ||
| Fast and Furious | Jon Pretty | 49m |
Build tool that compiles entire dependency graphs from source dependencies to avoid runtime linking errors, names builds by IPFS hashes so layers are… | ||
| Integrating Developer Experiences | Justin Kaeser | 42m |
A standard JSON-RPC protocol now maps build units called targets to IDE modules so editors outsource compilation and get per-target compile progress and… | ||
| Code by Shape | Andy Scott | 39m |
Shows how folding simple ADTs (Either, Option, List) maps to commuting diagrams and then to code: implements a recursive, not stack-safe foldRight for lists… | ||
| Meshing Robots and Humans with Distributed Apps | Roland Kuhn | 01h 04m |
Factories need an eventually consistent decentralized log that lets sensors and tablets be always available for write (local buffering during Wi‑Fi gaps) and… | ||
| Type Arithmetic and the Yoneda Lemma | Emily Pillmore | 01h 08m |
Type signatures get counted and proven equal to set cardinalities using category theory and code: natural transformations, Yoneda lemma, and representable… | ||
| Eyjafjallajökull Lecture 2019 | Pawel Szulc | 49m |
Explains the secretary problem with a live audience game plus a simple random candidate generator and vote napkins, demonstrates the look-then-leap strategy… | ||
| nothing matches | ||