There are two interesting extremes of platform independent programming language design. One maps to hardware operations without surprising overhead, and another maximizes code correctness and verifiability by obeying all expected mathematical and set theoretic properties.
-
Show this thread
-
The first one is the C++ language. Disregard the byzantine standard libraries, syntax, and overload resolution rules, and it’s just a typed macro assembler.
4 replies 3 retweets 53 likesShow this thread -
The second one doesn’t really exist though CoQ and AGDA go in that direction. They support proofs-as-programs but aren’t quite real programming languages and have weird properties like rational numbers not being a subtype of integers.
8 replies 1 retweet 41 likesShow this thread -
Replying to @TimSweeneyEpic
I seem to recall the STL being started as an attempt at this. It went in a very not-this direction of course, but it does hint at why it looks a bit bizarre in places for what is essentially a bunch of containers.
1 reply 0 retweets 0 likes -
Replying to @tom_forsyth @TimSweeneyEpic
Stepanov & McJones’ 2009 book revisits the abstract foundation of the STL and makes for great bedtime reading.
1 reply 0 retweets 1 like -
Replying to @warrenm @TimSweeneyEpic
Yeah it's a bunch of very interesting ideas that I want absolutely nowhere near any code that I write. But here we are, flawed old C++. It would be easily the worst language in the world if it didn't work so annoyingly well.
1 reply 0 retweets 4 likes
Amen brother Tom! Just because we can iterate over arrays using pointers doesn’t mean we should create weird pointer-like abstractions for iterating over other things and then algorithms working on those abstractions and so on.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.