Tagged “scala”
-
Direct-style Effects Explained
Direct-style effects, also known as algebraic effects and effect handlers, are the next big thing in programming languages. At the same time I see some confusion about direct-style effects. In this post I want to address this confusion by explaining the what, the why, and the how of direct-style effects using a Scala 3 implementation as an example.
scala fp effects io substitution -
Essential Effects book updated!
Our book "Essential Effects" is now updated to use Cats Effect 3.
scala fp effects book -
Understanding Virtual Machine Dispatch through Duality
Through the lens of duality, different VM dispatch designs can be seen as variations on an underlying common structure.
scala fp -
Functional Programming is Based
A few functional programming principles give a systematic and repeatable process for developing code. In this post I show this process using a simple example of summing the elements of a list.
scala fp -
A Case Study in Incrementally Improving Code
Through several easy refactorings we incrementally improve code quality and performance.
scala code-quality performance -
Fire-and-Forget in Cats Effect
How do you "fire-and-forget" in the world of the `IO` monad and Cats Effect?
scala fp effects asynchronous cats -
Recent and Upcoming Public Appearances
Information and links about recent (and upcoming!) talks and interviews.
scala fp effects talks podcast conferences -
Concurrent state machines
How to build a concurrent state machine to model complex behaviors.
scala fp fsm concurrency state -
Context Bounds are Implicitly Passed, are Subtype Bounds?
A question about covariance and `Functor.widen` leads to me correcting my mistaken notion about the mechanism of subtype constraints.
scala variance implicits cats -
What is an Effect?
We often use the term effect when talking about the behavior of our code. But what is an effect? Can we talk about effects in precise ways, in order to write better programs that we can better understand?
scala fp effects io substitution -
Techniques for Understanding Code
Understanding code is probably more important than writing it in the first place. I use three main strategies for understanding code, which I discuss here.
scala typescript software-engineering -
Scoring Ten-pin Bowling with Algebraic Data and Finite State Machines
Implementing the rules for scoring ten-pin bowling turns into an exercise in algebraic data types and finite state machines.
scala fp typescript rust -
What Functional Programming Is, What it Isn't, and Why it Matters
The core premise of functional programming, in my opinion, is that local reasoning and composition make for better code. Here I discuss what these terms mean and the benefits they bring.
scala fp typescript -
Addendum to Alex N's blog post on Scala warnings
An important compiler flag to add when using Scala 2.13's @nowarn annotation.
scala compiler warnings flags lint -
Functional Programming Demystification at Seattle's Scala Meetup
Notes and code from Scala at the Sea.
scala meetup functor monad typeclasses effects -
Thoughts on Recent Online-Only Conferences
Our report on speaking at, and attending, two online-only Scala conferences: NEScala and Scala Love.
scala conferences -
A Sketch of Research on Teaching Programming
A quick overview of the research on curriculum and pedagogy for teaching programming.
scala teaching programming -
Benchmarking Web Services using GraalVM Native Image
Benchmark results comparing an http4s services built with Graal VM Native Image against the same service running on the JVM.
scala serverless cloud -
Building Serverless Scala Services with GraalVM
Building an executable from an http4s web service using GraalVM Native Image is a little bit involved but not hard. This post show you all the steps involved and comes with complete working code.
scala serverless cloud -
Leveraging Monoids for More Powerful Summarization
scala cats programming monoid fold parallelism typeclasses -
Optional Actions
Methods to optionally execute actions
scala cats programming option traverse -
Type Classes vs Records of Functions
Type classes and records of functions are two very similar tools that are available in languages like Haskell, Scala, and Rust. Given the similarity the question arises of which we should use. In this blog post I discuss when I think one language mechanism should be preferred over the other.
teaching scala programming -
Tips for Teaching Scala
Five tips to improve teaching programming
teaching scala programming
See all tags.