Stunned by Go
The original working title for this post was "Go is hostile to developers". This was named at a time of extreme frustration, and it didn't ...
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,707 posts.
The original working title for this post was "Go is hostile to developers". This was named at a time of extreme frustration, and it didn't ...
The x86 instruction set architecture is at the heart of CPU s that power our home computers and remote servers for over two decades. Being able to read and write code in low-level assembly language is a powerful skill to have. It enables you to write faster code, use machine features unavailable in C, and…
Many functional programming articles teach abstract functional techniques. That is, composition, pipelining, higher order functions. This one is different. I...
I am now generating this website with Clojure (yes, right after rewriting it in GNU Make and shell ; I have a problem, ok?). In a personal tradition, I used writing a static site generator as the project to play with and learn Clojure as a new language. While I’ve long scoffed at Clojure for its copious syntax ( three…
Just so you know, x86 machine-code is now a "high-level" language. What instructions say, and what they do, are very different things. I m...
Have you ever wondered how a compiler works, but you never found courage to find out? Then this series of articles is for you. I have never had the chance to look under the hood either, but one week-end I have decided to to write a translator from the esoteric programming language wend (short for week-end), which I…
The paradigms of programming Floyd, CACM 1979 (Also available in ) A couple of weeks ago we looked at Dan Bernstein’s very topical “thoughts on security after ten years of qmail 1.0.” From the gene…
I have a particular view of Python performance from my experience on the Pyston project, and since this view is somewhat nonstandard I wanted to take some time to explain it and give a motivating e…
Someone on Reddit recently asked: What would make a Rust implementation of something faster than a C implementation, all things being the same? I think this is…
Occurrence of Hyrum's law in Golang
A gentle and beginner friendly overview of Rust Ownership Rules
Today I'm discussing a trivially simple technique that I've rarely seen used in production codebases. In programming, we often need to deal with simple values that can be represented by simple, generic types built into our programming language or provided by libraries: types like integer, string, or UUID. In any
Scrapscript is a small, pure, functional, content-addressable, network-first programming language. It’s designed to allow creating small, simply shareable programs. The language was created by Taylor Troesh and the main implementation was created by me and Chris.
Disclaimer: Most patterns are easy to implement because we use dynamic typing, functional programming and, of course, Clojure. Some of them look wrong and ugly. It’s okay. All characters are fake, coincidences are accidental.
News flash: C++26 is done! 🎉 On Saturday, the ISO C++ committee completed technical work on C++26 in (partly) sunny London Croydon, UK. We resolved the remaining international comments on the C++26…
The impact of PHP 8 on my code
Zig programming language is new, but it's getting a well deserved attention. Can it be a good fit for small-and-simple programming tasks?
A lot has changed since my last post nearly a year ago. I want to write about my experience coming from a ML-family language to a Lisp. It’s not very informa...
The crucial part is IR. It's a common language that sits between the high-level program and the low-level backend . IR is used to express high level concepts and is specific enough that any backend can produce a fast machine code.
In 2011, to celebrate the 150th anniversary of MIT, the Boston Globe made a list of the most important innovations developed there. They asked me to explain the importance of SICP, and this is what I sent them:
Where I try to explain why I feel like C\+\+ is so much fun, and to correct some misinformation.
Or rather, an object is a set of functions that operate on implied data elements.
This is a description of the Common Lisp ecosystem, as of January, 2021, from the perspective of a user and contributor.The purpose of this article is both to give an overview of the ecosystem, and to help drive consolidation in each domain.Each application domain has recommendations for consolidating that part of the…