Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 390 posts.
SIMD with Zig
An introduction to using SIMD with Zig
26 programming languages in 25 days, Part 2: Reflections on language design
I recently wrote about completing Advent of Code 2022 using a different programming language (or two) every day for 25 days.
Onyx, a new programming language powered by WebAssembly
# What is Onyx? **Onyx** is a new programming language featuring a modern, expressive syntax, strict type safety, blazingly-fast build times, and out-o...
A new F# compiler feature: graph-based type-checking
Graph-based type-checking is a new F# compiler flag that allows the compiler to type-check files in a project in parallel whenever possible.
JEP 450: Compact Object Headers
Reduce the size of object headers in the HotSpot JVM from between 96 and 128 bits down to 64 bits on 64-bit architectures. This will reduce heap size, improve deployment density, and increase data locality.
C was not created as an abstract machine
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…
Pytz: The Fastest Footgun in the West (2018)
An explanation of the differences between dateutil and pytz's time zone models and why people tend to misuse pytz and introduce bugs into their datetime code.
Common Lisp: 2022 in review
And 2022 is over. The Common Lisp language and environment are solid and stable, yet evolve. Implementations, go-to libraries, best practices, communities evolve. We don’t need a “State of the Ecosystem” every two weeks but still, what happened and what did you miss in 2022?This is my pick of the…
Melange 1.0: Compile OCaml / ReasonML to JavaScript
Hey folks, this is a special one. Melange 1.0 The Melange team and I are thrilled to announce the release of Melange 1.0 today, marking a major milestone in...
I disagree with Geoff Hinton regarding "glorified autocomplete"
“People say, It’s just glorified autocomplete . . . Now, let’s analyze that. Suppose you want to be really good at predicting the next word. If you want to be really good, you have to understand what’s being said. That’s the only way. So by training something to be really good at predicting the next word, you’re…
Ten years of “Go: The good, the bad, and the meh”
I wrote a blog post ten years ago. How do I feel about it now?
JEP 430: String Templates (Preview) Proposed to Target Java 21
Enhance the Java programming language with string templates . String templates complement Java's existing string literals and text blocks by coupling literal text with embedded expressions and template processors to produce specialized results. This is a preview language feature and API .
How to think about async/await in Rust
(This is a section of the lilos intro guide that people seemed to like, so to increase its visibility, I’m lifting it up into its own post and expanding it a bit. I hope this is a useful companion piece to the post on async debugging I posted this morning.))
From Stacks to Trees: A new aliasing model for Rust
Since last fall, Neven has been doing an internship to develop a new aliasing model for Rust: Tree Borrows. Hang on a second, I hear you say – doesn’t Rust already have an aliasing model? I...
The Development of the C Language (2003)
C came into being in the years 1969-1973, in parallel with the early development of the Unix operating system; the most creative period occurred during 1972. Another spate of changes peaked between 1977 and 1979, when portability of the Unix system was being demonstrated. In the middle of this second period, the first…
Go 1.21 will (likely) have a static toolchain on Linux
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…
Changing the Rules of Rust
In Rust, there are certain API decisions about what is and isn’t sound that impact all Rust code. That is, a decision was made to allow or not allow types which have certain safety requirements, and now all users are committed to that decision. They can’t just use a different API with different rules: all APIs must…
WTF is going on with R7RS Large?
The reaction to John Cowan’s resignation as chair of the R 7 RS Large working group has been somewhat wider than I think anyone expected, making it onto general interest programming forums. Scheme may be a small island, but when it has an earthquake, it makes waves through the whole archipelago of programming…
I wrote a string type
I write compilers for fun. I can’t help it. Consequently, I also write a lot of parsers. In systems programming, it’s usually a good idea to try to share memory rather than reuse it, so as such my AST types tend to look like this.
Why we need to know LR and recursive descent parsing techniques
A couple of people have asked me for my thoughts on part of an article from Tiark Rompf called (roughly) “ Just Write the Parser ” which advocates the use of recursive descent parsing over more “formal” approaches to parsing, at least in the context of teaching compilers. I’m fairly sure I read this article a couple…
Asynchronous Rust on Cortex-M microcontrollers
A community and blog for embedded software makers
Python Is Easy. Go Is Simple. Simple != Easy
Python and Go have distinct qualities that can complement each other.
Haskell in Production: Standard Chartered
In this article of our Haskell in Production series, we interview José Pedro Magalhães from Standard Chartered – a multinational bank that has over 6 million lines of code written in their own dialect of Haskell.
My thoughts on OCaml
Since 2013 I’ve had the chance to use OCaml a few times in different jobs, and I got frustrated and disappointed every time I had to use it. I just don’t enjoy writing OCaml.
Single File Elixir Scripts
Experiment and debug with Elixir Scripts!
My review of the C standard library in practice
In general, when working in C I avoid the standard library, libc, as much as possible. If possible I won’t even link it. For people not used to working and thinking this way, the typical response is confusion. Isn’t that like re-inventing the wheel? For me, libc is a wheel barely worth using — too many deficiencies in…
"Useless Ruby sugar": Argument forwarding
Or, how the feature that allows to write less names might make the code more explicit.
Modern Pascal is still in the race (2022)
A recent poll on the Lazarus/FPC forum highlighted a fact: pascal coders are older than most coders. Usually, at our age, we should be managers, not developers. But we like coding