Chris Ruch's personal blog covers programming culture, Mozilla's IRC server, film aesthetics, and essays on why zero-based indexing exists.
HN links it for the zero-based indexing essay and the Mozilla IRC post; commenters also recommend the Bourne aesthetic essay, though one disputes its tone.
This is an argument which has been going on for years; "crazy paragraphs because the code is ugly" is a thoughtless low effort criticism and it doesn't deserve a steelman fleshed out rebuttal if the person hasn't put any effort in.
You say "a symbol soup with multiple paragraphs explaining what the soup does and why it is good" - honestly, do you think people write multiple paragraphs explaining the code to beginners who can't read APL every single time they write any APL? Of course they don't! Your proposal relies on "symbol soup" being a fair and accurate description, which it isn't.
And, are you suggesting that people don't write comments explaining their code in common popular languages? Of course they do! (and should)
And, are you suggesting that people don't have to learn and practise to be able to read common popular languages when they learn to program? Of course they do, look at posts around the internet on people learning Java and Rust and C# and C++ and Python asking what some code means, what some syntax means, and not only beginners, lots of people ask like "I can code but what is this syntax?" and it's a Python generator comprehension, or a ternary operator, or a C# LINQ SQL style or a pattern match or an anonymous function or a compiler hint or a documentation generator template or a generic type or a turbofish or whatever thing they hadn't seen before in their previous languages or codebases.
And, are you suggesting that comments getting out of sync with…
I'm reminded of "Barbiephonic (redux)"[0], although it's only related in the sense that through this story I found yet another story involving Barbie and crypto[1].
> And the other thing lying around on those open shares were recordings of names. To reach a wide audience they’d recorded some unstoppably perky young woman reciting kids’ first names, Aaron, Abbot, Abby, Abigail, Adana, Adena, in an upbeat barbie-girl voice, every single one. And there I was with a pile of free disk space, university bandwidth, wget and why not.
> There were seventeen thousand of them.
> After a bit of experimentation, I figured out how to stitch them all together with .4 seconds of silence between each. The resulting audio file was almost five hours long; four hours and forty five minutes of relentless Barbiedoll voice reciting seventeen thousand first names in alphabetical order.
> To my knowledge, nobody has ever listened to the whole thing.
> Of the six attempts I’m aware of, four were called off when the death threats started, one due to the near-breakup of the couple making the attempt, and one person drinking themselves to unconsciousness at about the 90 minute mark. I’m not saying that to make a joke. I’m telling you because this is real and it’s an SCP-grade psychic biohazard. No highly esteemed deed was committed here; this is not a place of honour.
The "SCP-grade psychic biohazard" is not that much of an exaggeration, by the way.
[0]…
The article linked from this plus page (http://exple.tive.org/blarg/2013/10/22/citation-needed/) poses the question "why do programmers start counting at zero?" and then shows contempt towards anyone who thinks they know the answer (while dismissing Dijkstra as "incoherent", without argument).
To the author, the correct way to answer this question is by investigating the history of how things happened to end up the way they are, which (apparently) no one besides him has ever done.
While history is interesting, I think the much more important question is: why ought we to count from zero (or not)? And the answer to that question has nothing to do with history.
In addition to Dijkstra's argument, mentioned elsewhere in this thread, 0-based addressing is more efficient (since it can be used directly as an offset, without having to bias it first).
As much as I like Lua, its 1-based indexing is not my favorite part of that language. In particular, the numeric for loop is confusing, because the loop:
for i=x,y do
-- stuff
end
...will execute (y-x+1) times, not (y-x) as it would in most languages, like Python:
for i in range(x,y):
# stuff
Off-by-one errors are some of the most annoying bugs. 0-based indexing and half-open ranges help avoid them in my experience.
I am not sure you'll be satisfied but this article by mhoye has a section on Watson and typewriters that seems relevant and is fun to read regardless: https://exple.tive.org/blarg/2019/10/23/80x25/
Parenthetically, I think much discussion around this neglects the constraints / true ultimate causes of human eye resolving power (in minutes of arc not DPI|millimeters) and cognitive "line tracking" (think narrow newspaper columns). I.e., they are from the perspective of device manufacturers / producers not receiving brains / consumers. At least in theory, the former is trying to please the latter after all, but eyes/brains haven't really evolved much in this respect since antiquity / the dawn of writing. This is just a pet peeve of mine that maybe you share, and clearly in the realm of 2x..4x not few% and so not on track with your question like the article I linked :-) TLDR - while a "standard viewing distance" is good enough for eye charts, I guess it's too complicated for "marketing hardware" and it's all too easy to get caught up in manufacturer framing.
> And when we’re talking about blind spots and invisible social access controls, of course, what we’re really talking about is privilege. “Working in the open”, in a world where computation was scarce and expensive, meant working in front of an audience that was lucky enough to go to university or college, whose parents could afford a computer at home, who lived somewhere with broadband or had one of the few jobs whose company opened low-numbered ports to the outside world; what it didn’t mean was doxxing, cyberstalking, botnets, gamergaters, weaponized social media tooling, carrier-grade targeted-harassment-as-a-service and state-actor psy-op/disinformation campaigns rolling by like bad weather. The relentless, grinding day-to-day malfeasance that’s the background noise of this grudgefuck of a zeitgeist we’re all stewing in just didn’t inform that worldview, because it didn’t exist.
http://exple.tive.org/blarg/2018/11/09/the-evolution-of-open/
I’m no fan of Binance, but to label them as Bond villains while spending zero effort on trying to understand the ideology behind cryptocurrencies (at least, what was supposed to be the ideology) and why being a distributed business without a physical address is desirable from that point of view – and not just because they’re evil greedy people (of which Binance may still be) – makes this essay not very interesting. It would have been a much better piece had the author attempted to understand the decentralization ideology and then squared that with the apparently very real crimes so widespread in crypto.
Edit: found the essay that this link reminded me of: a comparison of Jason Bourne to James Bond, from a societal perspective. A good piece to read after this original link.
https://exple.tive.org/blarg/2015/09/20/bourne-aesthetic/