Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 14,540 posts.

Any year
6033

Stop Memsetting Structures

TL;DR: Use C99’s designated initializers instead. Because it’s 2019! Edit: This post was discussed on Hacker News, Lobste.rs and /r/c_programming. It has been updated to address some of the concerns raised by commenters. One of the little things that annoy me when reading code is the unnecessary use of memset() to…

6036

s/bash/zsh/g

There is simply no way you can do calculations with fractions in bash without relying on bc , dc , or some hacks. Compared to simply being able to use a + b it’s ugly, slow, and difficult.

6039

Skills Poor Programmers Lack

A friend and I had a discussion about the basic skills that are often lacking in experienced programmers. How can a programmer work for ten or twenty years and never learn to write good code? Too often they need close supervision to ensure they go down the right path, and can never be trusted to take technical…

6040

Four limitations of Rust's borrow checker

I’ve been using Rust for hobby projects since 2016 and have been working professionally in Rust since 2021, so I tend to consider myself pretty knowledgeable about Rust. I’m already familiar with all the common limitations of Rust’s type system and how to work around them, so it’s pretty rare that I have to “fight the…

6051

Hotspot performance engineering fails

Developers often believe that software performance follows a Pareto distribution: 80% of the running time is spent in 20% of the code. Using this model, you can write most of your code without any care for performance and focus on the narrow pieces of code that are performance sensitive. Engineers like Casey Muratori…

6055

Icdiff: side-by-side command line diffs

Your terminal can display color, but most diff tools don't make good use of it. By highlighting changes, icdiff can show you the differences between similar files without getting in the way. This is especially helpful for identifying and understanding small changes within existing lines.

6059

Seemingly impossible functional programs (2007)

Andrej has invited me to write about certain surprising functional programs. The first program, due to Ulrich Berger (1990), performs exhaustive search over the “ Cantor space ” of infinite sequences of binary digits. I have included references at the end. A weak form of exhaustive search amounts to checking whether…

6060

How well do agents use test/verification techniques?

We previously noted that, while it's easier than ever to hit a particular quality bar by having coding agents use effective test techniques, software quality seems to be getting worse , indicating that whatever defaults developers are using may not work very well. Here, we test if simple instructions to agents to use…