in reply to Re: Re: Algorithms
in thread Algorithms

Programming hasn't yet evolved to the point where our products resemble actual engineering. So what we have is a mess of unprovable code that we can't even guarantee will work as intended.

The main thing that stops programming being as reliable and reproducable as mechanical engineering can be summed up with the term 'metrics'. Software has yet to evolve a reliable and universal system of metrics. And I'm not talking about 'klocs' :)

You can take an engineering drawing (specification) for a mechanically engineered part to any workshop, anywhere in the world, and the chances are that they will be able to produce the 'part', within the specified tolorences reasonably quickly. The thing that allows them to be able to do this is the accuracy of the specification which comes down to the accuracy and universality of the metrics used to define the specification. Inches/millimetres, pounds/foot, Nm, pounds/kilos, etc. etc.

We can write reliable, efficient and interchangable sort routines because the metrics used to define and measure the output are very simple and easily defined.

The specification of a "well designed, easily navigable, clearly presented" webpage, or "well-structured, efficient and flexible" database schema, are considerably harder to specify, measure and agree. The difference is that the metrics of 'well', 'easily', 'efficient' and 'flexible' are all either subjective, or relative, or context sensitive, or some combination thereof.

The person that finds a way of specifying these things, and software in general, in an unambiguous, measurable and universally acceptable way will be my hero.

I won't hold my breath waiting for the discovery though, because I seriously doubt that it will be achieved in my lifetime. The reason for my pessimism is that there are several vaguely comparable fields of human endevour which are similar in nature (IMO) to software that we (the human race) have been practicing for much, much longer than software, but for which there is still no universally accepted specification, development or measurement method vailable.

I'm thinking of good books, good music, good paintings. Even one of the least recognised 'big industries' of this world, fashion, has no mechanism for deciding what is or is not good design and implementation, other than public opinion, and that changes wildly. Have you looked back at the clothes we all thought were cool in the 80s? Never mind the 70's or 60's or 50's should any of us go back that far.