C makes is easy to write footguns. Erlang makes it easy to write highly available, fault-tolerant, distributed footguns.
Rust makes it harder to write footguns because you have to sneak them past the compiler. Fortunately, life finds a way.
Haskell makes it impossible to write footguns, or any other program
With Agda at least you know the footgun will eventually run out of bullets
By this point you may be noticing the common element in all of these languages
The point here is not "these languages suck" or even "people suck", it's: no language will prevent you from having to deal with failure.
The only program that can never fail is the empty program, which can also never succeed.
One of the defining traits of very senior engineers is how many different ways computers can fuck up that they have direct experience with.
"ah yes the clock ran backwards, I should have expected this"
You can follow @ReinH.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: