<br><br><div><span class="gmail_quote">On 4/18/07, <b class="gmail_sendername">Taillefer, Troy (EXP)</b> <<a href="mailto:email@example.com">firstname.lastname@example.org</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>I have to strongly disagree with the statement that developers like to<br>debug. Debugging is necessary because you can't reason about any<br>"sizeable" piece of code just is not tractable even in Haskell. Now
<br>automated tools for reasoning about programs are very cool but lets face<br>it no real world developer will sit down start to manually formally<br>reason about large pieces of code.<br><br></blockquote></div><br>I think the emphasis when mentioning "reasoning" really shouldn't be "you can reason formally about your programs and prove that they don't go wrong", nor "when it has gone wrong, you can reason about the program to figure out why", it should be "since the language doesn't do batshit insane things behind your back, your programs will mostly work the first time".
<br>The "reasoning" isn't an active task that you schedule time for, at least for a casual user like me, it's part of the actual programming. You do "reasoning" when writing in C++ as well, but you often get it wrong (because the language is, shall we say, unreasonable?) and that causes bugs.
<br clear="all"><br>-- <br>Sebastian Sylvan<br>+44(0)7857-300802<br>UIN: 44640862