New
The latest blog posts to take off on Hacker News. 381 posts.
Haskell in the Datacentre
Bluesky: @simonmar.bsky.social Github: simonmar Email: marlowsd@gmail.com LinkedIn: Simon Marlow
Why I'm Making Python 2.8
For the past two months I've been spending half my time on Tauthon . Tauthon is a backwards-compatible Python interpreter that runs Python 2 code and C-extensions exactly as-is, while also allowing Python 2 programmers to use the most exciting new language features from Python 3. These new backported language features…
Wizards and warriors, part one
A common problem I see in object-oriented design is: A wizard is a kind of player. A warrior is a kind of player. A staff is a kind of weapon. A sword is a kind of weapon. A player has a weapon. Bu…
Why does calloc exist?
[Edit: Welcome Hacker News readers! Before we dive into the neat memory management esoterica, I want to briefly note that as engineers we have an ethical obligation in our work to consider the "safety, health, and welfare of the public" , because if we don't, terrible things happen . This is a challenging…
Measuring GC latencies in Haskell, OCaml, Racket
James Fisher has a blog post on a case where GHC's runtime system imposed unpleasant latencies on their Haskell program: Low latency, large working set, and GHC's garbage collector: pick two of three The blog post proposes a very simple, synthetic benc...
24 days of Rust – Rayon
Let me start this article with a confession: I suck at writing parallel code. I have only a vague idea about mutexes, locks and other low level primitives for handling data between threads. And since I work mostly with Python, I tend to use multiprocessing (if I bother to parallelize at all) rather than threads…
Macchiato: ClojureScript on the Server
Dmitri's blog about programming, Clojure, and software development
Adventures in the land of substrings and RegExps
Few weeks ago a bug was filed against Dart SDK citing "very low performance of String.substring " . Here is a core of microbenchmark developer submitted together with the issue:
Reflections on Rusting Trust
The Rust compiler is written in Rust. This is overall a pretty common practice in compiler development. This usually means that the process of …
Codebase Refactoring with Go
Go should add the ability to create alternate equivalent names for types, in order to enable gradual code repair during codebase refactoring. This article explains the need for that ability and the implications of not having it for today’s large Go codebases. This article also examines some potential solutions…
PHP 7.1.0 Released
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
Why I wrote a book about interpreters
Last week I’ve self-published my first book called “Writing An Interpreter In Go”, which you can get at interpreterbook.com . I want to tell you a little bit about why I chose to write this particular book.
The lack of a case against Python 3
A point-by-point rebuttal of Zed Shaw's Unicode and 2to3 complaints, with a trainer's view on which Python version to teach beginners in 2016.
Modern C is now feature complete
You find the latest version of my book at the usual place at This now contains all the material that I plan to put into it. New are “experience” parts about performance, function-like m…
Learning to Read X86 Assembly Language
Writing assembly language is something best left for the experts. To write code that runs directly on your microprocessor you need to know how memory segmentation works, what the intended use of each register is, how codes executes in real and protected modes and much, much more. And, of course, modern compilers will…
The Holy Trinity: Logic, Languages, Categories (2011)
The Christian doctrine of trinitarianism states that there is one God that is manifest in three persons, the Father, the Son, and the Holy Spirit, who together form the Holy Trinity. The doctrine…
The New Haxe Target: HashLink in depth, part 1
Find out more about HashLink, the newest Haxe target, a virtual machine used to develop system/server/desktop applications.
Typed, modular macros for OCaml
As part of my OCaml Labs research project, I implemented a new macro system for OCaml, based on a design by Leo White and Jeremy Yallop [1] .
A Rebuttal for Python 3
Zed Shaw, of Learn Python the Hard Way fame, has now written The Case Against Python 3. I’m not involved with core Python development. The only skin I have in this game is that I like Python 3. It’s a good language. And one of the big factors I’ve seen slowing its adoption is that respected people in the Python commu