HN Hall of Fame Weekly email

It’s Not Wrong that “ ”.length == 7

Screenshot of hsivonen.fi captured 2026-07-20
Page preview · captured 2026-07-20

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

submissions
6
submitters
6
observed span
2019–2025
peak thread · 303 comments
280 pts
latest 20+ return · 2025-08-22
195 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

> Python 3’s approach is unambiguously the worst one, though. Did I miss the part where he explains this take? It's made up of 5 valid unicode code units. For a language where you're not supposed to need to know the byte size semantics, the correct length should be 5. What am I missing? The close second being 17, because length in bytes. Is another fine way to represent this data, e.g. what a successful write of some sort would…

The closest to insight in this post is a quote from somebody else. “String length is about as meaningful a measurement as string height” Under that quote three rationale are offered. 1. "to allocate memory". Fine, like an integer your very low level code needs to actually store strings in RAM and in this sense both integers and strings have a size. I don't think I'd name this size "length" though and certainly if length(5) is an error in your…

I love how the title of this submission is changing every time I come back to HN. At first there was an empty space between the double quotes. This made me click and read the article because it was surprising that the length of a space would be 7. Then the actual emoji appeared and the title finally made sense. Now I see escaped \u{…} characters spelled out and it’s just ridiculous. Can’t wait to come back tomorrow to see…

koliber·195-point thread·

Raku seems to be more correct (DWIM) in this regard than all the examples given in the post... my \emoji = "\c[FACE PALM]\c[EMOJI MODIFIER FITZPATRICK TYPE-3]\c[ZERO WIDTH JOINER]\c[MALE SIGN]\c[VARIATION SELECTOR-16]"; #one character say emoji.chars; # 1 #Five code points say emoji.codes; # 5 #If I want to know how many bytes that takes up in various encodings... say emoji.encode('UTF8').bytes; # 17 bytes say emoji.encode('UTF16').bytes; # 14 bytes Edit: Updated to use the names of each code point since HN cannot…

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
827

reference only — not used in Hall rules or ranking

Total comments
848

reference only — not used in Hall rules or ranking

Every submission