New
The latest blog posts to take off on Hacker News. 399 posts.
The visitor pattern is essentially the same thing as Church encoding
The functional programming analog of an object-oriented design pattern
Go 1.16 will make system calls through Libc on OpenBSD
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Red Hat ported OpenJDK to 64-bit ARM: A community history
Find out how Red Hat engineers and a community of open source enthusiasts created the standard OpenJDK implementation for AArch64.
F# is gaining independence from .NET
F# is a language that will make you sleep better
Cyclic dependencies are evil (2013)
Cyclic dependencies: Part 1
What's New in PHP 8.1
PHP 8.1 adds support for PHP enums, as well as readonly properties, Fibers, performance improvements, new in initializers, and more.
Turbo Pascal: A Great Choice for Programming Under CP/M (2013)
CP/M was blessed with many programming languages, each with their own strengths and weaknesses. I think that Turbo Pascal stands out from these and I'm not alon
OO in Python is mostly pointless
Note from 2025 me - I largely still agree with myself - and I still see the same crappy OO code getting pumped out. The final point in "Exceptions" is worth emphasising more.
Python's Type Checking Renaissance
You may have heard that TypeScript has been taking the web development space by storm in the last few years , bringing to it static types. I believe the same thing is starting to happen in the world of Python, where type checkers like mypy , Pyre , and Pyright are increasingly used, at least where Python is used by…
Latches in C++20
Latches and barriers are coordination types that enable some threads to wait until a counter becomes zero. You can use a std::latch only once, but you can use a std::barrier more than once. Today, I have a closer look at latches.
Racket Compiler and Runtime Status
posted by Matthew Flatt With the upcoming version 8.0 release, Racket on Chez Scheme (Racket CS) will become the default implementation of Racket. This report discusses the implications of that change, continuing a series that was originally about Racket...
Command Path Security in Go
How to decide if your programs are vulnerable to PATH problems, and what to do about it.
Making Win32 APIs More Accessible to More Languages
Introduction Win32 APIs provide powerful functionality that let you get the most out of Windows in your applications. While these APIs are readily accessible to C and C++ developers, other languages like C# and Rust require wrappers or bindi
Flow-Based Programming
Official website for flow-based programming
Java on Truffle – Going Fully Metacircular
Up until now, GraalVM has offered two ways to run Java programs: using the Java HotSpot VM with the GraalVM JIT (just-in-time) compiler…
Python 3's F-Strings: An Improved String Formatting Syntax
Python f-strings give you a readable, concise way to interpolate and format strings, and they beat .format() and the % operator on speed.
Hecto: Build your own text editor in Rust
Welcome! This is a series of blog posts that shows you how to build a text editor in Rust.
Would Rust Secure Curl?
Rewriting programs in Rust has become a bit of a meme and one program that has been discussed a lot is cURL .
Rust: Structuring and handling errors in 2020 (2020)
After working through “the book” on the Rust programming language and getting started with the first non-trivial, real-world application I found myself faced with a question I didn’t yet feel well-equipped to handle: “How should you structure error handling in a mature rust application?”
Why Zig when there is already C++, D, and Rust?
If Zig code doesn’t look like it’s jumping away to call a function, then it isn’t. This means you can be sure that the following code calls only foo() and then bar() , and this is guaranteed without needing to know the types of anything:
Clojure Core
Earlier today Rich Hickey let the cat out of the bag that I’m joining the Clojure Core development team.
10 years-ish of Elixir
We are celebrating 10 years since the first commit to what would become Elixir.
Idris 2 version 0.3.0
A new version (0.3.0) of Idris 2 has been released. You can download the source (including generated Scheme and Racket files for bootstrapping) from the download page .
Ten years without Elixir
A new standard for travel on Crete. The official digital gateway to the island's untamed soul. Experience the future of Greek tourism.
A rabbit hole full of Lisp
Profiling Emacs and writing some Lisp to work with a 70000-file monorepo.
A Proposal for Adding Generics to Go
Generics is entering the language change proposal process
Haskell is our first choice for building production software systems
Haskell's features enable rapid development, easy maintainability, and excellent performance, making it a top choice as an industrial-strength programming language.