, 7 tweets, 1 min read
My Authors
Read all threads
Here’s an exercise in separating fundamentals from conventions: if we held a technical summit with all of the galaxy’s advanced alien civilizations, what would we find we had in common, and what would we find inscrutable?
Spoken language would be inscrutable. Different physiologies would lead to an inability to speak or even hear each others’ phonemes. Written language would be inscruible, though we might find analogs of nouns, adjectives, and verbs.
But mathematics would be shared. After translating syntax and symbols, we’d find we had exactly the same constructive axioms, and agree that other axioms are controversial. We’d have the same theorems and the same proofs. They’d rever a Pythagoras and a Leibniz.
Now we compare programming languages. We’d find some low level constructs have developed very differently. Maybe they’d have balanced tertiary numbers instead of twos-complement and u-law fractional numbers instead of floating point. Our bitwise ops may have no analog.
So, let’s ask: what parts of programming would we have in common? We’d share the mathematical integers, and data structures analogous to Cartesian products (structs) and sums (unions), and functions with side effects, and pure functions as a special case.
We’d have transactions as a way of running concurrent operations atomically. We’d have most of Knuth’s algorithms in common (maybe they’d have some major breakthroughs we lack!)
The goal of a high level programming language is to be something that we and these alien civilizations could agree on as universal and principled, and free of quirks and arbitrarity.
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Tim Sweeney

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!