A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
December 23rd, 2021, ISSUE 410

READING

My Dos and Donts in sbt Build Definitions

The goal of this is to hopefully spark a conversation in your team about build definitions, how you write them, and best practices to follow.
Chris Kipp (@ckipp01)
Scala Chat: Hello Discord (So Long, Gitter)

On behalf of the Scala organization, I am pleased to announce that we have adopted Discord as our official chat platform.
Seth Tisue (@SethTisue)
Smart constructors for case classes

Learn patterns for safe object construction with built-in validation.
Noel Markham (@noelmarkham)
Gallia: a library for data transformation

Gallia is a Scala library for generic data transformation with a focus on practicality, readability, and scalability (if needed).
Anthony Cros (@anthony_cros)
Sourcegraph: Precise Code Intelligence for Java, Scala, and Kotlin

We are excited to announce that Sourcegraph now supports precise Code Intelligence for Java, Scala, and Kotlin. More precisely, this means you can get compiler-accurate “Go to definition” and “Find references” within a Git repository and all transitive dependencies of your codebase.
Ólafur Páll Geirsson (@olafurpg)
Top Link Of November: On the future of Akka & Lightbend

It's not a surprise that such an important summary of a crucial part of the Scala ecosystem has become the most popular article last month.
Jonas Bonér (@jboner)

VIDEOS

Implicits for Hypothetical Babies

Let's talk about, you know.
Kit Langton (@kitlangton)
"Akka Concurrency" Review & The Truth about Actors & Akka

There aren't many Akka books out there. This one is a bit controversial...
DevInsideYou (@DevInsideYou)

EVENTS

Scala Love CFP, February 18th, 2022, Online Event

Everyone is very welcome to apply to speak at Scala Love. We are looking for people willing to share their knowledge in the company of other great developers.
Scala Love (@scala_love)
ScalaMatsuri CFP, March 19th - 20th, 2022, Online Event

CFP will close at January 15th (Sat), 2022 Anywhere on Earth (Jan 16th 20:59 JST).
ScalaMatsuri (@ScalaMatsuri)
TypeVille CFP, April 20th - 23rd 2022, Krynica-Zdrój, Poland

The new brand name for Scalar comes in April 2022! Submit a C4P application by January 9th.
SoftwareMill (@softwaremill)

RELEASES

macwire 2.5.2

MacWire generates new instance creation code of given classes, using values in the enclosing type for constructor parameters, with the help of Scala Macros. Latest MacWire significantly improves the experimental autowire variant. Autowire works at compile-time and generates code wiring your dependency graph, including cats-effect Resources, effects and factory methods.
Mateusz Borek
magnolia 1.0.0

Easy, fast, transparent generic derivation of typeclass instances - for Scala 2 and 3.
softwaremill (@softwaremill)
sbt-github

sbt plugin for GitHub Packages, publish packaged jars or remote cache artifacts.
Eric Peters (@ericpeters)
zio-cli 0.1.0

Rapidly build powerful command-line applications powered by ZIO.
zio-cli contributors
smithy4s

Smithy is an interface definition language (IDL) provided by AWS. It is protocol agnostic, flexible, and reasonably low surface, which facilitates the writing of tooling. Smithy4s is a tool that generates third-party-free, protocol-agnostic scala code from smithy specifications, and provides opt-in modules containing functions that use third-party libraries to interpret the generated code in different ways.
Olivier Mélois (@baccata64)
Akka 2.6.18

New passivation strategies for Cluster Sharding, non-snapshot artifacts for Scala 3, send all allocated shards to region/proxy when registering, and many other fixes/improvements.
Akka Team (@akkateam)
Akka gRPC 2.1.2

Featuring a more detailed code generation model, more convenient rich error messages, aligned protoc versions and some more goodies.
Akka Team (@akkateam)
feral 0.1.0-M1

This is the first milestone (pre-)release of feral, a framework for building and deploying serverless functions with Cats Effect. It has been baking for a while and we are excited to make it generally available for you to try!
Arman Bilge (@armanbilge)





  1. Scala Times Issue #414

    Safer Exceptions in Scala 3. Type Class Derivation in Scala 3. Learn Scala with Online Courses. Functional Programming in Scala. Migrating to Java 17.


  2. Scala Times Issue #413

    Notes about loading configuration Examples for Play Framework and Spring Boot. Scala project from scratch #6. "Functional Programming for Mortals with Scalaz" Review. Scala Love CFP, February 18th, 2022, Online Event. ScalaMatsuri CFP, March 19th - 20th, 2022, Online Event.


  3. Scala Times Issue #412

    Why Scala Is Seeing A Renewed Interest For Developing Enterprise Software. The wonder of context functions. Scala Love CFP, February 18th, 2022, Online Event. ScalaMatsuri CFP, March 19th - 20th, 2022, Online Event. TypeVille CFP, April 20th - 23rd 2022, Krynica-Zdrój, Poland.


  4. Scala Times Issue #411

    Scala and Rust interoperability via JNI. Learn Doobie for the Greater Good. Scala Love CFP, February 18th, 2022, Online Event. ScalaMatsuri CFP, March 19th - 20th, 2022, Online Event. TypeVille CFP, April 20th - 23rd 2022, Krynica-Zdrój, Poland.


  5. Scala Times Issue #410

    My Dos and Donts in sbt Build Definitions. Scala Chat: Hello Discord (So Long, Gitter). Smart constructors for case classes. Gallia: a library for data transformation. Sourcegraph: Precise Code Intelligence for Java, Scala, and Kotlin.


  6. Scala Times Issue #409

    ZIO environment: episode 3. Preparing Apache Kafka for Scala 3. How I Self-Published My First Technical Book. "Scala CLI" - Tool or Toy?. "Practical Functional Programming in Scala" Review.


  7. Scala Times Issue #408

    7 ZIO experts share why they choose ZIO. ENSIME: The Next Generation. Coding at 6am isn't fun. ScalaMatsuri CFP, March 19th - 20th, 2022, Online Event. TypeVille CP, April 20th - 23rd 2022.


  8. Scala Times Issue #407

    IntelliJ Scala Plugin 2021.3 Is Out!. Scala at Scale at Databricks. Akka Streams Backpressure. Zip and slide! (Advent of Code day 1). Ep 15: Advent of Code 2021 Day 1. Is it Traverse?.


  9. Scala Times Issue #406

    Security improvements in tapir 0.19. Retrying function calls in Scala. Parsing character encoding-dependent protocols with scodec in Scala. Introduction to ZIO. "Scala with Cats" Review.


  10. Scala Times Issue #405

    The programmer's brain in the lands of exploration and production. The Red Book - "Functional Programming in Scala" Review. Functional Scala, Dec 2nd - 3rd.


  11. Scala Times Issue #404

    On the future of Akka & Lightbend. Data Times - Big Data and ML enthusiasts news flash. Break free from your entangled code base! - Part 2. Scala at Scale at Databricks. Recursion pitfalls in IO monads and how to avoid them.


  12. Scala Times Issue #403

    The future of Lagom. Run a fs2-kafka stream with scala-cli and Scala 3. Demystifying Akka Streams' Materialized Values. Asynchronous Microservices with ZIO-gRPC and Scala. An identifier, by any other name, ….


  13. Scala Times Issue #402

    Developing your own Content Management System - Preface. No leftovers: Working with pulls in fs2. Publishing Scala Code Coverage Results to CodeCov using Github Actions. The inline Modifier in Scala 3. Dataflow Analysis for Scala.


  14. Scala Times Issue #401

    Proceedings of the 12th ACM SIGPLAN International Symposium on Scala. On the future of Play Framework. Scala 3 and Spark?. Trait parameters in Scala3 - a feature no one asked for?. ZIO from Scratch - Part 1.


  15. Scala Times Issue #400

    A Case Study in Incrementally Improving Code. Proof of Multi-Stage Programming with Generative and Analytical Macros. Testing client/server compatibility + error handling - SPFS #4. "Programming in Scala" Review. Type-Level Programming in Scala, Part 2: A Type-Level Quicksort.


  16. Scala Times Issue #399

    Akka Serverless: Developing with Java or Scala. Improving DateTimeFormatter.parseBest using Scala 3. Top Link of September: What’s Changed Since Scala 3.0.0. Scala Metals with Multiple Roots in a Workspace. Serverless Chats Episode 112: Abstracting Stateful Serverless with Jonas Bonér.


  17. Scala Times Issue #398

    Fast number parsing in Scala. On TF and ZIO in 2021. Trace your microservices with ZIO Telemetry. Scala isn't Hard: How to Master Scala Step by Step. Scala 3 publishing plan for scalameta.


  18. Scala Times Issue #397

    Akka gRPC update delivers 1200% performance improvement (so what happened?). Using BSP effectively in IntelliJ and Scala. ZIO Hackathon, Oct 29th - 31st (CET). ScalaCon, November 2nd - 5th. Functional Scala, Dec 2nd - 3rd.


  19. Scala Times Issue #396

    Monitoring Akka applications with Mesmer and OpenTelemetry. Building Next Gen Applications on JVM with ZIO. Where the ZIO Roadmap is Headed Next. Announcing Data Times. SBT Tutorial - Part 1.


  20. Scala Times Issue #395

    Akka gRPC benchmarks. Scala 3: What’s Changed Since Scala 3.0.0. ZIO Hackathon, Oct 29th - 31st (CET). ScalaCon, November 2nd - 5th. Functional Scala, Dec 2nd - 3rd.


  21. Scala Times Issue #394

    A Preview of Logging in ZIO 2.0. Number (part 2). Fuzzy, lazy, functional numeric computing in Scala. Advances In The ZIO 2.0 Scheduler. Effective Programming in Scala.


  22. Scala Times Issue #393

    Incorporating Plotly into your Zeppelin notebooks with Spark and Scala. What is F[_] in Scala?. A pure functional Primality Test in Scala. Using oracles to test the service and data layer. ZIO Hackathon, Oct 29th - 31st (CET).


  23. Scala Times Issue #392

    ScalaCache: A Caching Library To Rule Them All. Migrating from IntelliJ IDEA to VSCode and Metals. Announcing Data Times. Building Twitter's backend RPC services with Finagle. ZIO Hackathon, Oct 29th - 31st (CET).


  24. Scala Times Issue #391

    Spark ML hyperparameter tuning. Number (part 1). Announcing Data Times. ZLayer DSL - Getting Started with ZIO in Scala3. ZIO Hackathon, Oct 29th - 31st (CET).


  25. Scala Times Issue #390

    Understanding Comparative Benchmarks. Announcing Scala.js 1.7.0. Announcing Data Times. Why Should You Care About Referential Transparency?. GitHub Copilot for Scala - Does it work?.


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 bySoftwareMill.
We arehiring.
Andtaking on projects.