LOADING

Can we have the Standard Library for Macros?

Do you like it when compiler generates the boring code for you? Fast, mundane, boring-but-error-prone code? Do you need to implement such a code generator yourself? Have you found out that Shapeless/Mirrors bend your brain a bit too much?

Mateusz Kubuszok
Senior Scala Developer
About This Talk

Do you like it when compiler generates the boring code for you? Fast, mundane, boring-but-error-prone code? Do you need to implement such a code generator yourself? Have you found out that Shapeless/Mirrors bend your brain a bit too much?

Congratulations! You might have a valid use case for writing a macro! Plain-old code with some plain old, vals, defs and if-elses. So, we’re opening up an IDE, looking at the API and… oh, no. It’s so low-level. And error prone. And everyone needs to copy-paste the same utilities… which are handling like 50% of the cases, and for the remaining 50% politely asking you to rewrite your code to something actually supported.

Oh, and if your users are both on Scala 2 and Scala 3 you have to write everything twice. You’d better have some tests written to keep them aligned!At this point, you might reconsider using macros: maybe generate some files as managed source, or get back to Shapeless/Mirrors, or just write the boring and error-prone code by hand?

But it doesn’t have to be this way. We can have a standard library for macros that makes simple things simple, and hard things (at least) possible. And we can design it in such a way, that most of the code could be shared between Scala 2 and 3.

And this talk will show you how.

more great talks

Might Be Interesting

Day 1
  —  
3:10 pm
arrow pointing right icon

Controlled Concurrency Testing for Scala

This talk presents McCCT, a new concurrency testing tool developed at KTH by the speakers in the context of an ongoing research project.

Day 2
  —  
9:35 am
arrow pointing right icon

Flexible Modeling: Keeping Your Domain Pure with Scala 3

In this talk, we will walk through a concrete example of a boilerplate-heavy domain. By replacing common Scala 2 workarounds with Opaque Types, Extension Methods, Enums, and Union Types, we will demonstrate how to achieve a strictly typed, decoupled architecture without the noise.

Day 2
  —  
2:00 pm
arrow pointing right icon

Backend driven Frontends: Modern, Powerful and Blazingly Fast with Datastar & zio-http

So, is there a modern solution for web apps that is powerful, simple, and blazingly fast in both CI and the browser? A solution that lets you write in your favorite backend language and is fun? The answer is Datastar!

Day 1
  —  
4:50 pm
arrow pointing right icon

Effects as Capabilities

When writing software, we currently seem to have to choose between an imperative style - easy to read and write, hard to reason about - and a monadic style - hard to read and write, easy to reason about.This talk is about being greedy and getting the best of both worlds, because we deserve it.

Day 1
  —  
10:10 am
arrow pointing right icon

Migration Without Tears: 2,000 Projects, One New LTS

In this talk, I will present insights from running the Open Community Build, where we continuously build and migrate nearly 2,000 open-source projects to the newest Scala Next versions, from scratch, every week.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us