HN Hall of Fame Weekly email

Handles Are the Better Pointers

floooh.github.io Essays & writing Essays & articles Software engineering Candidate
Screenshot of floooh.github.io captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 6 calendar years, with breakout response in 3 of them.

submissions
13
submitters
11
observed span
2018–2025
peak thread · 88 comments
223 pts
latest 20+ return · 2023-06-21
223 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

Reminds me of a startup I worked for in the 1990s. The C code base was organized into "units" (modules). Each unit allocated/destroyed its own data structures, but used the "ref" unit to return a reference (really, a handle) instead of a pointer. Each module used a "deref" function to convert the handle to a typed pointer for internal use. ref used many of the tricks described in the above post, including an incrementing counter to catch stale handles. All…

A few years ago I wanted to make a shoot-em-up game using C# and XNA I could play with my kids on an Xbox. It worked fine except for slight pauses for GC every once in a while which ruined the experience. The best solution I found was to get rid of objects and allocation entirely and instead store the state of the game in per-type tables like in this article. Then I realized that I didn't need per-type tables…

drblast·194-point thread·

> and may even be useful in higher-level garbage-collected languages to reduce pressure on the garbage collector. > The approach described here works very well though with a data-oriented architecture, where central systems work on arrays of data items packed tightly in memory. I have been pushing us into a new data-oriented architecture for our software, but for reasons of domain modeling (managing complexity) rather than performance. This is a very interesting read from my perspective. Let me give an…

bob1029·152-point thread·

Remove the raw pointer footguns and you're basically turning C/C++ into a version of Object Pascal or FreeBasic. And we all know that "real programmers" wouldn't want that.

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
3

100+ points or 50+ comments

Total points
596

reference only — not used in Hall rules or ranking

Total comments
247

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2018-06-17Handles are the better pointersFirst breakoutingve19480
2020-06-05Handles are the better pointers (2018)generichuman150
2020-08-12Handles Are the Better PointersLinuxBender10
2020-08-13Handles Are the Better Pointerssigna1110
2020-08-14Handles are the better pointers (2018)mpweiher10
2021-04-02Handles are the better pointers (2018)zdw15288
2022-12-24Handles are the better pointers (2018)Tomte10
2023-03-22Handles are the better pointers (2018)signa1120
2023-06-21Handles Are the Better PointersBest thread · Latest 20+ point returnibobev22378
2025-02-09Handles are better pointers (2018)brunojppb10
2025-03-16Handles are the better pointers (2018)thebeardisred20
2025-06-11Handles are the better pointers (2018)thunderbong21
2025-06-11Handles Are the Better Pointers (2018)thunderbong10