[go: up one dir, main page]

|
|
Log in / Subscribe / Register

There is no such thing as

There is no such thing as

Posted Jun 19, 2014 2:06 UTC (Thu) by donbarry (guest, #10485)
In reply to: There is no such thing as by dgc
Parent article: Quotes of the week

Dijkstra had much to say on this subject: it's well worth reading.

His argument was that software design was substantially harder than was usually supposed, and that we were/are in the infancy of learning how to do it right. He argued for a highly formal, symbolic approach, which could be verified and proven correct. And he developed quite a bit of mathematical infrastructure towards that end. His methods were used, for instance, when Intel discovered their famous hardware divide bug: the microcode in subsequent processors was "proven" correct through formal means.

Dijkstra maintained that programming was a particularly hard area of applied mathematics -- "the poorer mathematicians had better remain pure mathematicians." He was, of course, trained as a mathematician himself. But he was also a noted programmer and language designer, who advocated for clarity and simplicity above all in language design. He was one of the significant fathers of Algol 60, and personally wrote its (if memory serves, first) compiler, using pen and paper, his ubiquitous tools.

His arguments have proven prescient. The progress of the useful arts is always impeded by what he termed "unmanaged complexity", and he relentlessly warred against it. Other, more mature areas of engineering, have developed tools, methodologies, and theory which has proven quite successful in managing complexity. Computer programming is in its utter infancy compared to them.


to post comments

There is no such thing as

Posted Jun 19, 2014 13:43 UTC (Thu) by etienne (guest, #25256) [Link]

> Other, more mature areas of engineering, have developed tools, methodologies, and theory which has proven quite successful in managing complexity.

I have never really understood why people try to prove that some re-written source lines in some algorithm are correct, instead of the basic design philosophy of never re-writing anything, like in the old Smalltalk environment.
Surely, something which is currently used millions of times per second is working, and you could change the Smalltalk function - if you introduced even the most un-triggable bug you would notice immediately (by a complete crash).
Is that because under Smalltalk you cannot sell a pre-compiled application, you have to give source code, so you cannot sell software? Is that still important in those GPL days?


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds