Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Rust Traits Deep Dive, Part 2
Traits Deep Dive, Part 2
The evolution of a Scheme programmer (2020)
For a real-life implementation, see how Racket's math/number-theory does it here .
Fast Fibonacci numbers using Monoids
Compute enormous Fibonacci numbers in milliseconds using this one weird trick
John Conway's FRACTRAN, a ridiculous, yet surprisingly deep language (2020)
On April 8, 2020, John Horton Conway developed symptoms of COVID-19. On April 11, 2020, he succumbed to the disease. 1 2 3 4
OOP is not that bad
OOP is certainly not my favorite paradigm, but I think mainstream statically-typed OOP does a few things right that are very important for programming with many people, over long periods of time.
Things about programming I learned with Go
Go has been gaining a significant popularity over last few months. Language-related articles and blog posts are written every day. New Go projects are started on Github. Go conferences and meetups attract more and more people. This language certainly has its time now. It became a language of the year 2016 according to…
I missed Nim (2014)
A year ago I wrote an article trying to round up new languages since year 2000 and what I think of them by just… glancing at them, or otherwise playing with them. I ended up sifting out the 4 m…
Java 8: New features in ConcurrentHashMap
DEAD CODE TECH LAW Contact us Our Location Icon label Alaska Icon label Nevada Icon label New Mexico Icon label Arizona Understanding the Role of a Medical Malpractice Lawyer: A Comprehensive Guide Medical malpractice cases are complex legal undertakings that require a specific set of skills and expertise. When faced…
Undefined Behavior in 2017
Since you talk about the sanitizers and tools like Checked-C, I’ll note there’s also SaferCPlusPlus[1], which is essentially a memory-safe (and data race safe) subset of C++. The idea is that there are a finite number of C++ elements that contribute to memory unsafety, and since the advent of C++11, it is now…
The Road to Valhalla
The goal of Project Valhalla is to bring more flexible flattened data types to JVM-based languages, to bring the programming model back in line with the performance characteristics of modern hardware. The core feature is inline classes (known previously as value types ), but such a fundamental perturbation of the JVM…
Plain C API design, the real world Kobayashi Maru test
Designing APIs is hard. Designing good APIs that future people will not instantly classify as "total crap" is even harder. There are typical...
Structured Errors in Go (2022)
Bridge the gap between structured logging and errors in Go
Implementing a Forth
(Image of "Four-Armed Chuck" programming a PDP-11 is from my giant write-up of Forth .)
Peter Norvig's Sudoku solver: Clojure & Python side by side
As an exercise, I translated Peter Norvig’s Sudoku solver from Python to Clojure. There have been a couple other attempts before, but they both leaned on Clojure’s reference types as a …
The Many Faces of an Undying Programming Language
This is a post I've been meaning to write for a while now: one anecdotally comparing programming languages in the Lisp family. I consider myself to be a Lisp hacker. Perhaps that much was obvious from the letter λ adorning my website's header, a reference to the λ-calculus which inspired John McCarthy to design the…
Rich Comment Blocks in Clojure
A blog about life between two parens.
A brief introduction to esoteric programming languages
This is the companion reference for A Brief Introduction to Esoteric Languages, my lecture for a friend’s college class. The video should be legible to other viewers, and the material here should be (mostly) understandable without watching the video. The Esolangs Listed roughly in order of appearance in the talk, with…
Compilers: Incrementally and Extensibly (2024)
The materials for the course on compilers: built incrementally and fully in tagless-final style
Parsing PHP in Go
An elegant open source and mobile first theme for hugo made by @mdo . Originally made for Jekyll.
Rust testing or verifying: Why not both?
Dijkstra famously dissed testing by saying “Program testing can be used to show the presence of bugs, but never to show their absence!” As if you should choose one over the other. I don’t see them as opposites but as complementary techniques that should both be used to improve the quality of your code.
Developing a Statically Typed Programming Language (2017)
In this blog post we’ll go through a sample implementation of a type checker, interpreter and a transpiler for a basic purely functional programming language, which is based on the lambda calculus. We will do a “full-stack” programming language development by going through formal definition of the language’s syntax…