Linked by Thom Holwerda on Tue 13th Jun 2006 12:08 UTC, submitted by Mapou
General Development "There is something fundamentally wrong with the way we create software. Contrary to conventional wisdom, unreliability is not an essential characteristic of complex software programs. In this article, I will propose a silver bullet solution to the software reliability and productivity crisis. The solution will require a radical change in the way we program our computers. I will argue that the main reason that software is so unreliable and so hard to develop has to do with a custom that is as old as the computer: the practice of using the algorithm as the basis of software construction. I will argue further that moving to a signal-based, synchronous software model will not only result in an improvement of several orders of magnitude in productivity, but also in programs that are guaranteed free of defects, regardless of their complexity."
Permalink for comment 133012
To read all comments associated with this story, please click here.
Straw man: unresolved dependencies
by DHofmann on Tue 13th Jun 2006 16:33 UTC
DHofmann
Member since:
2005-08-19

"The biggest contributing factor to unreliability in software has to do with unresolved dependencies... every time a property is changed by a statement or a subroutine, it is up to the programmer to remember to update every other part of the program that is potentially affected by the change."

This isn't a necessary aspect of software, it's evidence of badly designed software. If your code contains global variables, "magic numbers" or string literals, then of course there will be unresolved dependencies when you make changes to one part of the code.

A good programmer writes orthogonal, loosely-coupled routines that don't exhibit the symptoms the author identifies as reasons why software is bad.

Reply Score: 1