Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 1,517 posts.

2021
634

I wrote a linker everyone can understand

When we wrote our assembler we made many design choices that helped us cut down on the complexity of the assembler itself. One of those decisions was to have the assembler directly output executables. That was a good choice in that it allowed us to quickly test as we were developing: once we implemented an opcode, we…

635

Why Learn Haskell? (2018)

Asking a "why?" question means we want to be told a reason. But would we accept any reason? It seems not, for if any answer suffices, then the answer is irrelevant, so why bother asking?

642

Git from the Bottom Up (2008)

Welcome to the world of Git. I hope this document will help to advance your understanding of this powerful content tracking system, and reveal a bit of the simplicity underlying it — however dizzying its array of options may seem from the outside.

648

Lua: Good, Bad, and Ugly Parts (2012)

I have been programming in Lua for about 9 months and it seemed like a good time to pause and reflect on my experience with it. I have used various languages over the years -- Perl ( soaplite.com and other projects, including my current consulting work), C ( a DHCP /DNS server for Arduino and a ping-pong juggling…

651

When static makes your C code 10 times faster

Addendum : Many Hacker News commenters correctly point out that the right way to indicate to the compiler that a value does not change is const . This post is not about C best practices, but just about how one can easily get to the bottom of this kind of surprising behavior by looking at the compiler output. This…

657

Some Reasons to Measure

A question I get asked with some frequency is: why bother measuring X, why not build something instead? More bluntly, in a recent conversation with a newsletter author, his comment on some future measurement projects I wanted to do (in the same vein as other projects like keyboard vs. mouse , keyboard , terminal and…