Undone Programming Newsletter 05/2024
References are like jumps!
This blog post reflects on the historical issues and ongoing challenges related to mutable state in programming languages. It praises Rust for addressing these problems with its type system that manages lifetimes and ownership, preventing data races and improving code reliability. It also contrasts Rust's approach with other programming paradigms like object-oriented programming and value semantics, acknowledging Rust's imperfections while advocating for better solutions.
ReScript has come a long way, maybe it's time to switch from TypeScript?
With its focus on the JavaScript ecosystem, ReScript has evolved as a direct competitor to TypeScript. This blog post lists some of the issues that could have made developers reluctant to use ReScript in the past, even if they liked the language itself. Dive deeper to see how these issues have been addressed, and other points you should consider when picking a language for your next project. Do you think ReScript has the potential to take a piece of the TypeScript pie?
Forking and Interruption in ZIO
Fibers in ZIO, Scala’s popular effect library, are user threads that allow interruption and forking. But the behavior of these operations is not always straightforward. This blog post shows how a change in the library implementation caused issues with the original code, and what the solution was to fix it.
Moving Beyond Type Systems
Tracking and handling side effects is a hot topic in functional language ecosystems.?This interesting blog post comes up with the idea of a language with effect tracking that is not part of the type system. The concept of an effect is introduced, so don’t despair if this is not already familiar to you.