OT: Crazy Programming

Jacob Hallen jacob at boris.cd.chalmers.se.cd.chalmers.se
Mon May 20 10:03:28 EDT 2002


In article <ht91eus6861nu2am7164l8ui9925rmu5sn at 4ax.com>,
Tim Roberts  <timr at probo.com> wrote:
>This is exactly right, and it is an important point.  As long as programs
>continue to be essentially "hand-crafted", we will never be able to build
>reliable large systems.  Only when programming ceases to be art and moves
>into the realm of engineering -- like building a bridge or a building --
>will we get the reliability that we really need in order to create the
>large systems that the twenty-first century demands.

These assertions are all false.

You can build hand-crafted large systems. It requires skill and understanding.

However, what the twenty-first century needs is interoperating small systems.
The fundaments on which Agile Programming is built clearly show that
programming must be a craft, since it contains elements of necessary
improvisation at every level of development. The steel and concrete you
use to build bridges are homogenous materials that can be moulded into
standardised shapes. The points where the bridge connects to the landscape
can similarly be moulded to a suitable shape that accomodates the bridge.

Software on the other hand is build out of ideas that do not come in
standard shapes and it needs to connect to human minds, which are hard
to mould to any desired shape.

Time has shown that large systems have a large range of problems, in
development, use and modification. One of the most important crafts in
software development is therefore the one of breaking large systems into
smaller, autonomous ones that can interact with each other when needed.

Just like it required the development of technology that exceeded humans
in the amount of power output to replace menial labour and technology
that exceeded human precision and human speed in order to replace human
manufacted goods creation, it is going to require an artificial intelligence
that is superior to human intelligence to turn software creation into
an industrial process.

Jacob Hallén

-- 



More information about the Python-list mailing list