A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
March 7th, 2024, ISSUE 522

READING

The Functional Programming in Scala Course Is Out!

This new course assumes prior knowledge of Scala basics and focuses on the functional programming concepts that Scala can simplify rather than language syntax. To get going with the course, you’ll need to install the JetBrains Academy plugin and the IntelliJ Scala Plugin.
Maciej Gorywoda (@makingthematrix)
Shipping your code to cloud with Scala, Besom and Pulumi

Besom, the Scala SDK for Pulumi, has just had it's second release - the 0.2.x series - that focuses on improving the developer experience based on the feedback from early adopters. This release is also the first release marking our march towards the stability of the APIs crafted with awesome developer experience in mind.
Łukasz Biały (@lukasz_bialy)
Flavors of shared state in Cats Effect

A deep dive into the nuances of Ref and IOLocal.
Jakub Kozłowski (@kubukoz)
Pekko Akka Compatibility

We decided early on to remove as many references as possible to Akka (branding, package names, config names, etc.). We also changed the default ports (migration guide). One of the results of this is that you should be able to use Akka and Pekko libs in the same JVM.
PJ Fanning (@pj_fanning)
Benchmarking Tapir: Part 2

Second part of the series focuses on profiling to find hot frames, as well as testing WebSockets.
Krzysztof Ciesielski (@kpciesielski)
Akka to Pekko Migration for thatDot and Quine

Our migration required two main activities. The first was the modification of our own code that used Akka directly. The second was the replacement of all dependencies with the Pekko versions. The latter proved to be the more difficult one.
Christopher Meade

EVENTS

Scalar Workshops at Early Birds price are back for two days only

Supercharge your streams with cats-effect (workshop with Zainab Ali) or Learn full stack Scala 3 with ZIO and friends (workshop with Daniel Ciocîrlan). Use the provided link to access the workshop of choice at an Early Bird price! Hurry, only 3 tickets per workshop are up for grabs and just for two days.
Scalar Conference (@scalarconf)
Scalar, March 21st - 22nd, Warsaw, Poland

Join the greatest Scala conference in Central Europe!
Scalar Conference (@scalarconf)
LambdaConf, May 4th-10th, Estes Park, Colorado

Get ready!
LambdaConf (@lambda_conf)
ScalaMatsuri, June 7th-9th, Tokyo, Japan

The largest international Scala conference in Asia.
ScalaMatsuri (@ScalaMatsuri)

RELEASES

Scala 3.4.0 and 3.3.3 LTS released!


Scala contributors
Cats Effect 3.5.4

Featuring a brand new rewritten Dispatcher!
Cats Effect contributors
iron 2.5.0

This release adds support for several libraries and other minor features.
iron contributors
caliban 2.5.3

This release includes support for subscriptions over Server-Sent Events, as well as a few bug fixes and improvements.
caliban contributors
criteria4s

A simple domain-specific language (DSL) to define criteria and predicate expressions for any data stores by using Scala type class mechanisms in a type-safe way. It pretends to be agnostic to any data store and it is extensible to support any kind of data stores.
Rafael Fernández (@neskeip)
Tapir 1.9.11

Includes quite a bunch of performance improvements and dependency updates.
Tapir contributors (@scalarconf)





  1. Scala Times Issue #528

    Lean Scala: Reddit discussion. Learn Functional Programming The Fast Way!. Caliban on Tailcalls's GraphQL benchmarks. LambdaConf, May 4th-10th, Estes Park, Colorado. LambdaConf - The Grand Hackathon Finale, May 10th.


  2. Scala Times Issue #527

    How implicits are useful . ScalaWAW #32, Apr 18th, Warsaw. LambdaConf, May 4th-10th, Estes Park, Colorado. LambdaConf - The Grand Hackathon Finale, May 10th. ScalaMatsuri, June 7th-9th, Tokyo, Japan.


  3. Scala Times Issue #526

    Announcing the Scala Ambassadors initiative. Supporting high-performance response streaming in Shardcake. IntelliJ Scala Plugin 2024.1 Is Out!. LambdaConf, May 4th-10th, Estes Park, Colorado. ScalaMatsuri, June 7th-9th, Tokyo, Japan.


  4. Scala Times Issue #525

    Scams in the Scala Community update. Why we bet on Scala at SwissBorg. Capture Checking in Scala 3.4. Why Effects libs? . Benchmarking Tapir: Part 3 (Loom).


  5. Scala Times Issue #524

    Tapir dropping Scala 2.12 support. Scala 3 Roadmap for 2024. Leveraging sbt remote caching on a big modular monolith. Krzysztof Ciesielski - My Scala Story. The Montréal Effect: Why Programming Languages Need a Style Czar.


  6. Scala Times Issue #523

    Zainab Ali - My Scala Story. Handling errors in direct-style Scala. Scala 3.3.2 post-mortem analysis. Distributed Context Propagation with otel4s. Pre-SIP: Improve Syntax for Context Bounds and Givens.


  7. Scala Times Issue #522

    The Functional Programming in Scala Course Is Out!. Shipping your code to cloud with Scala, Besom and Pulumi. Flavors of shared state in Cats Effect. Pekko Akka Compatibility. Benchmarking Tapir: Part 2.


  8. Scala Times Issue #521

    What to do with your End Of Life Akka?. Introducing Playwright-jsEnv for unit testing in scala-js environments. The holy graal of GitHub Actions. Gabriel Volpe - My Scala Story. Game development in Scala.js with David Smith.


  9. Scala Times Issue #520

    My team built and productionized a custom rate limiter in Scala. Benchmarking Tapir: Part 1. WebSockets in Http4s. Improving my Distributed System with Scala 3 (Part 2). Tomas Mikula - My Scala Story.


  10. Scala Times Issue #519

    Debugging session #1: zio-logging & quill. Scala Developer Advocate open hours - AMA . Better Shell Scripting with Scala-CLI. C-style for loops in Scala 3. Paweł Marks - My Scala Story.


  11. Scala Times Issue #518

    Scala Center Roadmap for 2024. Maciej Gorywoda - My Scala Story. Vladyslav Pekker - My Scala Story. Nicolas Rinaudo - My Scala Story. Adam Warski - My Scala Story.


  12. Scala Times Issue #517

    #1BRC in Scala & Scala-Native. Errors happen. Can we get rid of them using ZIO Test?. Scala IO, Feb 15th-16th, Nantes, France. Functional stream processing workshop before Scalar, Mar 20th, Warsaw, Poland. Scalar, March 21st - 22nd, Warsaw, Poland.


  13. Scala Times Issue #516

    GraphQL in Scala: Handling side effects. Type class constraints in object algebras. Migrating event sourced Akka application from CockroachDB to AlloyDB. Jakub Kozłowski - My Scala Story. Scala 3: My migration journey.


  14. Scala Times Issue #515

    Deriving Tail Recursive Fibonacci. Virtual Threads Looming with Adam Warski. Scala Meetup, Jan 31st, Hamburg, Germany. Scala Meetup @ MOIA feat. VirtusLab, Feb 1st, Berlin, Germany. Scala IO, Feb 15th-16th, Nantes, France.


  15. Scala Times Issue #514

    Kotlin from Scala perspective: Advent Of Code 2023. Partially applied functions and currying. GraphQL in Scala: Advanced Schema Generation. Async File IO. Update NextDNS with a Scala CLI script.


  16. Scala Times Issue #513

    Scala 2 Macro Tutorial. A Beginner's Guide to GraphQL in Scala. Writing modular application using the Kyo library. What Can Scala Learn from Rust?. Scala IO 2024, Feb 15th-16th, Nantes, France.


  17. Scala Times Issue #512

    Scala's great ecosystem. What Can Scala Learn from Rust?. Scala IO 2024, Feb 15th-16th, Nantes, France. Scalar 2024 CFP, March 21st-22nd, Warsaw, Poland. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.


  18. Scala Times Issue #511

    Designing a (yet another) retry API. The compilation cost of implicits. Scala Survey Results 2023. Get started with Scala. The X-Ray Mode.


  19. Scala Times Issue #510

    IntelliJ Scala Plugin 2023.3. How to avoid For-Comprehension Pitfalls in Scala. My migration journey. #89 Algebraic Effects with Kyo: Happy Path Programming. Scala in the City, Dec 14th, London.


  20. Scala Times Issue #509

    Type class derivation with ZIO Schema. Scala traits vs enums for ADTs. Practical Type-Level Programming in Scala 3. Extension of Erased Values in Scala 3. For-Comprehension Use Cases in Scala.


  21. Scala Times Issue #508

    Effective Test Parameterization with ScalaTest Tables. Indoor Vivants: Scala Native and Swift: building Twotm8 MacOS app. Entry 1: fs2, gRPC, Triton Inference Server. Poll: Semiauto derivation in circe for Scala 3. Introduction to Functors With Scala 3.


  22. Scala Times Issue #507

    Scala Left Fold Parallelisation - Three Approaches. Advent of Code 2023. Helix and Scala. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.


  23. Scala Times Issue #506

    In Scala 3, use 4 Spaces for Indentation. Writing a Chat With Akka. How to retry a Future in Scala. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.


  24. Scala Times Issue #505

    Getting started with ZIO, part 3. Laminar & Scala.js Full Stack Demo & More. Harness the power of Web Components with Scala and Laminar. Rendezvous Benchmark Analysis: When Threads (Don't) Meet. How scala-cli Shines in Automation.


  25. Scala Times Issue #504

    Custom logic from Accept header with Tapir. Using Nix to Develop and Package a Scala Project. Scala Center Activity Report for 2023 Q3. How to convert an Option to an Either in Scala. Free support for Scala 2 to 3 migration.


Organizing an event?
Promote it with
Scala Times.
The Scala Times reader?
Get a banner!
Got a tip?Send it in!
Follow us onTwitter.
Curated by SoftwareMill.
We are hiring.
And taking on projects.