Scala Language

Scala Language

Deep technical articles on this topic.

147Articles
147Topics covered
Articles in this category

All 147 articles, sorted alphabetically

Advertisement
ARTICLE · 01

Scala 3 contextual abstraction

Deep-dive on Scala 3's redesigned implicits: given instances and using clauses, type-class composition and Mirror-based deriv…

Read article
ARTICLE · 02

Scala 3 metaprogramming

Deep-dive on Scala 3 metaprogramming: inline defs and compile-time branching, typed quotes and splices, macro construction, Mirror-based structural re…

Read article
ARTICLE · 03

Scala 3 Deprecations

What's dropped from Scala 2.

Read article
ARTICLE · 04

Scala 3 Enums

Sealed + case classes shorthand.

Read article
ARTICLE · 05

Scala 3 Extension Methods

extension def block. Cleaner than implicit class.

Read article
ARTICLE · 06

Scala 3 Given + Using

Modern implicit replacement.

Read article
ARTICLE · 07

Scala 3 Indent-Based Syntax

Braces optional. Python-like.

Read article
ARTICLE · 08

Scala 3 Match Types

Type-level pattern matching.

Read article
ARTICLE · 09

Scala 3 Migration Guide

-source:3.x compiler flags.

Read article
ARTICLE · 10

Scala 3 Stability + Roadmap

Where language is heading.

Read article
ARTICLE · 11

Scala 3 Top-Level Definitions

def, val outside object/class.

Read article
ARTICLE · 12

Scala 3 Transparent Inline

Compile-time inlining.

Read article
ARTICLE · 13

Scala Akka Actors Introduction

Actor model. Untyped legacy.

Read article
ARTICLE · 14

Akka Cluster architecture

Deep-dive on Akka Cluster: seed nodes, gossip convergence, phi-accrual failure detector, split brain resolver, cluster sharding, singleton, distribute…

Read article
ARTICLE · 15

Akka HTTP -- streaming-first HTTP on actors and streams

Deep-dive on Akka HTTP: the composable directive routing DSL, marshalling, the Akka Streams entity foundation, end-to-end backpressure, connection poo…

Read article
ARTICLE · 16

Akka

How Akka implements the actor model for Scala and Java, powering distributed systems.

Read article
ARTICLE · 17

Akka Persistence architecture

Deep-dive on Akka Persistence: EventSourcedBehavior command/event handlers, journal plugins and sequence integrity, snapshot-bounded recovery, seriali…

Read article
ARTICLE · 18

Akka Streams

Backpressure. Reactive Streams.

Read article
ARTICLE · 19

Akka Streams architecture

Deep-dive on Akka Streams: Source/Flow/Sink blueprint algebra, materializer and operator fusion, Reactive Streams demand signaling, async boundaries, …

Read article
ARTICLE · 20

Akka Typed Actors

Compile-time message type safety.

Read article
ARTICLE · 21

Akka Typed architecture

Deep-dive on Akka Typed: sealed message protocols, Behavior[T] as functional state transitions, ActorRef[T] and compile-time mailbox safety, ActorCont…

Read article
ARTICLE · 22

Scala Array

JVM primitive. Fast.

Read article
ARTICLE · 23

Scala Arrays + Buffers

ArrayBuffer for dynamic. ListBuffer.

Read article
ARTICLE · 24

Scala Await

Await.result. Rare in prod code.

Read article
ARTICLE · 25

Scala blocking Block

Signal blocking to EC.

Read article
ARTICLE · 26

Scala Case Classes

How case classes model immutable data, why they include equality, copy, and pattern matching for free, and how to design case class hierarchies.

Read article
ARTICLE · 27

Cats Effect

How Cats Effect provides the effect system that underlies many Scala functional libraries.

Read article
ARTICLE · 28

Cats Effect runtime architecture

Deep-dive on Cats Effect 3: the IO run loop, work-stealing pool with per-worker timers, IO.blocking isolation, cancellation and Poll, Resource lifecyc…

Read article
ARTICLE · 29

Scala Cats Library

Type classes for FP.

Read article
ARTICLE · 30

Scala Circe

How Circe provides purely functional JSON handling in Scala.

Read article
ARTICLE · 31

Scala Classes

class with primary constructor in signature.

Read article
ARTICLE · 32

Scala Closures

Functions capture outer variables.

Read article
ARTICLE · 33

Scala Collections

The Scala collections library: List, Vector, Map, Set, and when to use each. Immutable versus mutable trade-offs.

Read article
ARTICLE · 34

Scala collections performance

Deep-dive on Scala collections performance: List/Vector/Array/Map operation costs, strict vs view vs iterator transforms, intermediate-collection allo…

Read article
ARTICLE · 35

Scala Companion Objects

object with same name as class.

Read article
ARTICLE · 36

Scala Compiler Plugins

How Scala compiler plugins extend behavior at compile time.

Read article
ARTICLE · 37

Scala Control Flow

if/else as expression. while. for.

Read article
ARTICLE · 38

Coursier

Fetches artifacts. cs setup.

Read article
ARTICLE · 39

Scala Currying

Partial application. def add(a)(b) form.

Read article
ARTICLE · 40

Scala Doobie

How Doobie provides purely functional JDBC access for Scala.

Read article
ARTICLE · 41

doobie architecture

Deep-dive on doobie: the sql interpolator and fragment algebra, ConnectionIO composition as transaction boundaries, Transactor and Hikari pool alignme…

Read article
ARTICLE · 42

Scala DSL Design Patterns

Method chaining + infix + implicits.

Read article
ARTICLE · 43

Scala Effect Systems Compared

How ZIO and Cats Effect compare as Scala effect systems.

Read article
ARTICLE · 44

Scala Either

Left = error, Right = value.

Read article
ARTICLE · 45

Scala ExecutionContext

Where Futures run.

Read article
ARTICLE · 46

Scala Existential Types

Forall for type parameters. Scala 3 removed.

Read article
ARTICLE · 47

Scala Extension Methods

Add methods to existing types.

Read article
ARTICLE · 48

Scala Factory Pattern

apply on companion. Constructor hidden.

Read article
ARTICLE · 49

Finagle architecture — Service/Filter composition, P2C load balancing, retry budgets, and Mux

Deep-dive on Finagle RPC: the Service-as-function abstraction, filter and stack composition, name resolution and dtabs, power-of-two-choices and apert…

Read article
ARTICLE · 50

Scala fold + map + filter

Standard collection HOFs.

Read article
ARTICLE · 51

Scala For-Comprehensions

Syntactic sugar for flatMap/map/filter.

Read article
ARTICLE · 52

Scala Free Monads

Programs as data. Interpreter pattern.

Read article
ARTICLE · 53

Scala Free Monads Deep

Program = data, interpreter runs.

Read article
ARTICLE · 54

Scala fs2

How fs2 provides functional streaming for Scala on Cats Effect.

Read article
ARTICLE · 55

fs2 streaming architecture

Deep-dive on fs2: the Pull-based demand-driven core, chunked throughput, scoped resource safety, merge/parEvalMap/concurrently semantics, fs2-io and f…

Read article
ARTICLE · 56

Scala Functional Error Handling

Either/Try/Validated over throw.

Read article
ARTICLE · 57

Functions as Values

First-class. Store, pass, return.

Read article
ARTICLE · 58

Functor + Applicative

map + ap building blocks.

Read article
ARTICLE · 59

Scala Futures

How Scala Futures represent async computations, how map/flatMap chain them, and how ExecutionContext controls concurrency.

Read article
ARTICLE · 60

Scala Futures and ExecutionContext

Deep-dive on scala.concurrent.Future: eager memoized async values, ExecutionContext thread pools, blocking isolation, map/flatMap composition and comb…

Read article
ARTICLE · 61

Scala Generic Types

Type parameters. Variance annotations.

Read article
ARTICLE · 62

Scala groupBy + Partition

Group elements by key.

Read article
ARTICLE · 63

Scala Higher-Kinded Types

Types with type parameters.

Read article
ARTICLE · 64

Scala Higher-Order Functions

How Scala treats functions as first-class values, the common HOFs (map/filter/fold), and how they enable functional-style data pipelines.

Read article
ARTICLE · 65

Higher-Order Functions in Scala

Functions as first-class values.

Read article
ARTICLE · 66

Scala http4s

How http4s provides purely functional HTTP client + server for Scala.

Read article
ARTICLE · 67

http4s architecture

Deep-dive on http4s: HttpRoutes as Kleisli functions, middleware stacks as composition, entity codecs, fs2 streaming bodies with end-to-end backpressu…

Read article
ARTICLE · 68

Scala Immutable vs Mutable Collections

Default immutable. Explicit mutable via import.

Read article
ARTICLE · 69

Scala Implicits

How Scala implicits enable type classes, extension methods, and DSL construction. Powerful but easily abused.

Read article
ARTICLE · 70

Scala Implicits (2) vs Given/Using (3)

Type class + DI mechanism.

Read article
ARTICLE · 71

Scala iron

How iron provides modern refinement types for Scala 3.

Read article
ARTICLE · 72

Scala Iterators

Single-pass. Lazy.

Read article
ARTICLE · 73

Scala kittens

How kittens automatically derives Cats type classes for case classes.

Read article
ARTICLE · 74

Scala Lagom

How Lagom provides reactive microservices for Scala/Java.

Read article
ARTICLE · 75

Scala Lazy Evaluation

lazy val + LazyList + views.

Read article
ARTICLE · 76

Scala LazyList (was Stream)

Lazy immutable list. Infinite possible.

Read article
ARTICLE · 77

Scala List

Cons + Nil. Head-append optimal.

Read article
ARTICLE · 78

Scala Macros

Compile-time metaprogramming.

Read article
ARTICLE · 79

Scala Map

HashMap default. Multiple impls.

Read article
ARTICLE · 80

Scala Memoization Patterns

Cache results. mutable.Map or 3rd-party.

Read article
ARTICLE · 81

Scala Metals

How Metals provides fast, lightweight IDE features for Scala via LSP.

Read article
ARTICLE · 82

Scala Metaprogramming

How Scala's macros and mirrors enable compile-time metaprogramming.

Read article
ARTICLE · 83

Scala Methods vs Functions

def vs val = (x) =>. Distinct concepts.

Read article
ARTICLE · 84

Scala Mill Build Tool

Modern faster alternative to sbt.

Read article
ARTICLE · 85

Scala Mixins

Compose traits. Diamond linearization.

Read article
ARTICLE · 86

Scala Monadic Composition

flatMap + map chains.

Read article
ARTICLE · 87

Scala Monads

How Option, Either, Try, and Future embody the monad pattern for context-aware computation.

Read article
ARTICLE · 88

Scala Monads Introduction

Option, Either, List, Future all monadic.

Read article
ARTICLE · 89

MUnit

Fast + simple. JUnit-compatible.

Read article
ARTICLE · 90

Scala 3 Opaque Types

Type alias with hidden implementation.

Read article
ARTICLE · 91

Scala Option

Some or None. Explicit optionality.

Read article
ARTICLE · 92

Scala Ordering + Sorting

Ordered trait + Ordering type class.

Read article
ARTICLE · 93

Scala Overview

What Scala is, why it fused functional and object-oriented paradigms on the JVM, and where it fits versus Java, Kotlin, and pure functional languages.

Read article
ARTICLE · 94

Scala Parallel Collections

.par for parallelism.

Read article
ARTICLE · 95

Scala Partial Application

Apply some args now, rest later.

Read article
ARTICLE · 96

Scala Path-Dependent Types

Types depending on values.

Read article
ARTICLE · 97

Scala Pattern Matching

How pattern matching works: literals, constructors, guards, extractors, and how sealed hierarchies enable compile-time exhaustiveness checking.

Read article
ARTICLE · 98

Scala Phantom Types

Compile-time-only type tags.

Read article
ARTICLE · 99

Scala Play Framework

How Play provides async Scala web dev with Akka underneath.

Read article
ARTICLE · 100

Play Framework architecture

Deep-dive on Play Framework: typed routing and reverse routes, Action composition and body parsers, the default vs blocking execution-context discipli…

Read article
ARTICLE · 101

Scala Promise

Write-once handle for Future.

Read article
ARTICLE · 102

Scala 3 Quotes + Splices

Modern metaprogramming.

Read article
ARTICLE · 103

Scala Ranges

1 to 10, 1 until 10. Efficient sequences.

Read article
ARTICLE · 104

Referential Transparency

Same input → same output. Foundation of FP.

Read article
ARTICLE · 105

Scala refined

How refined provides refinement types (predicates + values) for Scala.

Read article
ARTICLE · 106

Scala Reflection

Runtime + compile-time.

Read article
ARTICLE · 107

Scala Sangria

How Sangria provides GraphQL server implementation for Scala.

Read article
ARTICLE · 108

sbt

How sbt handles Scala builds: dependencies, compilation, testing, packaging.

Read article
ARTICLE · 109

sbt architecture

Deep-dive on sbt internals: load-time settings graph vs per-run task DAG, scope axes and delegation, Zinc API-hash invalidation, Coursier resolution, …

Read article
ARTICLE · 110

Scala 3

The major changes in Scala 3: enums, given/using, extension methods, cleaner syntax.

Read article
ARTICLE · 111

ScalaCheck Property Testing

Generate test cases. Find edge cases.

Read article
ARTICLE · 112

Scala scalafix

How scalafix lints + auto-refactors Scala code.

Read article
ARTICLE · 113

Scala.js

How Scala.js compiles Scala to efficient JavaScript for full-stack Scala.

Read article
ARTICLE · 114

Scala Native

How Scala Native compiles Scala to native binaries via LLVM.

Read article
ARTICLE · 115

ScalaTest Framework

Popular testing library.

Read article
ARTICLE · 116

Scala scodec

How scodec provides type-safe binary encoding/decoding.

Read article
ARTICLE · 117

Scala Sealed Traits + ADTs

Algebraic Data Types via sealed.

Read article
ARTICLE · 118

Scala Self Types

this: T => declares dependency.

Read article
ARTICLE · 119

Scala Set

HashSet default. TreeSet sorted.

Read article
ARTICLE · 120

Scala Shapeless

How Shapeless enables generic programming with HLists + case class magic.

Read article
ARTICLE · 121

Scala Shapeless 3

How Shapeless 3 adapts shapeless to Scala 3.

Read article
ARTICLE · 122

Scala sliding + grouped

Windowed views over collection.

Read article
ARTICLE · 123

Scala Streams

How Scala LazyList (Stream in Scala 2) provides lazy sequence processing.

Read article
ARTICLE · 124

scala_string_interpolation

Read article
ARTICLE · 125

Scala Structural Types

Duck typing at compile time.

Read article
ARTICLE · 126

Scala Tagless Final

Modern effect polymorphism.

Read article
ARTICLE · 127

Scala Tail Recursion

@tailrec annotation. No stack overflow.

Read article
ARTICLE · 128

Scala Tapir

How Tapir enables describing APIs as data + deriving server + client + docs.

Read article
ARTICLE · 129

Tapir architecture

Deep-dive on Tapir: the Endpoint[I,E,O] description algebra, schema and codec derivation, server/client/OpenAPI interpreters from one value, oneOf err…

Read article
ARTICLE · 130

Scala Testing

The main Scala testing frameworks and property-based testing.

Read article
ARTICLE · 131

Scala Traits

Multiple inheritance safe. Diamond OK.

Read article
ARTICLE · 132

Scala Traverse + Sequence

Turn F[G[A]] into G[F[A]].

Read article
ARTICLE · 133

Scala TrieMap

Lock-free hash trie map.

Read article
ARTICLE · 134

Scala Try

Success or Failure. Bridges exceptions.

Read article
ARTICLE · 135

Scala Tuples

Fixed-size heterogeneous groups.

Read article
ARTICLE · 136

Scala Type Classes

Ad-hoc polymorphism via implicit.

Read article
ARTICLE · 137

Scala Type Inference

Omit types where obvious. Compiler infers.

Read article
ARTICLE · 138

Scala Type-Level Programming

Encode logic in types.

Read article
ARTICLE · 139

Scala Type System

The Scala type system: generic types, variance annotations, higher-kinded types, and type classes. Why it enables libraries like Cats.

Read article
ARTICLE · 140

Scala Type Class Patterns

How type classes enable extensible polymorphism in Scala, and the patterns that make them work.

Read article
ARTICLE · 141

Scala val vs var

Prefer val. Immutable references.

Read article
ARTICLE · 142

Scala Value Classes

AnyVal wrapper. No allocation cost.

Read article
ARTICLE · 143

Scala Vector

32-way trie. O(log32) access.

Read article
ARTICLE · 144

Scala Views

.view then transform. .to force.

Read article
ARTICLE · 145

Scala ZIO Fibers

Lightweight concurrency. Cancelable.

Read article
ARTICLE · 146

ZIO Introduction

How ZIO provides functional effect system for Scala with excellent ergonomics.

Read article
ARTICLE · 147

ZIO runtime architecture

Deep-dive on the ZIO runtime: effect values and the interpreter, fiber scheduling and work stealing, blocking pool isolation, typed error causes, inte…

Read article