A common theme in programming language design, which many programmers find exhilarating and meaningful, is the adverb "just" – the notion of most of the language's concepts being "just" adapted or contextual versions of some more fundamental concept.
Chief example being C strings, which are "just" arrays of chars, and arrays themselves being "just" pointers to the start of a sequence of memory cells. Or, that most data values in Javascript are "just" objects, including arrays and functions.
This knowledge that everything is "just" some other thing provides programmers with a powerful mnemonic for understanding the rest of the language's concepts – but less appreciated is how much narrative energy the "just" knowledge provides, and how exciting it is to comprehend.
Being able, once understanding what C pointers are, to see how C arrays effortlessly appear from it, or how C strings effortlessly appear from the latter, provides similar joy as a story, or a puzzle solution – seeing simple concepts naturally develop in unexpected directions.
Of course, we all know that the most elegant stories are often the most fantastical and idealistic. The beauty of knowing programming things are "just" other things is often little more than that – beauty, unable to actually be grasped and wielded in light of day.
In practice, most all experienced programmers absolutely don't want to use the object-centered cosmology of Javascript to stash arbitrary data on anything they want, nor do they want to use C strings with "just" idioms appropriate for sequences of memory cells.
This thread is really just about how idiosyncratic fundamentals of programming languages, while outwardly regarded for their explanatory or logically consistent power, are actually appealing on a purely aesthetic or emotional level, as explanatory cosmological narratives.
You can follow @webbedspace.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: