4 ms·
Oh come on, we already know that logical systems cannot even self reconcile it's own promises, as Gödel proved, now someone claim software should be perfect?!
by justicezyx 8y ago
Oh come on, we already know that logical systems cannot even self reconcile it's own promises, as Gödel proved, now someone claim software should be perfect?!
Edit: the original title does not mention perfect.
- TaylorAlexander 8y agoYeah. Original title is “Zig: A programming language designed for robustness, optimality, and clarity – Andrew Kelley” and “Software should be perfect” is much more sensational.
- luu 8y agoIf you look at the video, you'll see that "Software Should Be Perfect" is the title slide of the talk (you don't even have to click play, it's there at the start). And then the first words out of the speaker's mouth (other than a sound check) are "I'm going to try to convince all you that software should be perfect". The "original title" you're referring to is what the person who uploaded the talk to youtube titled the talk, not what the speaker titled the talk.
- porphyrogene 8y agoQuestioning if someone read the article or, in this case, watched the video is against the Hacker News guidelines. If you feel a commenter is not fully engaged with the topic you should decline to continue the thread.
- notacoward 8y agoMeta-discussion is also against the guidelines. Being a rules lawyer is bad enough; don't be a rules hypocrite. P.S. Yes, I know I'm also engaged in meta-discussion now. I can afford it.
- tom_mellior 8y agoThe "original title" is also what this video was posted as five months ago and discussed here: https://news.ycombinator.com/item?id=17184407 https://news.ycombinator.com/item?id=17184407
- audunw 8y agoCome on, a title like that isn’t meant to be taken too seriously. And you’re reaching a bit far. You can write a perfect function that adds two 32 bit integers. There is a subset of code that can be written perfectly. Especially if you don’t need Turing completeness to write it. Zig just tries it’s best to make it easy to write as much as possible of low level code in a perfect way.
- jcelerier 8y ago> You can write a perfect function that adds two 32 bit integers. how ? the problem of adding two 32 bits integers is itself imperfect since you may at some point have big integers to sum, so any solution is inherently flawed, too
- mathgladiator 8y agoSimple, operate in the appropriate mathematical ring. Just because there is overflow doesn't mean it failed.
- int_19h 8y agoThe problem can be perfect depending on how it's stated. If you spell out the contract right, then it can be perfect. Some examples: Given two 32-bit signed integers, produce a 32-bit signed integer that is a sum of the inputs; if the sum doesn't fit into 32 bits, wrap modulo 32 bits. Given two 32-bit signed integers, produce a 64-bit signed integer that is a sum of the inputs. Given two 32-bit signed integers, produce either a 32-bit signed integer that is a sum of the inputs if it fits into 32 bits, or an error code indicating that it did not fit. The problem with languages like C is that they let you be imprecise and get away with in. If you just run with "add two signed 32-bit integers", and implement it as "x + y" in C, it will compile, and it will run, but the result is undefined behavior if it overflows (note: it doesn't even mean that you get the wrong value - it can literally do anything at all). In Zig, if you write it as "x + y", it will panic on overflow, which is at least well-defined and fails fast; and the language provides you with tools to implement any of the three properly defined scenarios above in straightforward ways (i.e. you can add with wraparound, or you can add with an overflow check).
- Ericson2314 8y agoUm, Gödel's incompleteness theorem is not a valid reason not to pursue formally verified software.