Homepage
Open in app
Sign in
Get started
Scala 3
What’s new in Scala 3 and how to make the most of it.
Follow
Scala 3: What Is “Direct Style”?
Scala 3: What Is “Direct Style”?
Scala uses monads extensively for many operations with non-trivial effects, such as those involving asynchronous computation, including…
Dean Wampler
Jun 4, 2023
Scala 3: Even Fewer Braces
Scala 3: Even Fewer Braces
One of the most significant, if controversial features in Scala 3 is optional braces, where significant indentation can be used instead of…
Dean Wampler
Nov 20, 2022
Scala 3: “Erased” Definitions
Scala 3: “Erased” Definitions
Martin Odersky and the EPFL Scala Center continue experimenting with potential new features in Scala 3. Let’s explore one of them, erased…
Dean Wampler
Mar 26, 2022
Safer Exceptions in Scala 3
Safer Exceptions in Scala 3
I mentioned in What’s Changed Since Scala 3.0.0 that Scala 3.1 introduced an experimental feature for safer exceptions. Let’s explore it in…
Dean Wampler
Jan 16, 2022
The Value of Parametric Polymorphism
The Value of Parametric Polymorphism
I’m giving a talk at Scale by the Bay, October 28th, on Lessons Learned from 15 Years of Scala in the Wild.
Dean Wampler
Oct 10, 2021
Scala 3: What’s Changed Since Scala 3.0.0
Scala 3: What’s Changed Since Scala 3.0.0
The Scala team continues to refine Scala 3, fixing bugs, refining existing features, and introducing some experimental features for Scala…
Dean Wampler
Sep 4, 2021
Scala 3: Macros
Scala 3: Macros
Update May 22, 2022: Michel Charpentier correctly pointed out that the arguments don’t need to be by-name if they are inlined. This makes…
Dean Wampler
Jul 5, 2021
Latest
Scala 3: A Look at “inline” (and “Programming Scala” is Now Published!)
Scala 3: A Look at “inline” (and “Programming Scala” is Now Published!)
Update April 3, 2022: I added the code examples below to the book’s code repo and did more extensive testing. See here for details.
Dean Wampler
Jun 27, 2021
Scala 3: It’s Here!
Scala 3: It’s Here!
Scala 3.0.0 is now final!
Dean Wampler
May 14, 2021
Scala 3: Safer Pattern Matching with Matchable
Scala 3: Safer Pattern Matching with Matchable
Late in the Scala 3 development process, a new type scala.Matchable was introduced to fix a loophole in pattern matching. This post…
Dean Wampler
Apr 28, 2021
Scala 3: Infix Operator Notation
Scala 3: Infix Operator Notation
For a long time, Scala has supported a useful “trick” called infix operator notation. If a method takes a single argument, you can call it…
Dean Wampler
Mar 28, 2021
Scala 3: Type Lambdas, Polymorphic Function Types, and Dependent Function Types
Scala 3: Type Lambdas, Polymorphic Function Types, and Dependent Function Types
Type lambdas are the type analog of “value lambdas”, also known as functions 🤓. This post explores them. The discussion naturally leads…
Dean Wampler
Mar 6, 2021
Scala 3: The _, They Are a’Changing
Scala 3: The _, They Are a’Changing
(With apologies to Bob Dylan.)
Dean Wampler
Feb 26, 2021
Scala 3: Well-designed Object-Oriented Type Hierarchies
Scala 3: Well-designed Object-Oriented Type Hierarchies
This post discusses a few changes and additions in Scala 3 that make designing robust, object-oriented type hierarchies a little easier.
Dean Wampler
Feb 7, 2021
Scala 3: Universal Apply Methods
Scala 3: Universal Apply Methods
Let’s take a break from the type system changes and discuss other new features in Scala 3. This post is about universal apply methods…
Dean Wampler
Jan 25, 2021
Scala 3: Dependent Types, Part II
Scala 3: Dependent Types, Part II
In the last post (which proved popular), I introduced dependent types and discussed interesting things you can with values as types, like…
Dean Wampler
Jan 11, 2021
Scala 3: Dependent Types, Part I
Scala 3: Dependent Types, Part I
Scala 3 expands on the type-level computing you can do at compile time. This post starts a discussion of dependent types.
Dean Wampler
Jan 3, 2021
Intersection and Union Types
Intersection and Union Types
Two new features in Scala 3’s type system are intersection and union types. They embrace set theory more explicitly to improve the…
Dean Wampler
Dec 8, 2020
Opaque Type Aliases and Open Classes
Opaque Type Aliases and Open Classes
In this post, I begin a tour of many of the changes to Scala’s type system in Scala 3. Let’s start with two relatively small changes…
Dean Wampler
Nov 29, 2020
About Scala 3
Latest Stories
Archive
About Medium
Terms
Privacy
Teams