[go: up one dir, main page]

|
|
Log in / Subscribe / Register

There is no such thing as

There is no such thing as

Posted Jun 15, 2014 23:30 UTC (Sun) by dgc (subscriber, #6611)
In reply to: There is no such thing as by HelloWorld
Parent article: Quotes of the week

I'm so glad that Mr Dijkstra didn't build bridges.....

Public: "The bridge fell down! Did you load test your design?"
Mr Bridge Designer: "No, mechanical engineering is for people who can't do maths."


to post comments

There is no such thing as

Posted Jun 16, 2014 21:08 UTC (Mon) by HelloWorld (guest, #56129) [Link] (5 responses)

You're implying that what people like to call “software engineering” actually has anything to do with engineering. It doesn't.

There is no such thing as

Posted Jun 17, 2014 1:20 UTC (Tue) by dgc (subscriber, #6611) [Link] (4 responses)

I sense you don't quite understand the difference between programming and engineering. Programming is a *tool* used to build things, engineering is the *discipline* of building things *successfully*.

Indeed, programming is something we are demonstratedly bad at - software fails all the time, everywhere. Hence we need a discipline that wraps our programming tools that minimises failures. That's what software engineering is, and that's how I use it.

Now, go back and read your original Dijkstra quote from this perspective: that the human race cannot program. The meaning is now the exact opposite of what you originally intended it to prove. i.e. in the context of "nobody can program", it implies that we should all be engineering software rather than "programming".

There is no such thing as

Posted Jun 17, 2014 2:20 UTC (Tue) by HelloWorld (guest, #56129) [Link] (1 responses)

> Programming is a *tool*
No, programming is an activity.

> Indeed, programming is something we are demonstratedly bad at - software fails all the time, everywhere. Hence we need a discipline that wraps our programming tools that minimises failures. That's what software engineering is
No, it's not, that's what the quote says. Perhaps you'd like it to be that, but it isn't.

> The meaning is now the exact opposite of what you originally intended it to prove. i.e. in the context of "nobody can program", it implies that we should all be engineering software rather than "programming".
Err… no. That's just nonsense.

There is no such thing as

Posted Jun 17, 2014 14:30 UTC (Tue) by ortalo (guest, #4654) [Link]

Seconded.

BTW, did you know that LWN comments needed to be more than 10 characters?
Initially, I only wanted my comment to consist of the first word; but that builtin constraint obliged me to rethink the issue. On second thought however I came exactly to the same conclusion.

There is no such thing as

Posted Jun 19, 2014 2:06 UTC (Thu) by donbarry (guest, #10485) [Link] (1 responses)

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.

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