Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 3,708 posts.
The state of SIMD in Rust in 2025
If you’re already familiar with SIMD, the table is all you need. And if you’re not, you will understand the table by the end of the…
1.5 is the midpoint between 0 and infinity in Ruby
What's the midpoint between 0 and infinity in Ruby? It's 1.5 for some reason. What's the reason you might ask? Read on to find out.
Let's write a setjmp
Yesterday I wrote that setjmp is handy and that it would be nice to have without linking the C standard library. It’s conceptually simple, after all. Today let’s explore some differently-portable implementation possibilities with distinct trade-offs. At the very least it should illuminate why setjmp sometimes requires…
Dinosaur and Lisp
Dinosaur is old enough, as well as Lisp, they may like each other. When I am talking about dinosaur here, I mean the dinosaur hiding in Google Chrome, it shows up when "There is no Internet connection".
My first impressions of Gleam
What I’ve learned in my first few hours using Gleam for a small project.
Ruby 3, Concurrency and the Ecosystem
I'm a technologist with a focus in ecommerce, GenAI, and developer productivity. I enjoy building reliable and fast software, and helping others to do the same.
Code Like a Pythonista: Idiomatic Python
The home of pythonistas
Problems of C, and how Zig addresses them
What are the problems of C, and how Zig addresses them?
How to make your C codebase Rusty: rewriting keyboard firmware keymap
Recently, my colleague introduced me to QMK 1, an open-source keyboard firmware. Like many non-trivia C projects, macro is heavily used everywhere, especially in keymap files 2. It didn’t bother me much since I have been programming C for many years. But I kept thinking to myself, “what would it look like if I can…
Go Proposal: Secret Mode
Automatically erase memory to prevent secret leaks.
Perlis Languages
A language that doesn’t affect the way you think about programming is not worth knowing. – Alan Perlis
Defunctionalize the Continuation
Video and transcript of Jimmy Koppel's Compose 2019 talk on defunctionalization, the best refactoring you've never heard of.
Rating 26 years of Java changes
I first started programming Java at IBM back in 1999 as a Pre-University Employee. If I remember correctly, we had Java 1.1.8 installed at that time, but were moving to Java 1.2 (“Java 2”), which w…
Why doesn't TypeScript properly type Object.keys?
A look at TypeScript’s structural type system, and we how we can effectively use it to our benefit.
What you learn by making a new programming language
Every software engineer uses a programming language, usually multiple. Few of us make programming languages. This makes sense, because the work we need to get done can typically be done just fine in the languages that exist. Those already have people making them better. Let's focus on the task at hand.
Python to OCaml: Retrospective
In 2013, I spent 6 months converting 0install's 29,215 lines of Python to OCaml (learning OCaml along the way). In this post, I'll describe the …
A Dead-Simple Web Stack in Haskell
Haskell has a proliferation of libraries to choose from for all of your basic backend needs, from logging to database access to routing and web server definition. It's nice to have the freedom of choice, but if you're just starting out, the amount of decisions needed can be overwhelming. Maybe you're not even…
I Don't Know Swift
I know a thing or two about Objective-C. It’s not bragging. If you’re reading my blog, there’s a decent chance that I know more about Objective-C …
Programming languages to watch: LiveScript, Julia, Elixir
A tour of 3 potentially-very-useful languages that have been submitted to learnxinyminutes.
Modern C++ for C Programmers: part 5
Welcome back! In part 4 we went over the nitty-gritty of lambdas and how to store them, we explored the relation between the various C++ algorithms and containers, plus we took a stroll through some non-standard containers with exceptional capabilities. Note: part 1 is here. In this probably final part 5, we’ll be…
A Taste of Rust
A review of Rust, the programming language built for safety – not necessarily for comfort.
Go compiler internals: Adding a new statement to Go
Updated (2023-05-08): the Go compiler keeps evolving and it takes time to keep up with changes. While the general gist of this post remains true and it's worth reading to understand how the compiler works on a high level, the details of the modifications are slightly different now.
Dijkstra on Haskell and Java (2001)
In 2001, Edsger W. Dijkstra wrote a letter to the Budget Council of The University of Texas. A PDF is available here , I’ve typed it up so that everyone can read it. Sadly, the curriculum was changed to Java . Relatedly, the algorithmic language Scheme was replaced by Python in MIT’s The Structure and Interpretation…