Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,708 posts.
Algebraic Data Types: Things I wish someone had explained about FP
Algebraic data types and algebraic data structures sound similar. It’s like they ought to be the same thing. But they’re not. They both have ‘algebraic’ in the name, so it’s confusing. I got them mixed up at times. Others have too. But, they’re different concepts. Understanding the difference will help if you’re…
Faster Ruby: Thoughts from the outside
(This is Part II of the Faster Ruby posts, which started with a retrospective on Ruby+OMR, a Ruby JIT compiler I worked on five years ago )
When FFI Function Calls Beat Native C
Over on GitHub, David Yu has an interesting performance benchmark for function calls of various Foreign Function Interfaces ( FFI ):
Teeing, a hidden gem in the Java API
Last week, I described a use-case for a custom Stream Collector. I received a intriguing comment on Twitter: There was a 'Moved Permanently' error fetching URL: 'https://twitter.com/Miguucm/status/1389258245886390292' Hats off to you, Miguel! Your comment revealed a method I didn’t know! So I decided to investigate…
An agent in 100 lines of Lisp
Around 2000 I took an AI course at the University of Guelph. I don’t think I learned too much. We didn’t talk about neural networks, as far as I can remember. My end of term project was, I think, a pathfinding algorithm wearing an AI costume. There were certainly no discussions of transformers. No CUDA. No PyTorch…
Compiler basics: Lisp to Assembly
Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
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…
“What Alan Kay Got Wrong About Objects”
One of the anonymous reviewers of my recently published Storage Combinators paper ( pdf ) complained that hiding disk-based, remote, and lo...
Why I love Go
Many years ago, I've been waiting for a language like Go. Back then, I was primarily working with C (for microcontrollers), and C++/Java/Python/etc (for bigger machines). These are great tools, but still I was longing for compiled, statically typed, memory-safe (and garbage collected) language, which compiles for the…
Show HN: QBE – a new compiler back end
QBE is a compiler backend that aims to provide 70% of the performance of industrial optimizing compilers in 10% of the code. QBE fosters language innovation by offering a compact user-friendly and performant backend. The size limit constrains QBE to focus on the essential and prevents embarking on a never-ending path…
Janet for Mortals (2023)
I wrote a book. It’s called Janet for Mortals, and it’s free, and it’s on the internet, and you can read it right now. And you should read it right now, instead of reading this blog post, because this blog post is not very interesting if you haven’t read the book. Heck, this blog post is not very interesting even if…
The ‘here is’ key
The Lear Siegler ADM-3A terminal is a very important artefact in computing history.
Writing a C Compiler, Part 2
This is the second post in a series. Read part 1 here.
On Learning Rust and Go: Migrating Away from Python
I first started using Python in 1993. It's been my main programming language since about 2000. I've written a ton of code in Python, both for work and in my free time. For several years now, I've been growing dissatisfied with it. Partly it's because I'd like more help from my programming tools, such as static type…
Clojure: All grown up
I'm a Product Manager at Google. I use data and UX to drive great products. And it turns out—the toughest problems are won in translation.
My favorite Rust function
Jaseem Abid's blogs and musings
On Asm.js
Just a shiny demo or the future of browser computing?
John Carmack on Functional Programming in C++ (2018)
ps aux | more
Elixir vs. Erlang: a question of momentum
I fiddled around with Erlang the first time a number of years ago, and have come back to it off and on ever since. I’m currently using it professionally, and enjoying the experience a lot. …