Undone Programming Newsletter 04/2024

Hello dear readers. This issue’s main topic is encoding and handling effectful, asynchronous operations in functional languages. It seems FP is driving the latest research and evolution and questioning the status quo. Find below the latest load of programming goodies!
ReScript 11.1
Unusually, we’re starting off with the announcement of a new version of the ReScript language. Its goal is to provide a JavaScript-like experience with a curated subset of features leaning toward functional programming concepts. Read the blog to see which features the language designers have included in this new version. I encourage you to also look at the comparison with TypeScript and the reasoning for the design choices. It sounds good to me!
Functional Semantics in Imperative Clothing
Dealing with asynchronous operations, which are usually I/O based, is very common in day-to-day programming. This article shows a neat syntax for composing these operations in imperative style using the still very young Roc functional programming language. It also explains the benefits of encapsulating side effects and executing them on various runtimes. And all that without mentioning the Monad pattern.
Direct-Style Effects Explained
Somewhat related to the previous article, this post goes even further and explains what a direct style is and how we can use it to write programs that compose side effects without using monadic structures. Lately, there’s been a lot of buzz in the Scala community about it. Do we need this alternative to bring the programming model closer to imperative style, or is the now well-established, but not so friendly to newcomers, monadic style the path we should follow?
What Is so Unique about Unison?
Unison is a new functional language that is rather revolutionary. This blog post shares the first steps in using Unison to write a library from the perspective of a seasoned functional programmer. It highlights basic developer experiences when faced with quite different takes on structuring the code. It may be different to what you are used to. Will it manage to break the barrier with advanced tooling and persuade some developers to give it a try?
I am a knowledge-obsessed, life-positive software developer who approaches every day with a passion for learning and a drive to inspire others. As a natural problem solver, I excel at applying creative thinking to solve complex problems and am constantly pushing the boundaries of what is possible in software development.