Railway Oriented Programming
Slides and videos explaining a functional approach to error handling
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 63 posts.
Slides and videos explaining a functional approach to error handling
It's not about technology for its own sake. It's about being able to implement your ideas.
For those who don’t follow Swift’s development, ABI stability has been one of its most ambitious projects and possibly it’s defining feature, and it finally shipped in Swift 5 . The result is something I find endlessly fascinating, because I think Swift has pushed the notion of ABI stability farther than any language…
You're only given a little spark of madness. You mustn't lose it. Robin Williams
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don't think is mentioned enough.
A short status update on the effort to bring a type system into Elixir.
An introduction to strong arrows and how it leverages the Erlang VM to provide sound gradual typing.
Enhance the Java programming language with string templates . String templates complement Java's existing string literals and text blocks by coupling literal text with embedded expressions and template processors to produce specialized results. This is a preview language feature and API .
Introduce an API by which Java programs can interoperate with code and data outside of the Java runtime. By efficiently invoking foreign functions (i.e., code outside the JVM), and by safely accessing foreign memory (i.e., memory not managed by the JVM), the API enables Java programs to call native libraries and…
Go 1.21 shipped a preview of a change in Go 1.22 to make for loops less error-prone.
Customers and stakeholders have substantial investments in, and are comfortable with the performance, security and stability of, industry-standard platforms like the JVM. While Java developers may envy the succinctness, flexibility and productivity of dynamic languages, they have concerns about running on…
By all accounts, TypeScript has been a big success for Microsoft. I've seen loads of people sparkle with joy from dousing JavaScript with explicit types that can be checked by a compiler. But I've never been a fan. Not after giving it five minutes, not after giving it five years. So it's with great pleasure that I can…
This post is about why we need a coroutine package for Go, and what it would look like. But first, what are coroutines?
Async/await syntax in Rust was initially released to much fanfare and excitement. To quote Hacker News at the time:
Highlights of the Julia 1.9 release.
A practical comparison of build and test speed between C++ and Rust.
Today we're excited to announce the release of TypeScript 5.0! This release brings many new features, while aiming to make TypeScript smaller, simpler,
Try to spot who liked hacking away at corpses rather than computers
This post will be a bit all over the place. Several months ago, I wrote Hard Mode Rust, exploring an allocation-conscious style of programming. In the ensuing discussion, @jamii name-dropped TigerBeetle, a reliable, distributed, fast, and small database written in Zig in a similar style, and, well, I now find myself…
I've been floating ways to simplify the memory management story in Rust around the core team lately. Memory management is a contentious topic, since we've worked hard to get to the current state of things, and with the push toward stability lately, there is a (quite reasonable!) resistance to any changes at this…
This release is the Reference Implementation of version 21 of the Java SE Platform, as specified by JSR 396 in the Java Community Process.
Go 1.21 is the first perfectly reproducible Go toolchain.
Listen in on Jane Street’s Ron Minsky as he has conversations with engineers working on everything from clock synchronization to reliable multicast, build systems to reconfigurable hardware. Get a peek at how Jane Street approaches problems, and how those ideas relate to tech more broadly.
This has been a ground-breaking year for my C skills, and paradigm shifts in my technique has provoked me to reconsider my habits and coding style. It’s been my largest personal style change in years, so I’ve decided to take a snapshot of its current state and my reasoning. These changes have produced significant…
Go 1.21 expands Go's commitment to backward compatibility, so that every new Go toolchain is the best possible implementation of older toolchain semantics as well.
OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.