HN Hall of Fame Weekly email

C Is Not a Low-Level Language

queue.acm.org Essays & writing Essays & articles Software engineering Class of 2025-02 Hall of Fame

Resurfaced independently across 5 calendar years, with breakout response in 4 of them.

submissions
8
submitters
7
observed span
2018–2025
peak thread · 396 comments
472 pts
latest 20+ return · 2023-10-16
293 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

This article makes some valid points but is overall rather misleading I think. Almost all of the reasons given why C is "not a low-level language" also apply to x86/x64 assembly. Register renaming, cache hierarchies, out of order and speculative execution etc are not visible at the assembly / machine code level either on Intel or other mainstream CPU architectures like ARM or Power PC. If C is not a low level language then a low level language does not…

Intel and HP attempted to deliver what this paper advocates. They designed an entirely new processing element and compiler architecture that promised to deliver high performance with less complexity. It was called EPIC and manifested as Itanium. Billions of dollars and the best minds at the disposal of an industry wide consortium couldn't make it work; one year ago the last Itanium shipped. The market has spoken. You can run unmodified, compiled OS/360 code from the 1960s on a z15…

topspin·343-point thread·

C is low level for at least one reason: manual memory management. Especially with modern hardware, memory management is at the center of programming. For example, Rust prides itself in being memory safe without a garbage collector, memory management is more or less the entire reason for Rust to exist. Why is C fast? Memory. Why is C unsafe? Mostly memory. One of the big reason parallel computing is hard? Concurrent memory access. Functional programming is often surrounded by plenty…

GuB-42·293-point thread·

The Cell processor was a very different architecture from x86. It sacrificed cache coherency and required the programmer to manually manage each core's cache, in exchange for state-of-the-art performance. This was all done in C (although FORTRAN compiler was also available, of course). The Cell processor simply introduced new intrinsic functions to the C compiler, to allow the programmer to access the new hardware functionality. It all works perfectly fine with the rest of C, although people felt it was…

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
4

100+ points or 50+ comments

Total points
1337

reference only — not used in Hall rules or ranking

Total comments
1087

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2018-05-01C Is Not a Low-Level LanguageFirst breakout · Best threadjodooshi472316
2019-12-27C Is Not a Low-level Language (2018)pcr910303343167
2021-12-27C Is Not a Low-level Language (2018)pcr910303204192
2023-10-16C Is Not a Low-level Language – Your computer is not a fast PDP-11Latest 20+ point returnbmer293396
2025-02-13C Is Not a Low-Level Language (2018)Hall inductionkrykp21
2025-04-13C Is Not a Low-Level Language (2018)qianli_cs60
2025-04-16C Is Not a Low-Level Language (2018)daviducolo21
2025-05-13C is not a low-level language (2018)pdubroy1514