Tuesday, September 22, 2009

Some more thinking about the three concepts of programming

Consider the last of the three principles of programming:
Endurance recalls the fact that coding is not only "pressing a button to compile", but also making sure that thet code you have been writing works as it is supposed to.
Debugging is a tedious process. Basically, it consists in checking the functionality that has been added within the coding phase. The (stupid) machine is not able to go through it by itself AND at the same time evaluate the correctness of it. Sure enough, the activity can be automated through some testing code, but that again translates in (as the name says) more coding.
Now, without diving into the details of testing - how much of this process can we automate without writing any additional code?
Consider this situation : the perfect solution would be the machine itself knows what she has to test out of the box. That would mean the machine knows the behaviour of our software artifact already before it would had been written (possibly), which in turn would get you to think that hey, the machine could write that piece of functionality by itself! if it already knows the nature of the functionality, correct?
This already sounds hidious, doesn't it? You realize where it is heading, or? Exactly, it tastes alot like the good old "dog biting tail" paradox.

No comments: