It's A BIG Job
(Evolution Of
Programming Methodology, Part II, Page 5)
By Bill Nicholls
March 27,
2000
Creating
the MIL and constructing a PSB is almost certainly beyond
one person or a small group. New tools, standards, and
programs must be developed to automate the detail work of
programming.
The routine of typing in every character in a program one
at a time is far too slow and error prone. The difficulty of
good internal design for a program should not be left in
human hands, but given to programmed tools.
PSB does not replace the programmer, it raises the level
at which the programmer works. The upside of such an
approach is that programmer productivity would rise
substantially, by large amounts for common tasks. Errors
would diminish by similar amounts because of reuse of
objects and elimination of interface mistakes. More complex
jobs could be undertaken by smaller teams, with faster
results. One of the best examples of a part of PSB
capabilities is the programming system called Python. See http://www.python.org/ for
access to the latest programs and libraries.
At first glance, there seem to be no downside to such a
tool. There will be speed bumps on this road to programming
nirvana. Starting with the development of a new MIL for the
type and interfaces of the components, new tools to build,
analyze, and test existing and new components for
compliance. It is likely that a lot of current components
will have to be rebuilt or scrapped in the light of the new
tools and approaches. Conversion tools will be important for
a decade or more as older programs are replaced.
Training will be a long-term effort, and getting
programmers who are addicted to tweaking every bit and byte
to let go of that level of detailed control are two human
problems. How long it will take to remedy that is
unpredictable. Even more, it will take some courageous souls
to step up to the plate and take a swing at dramatically
changing the way programming is done.
It is time to grow out of the craftsman era of
programming. Construction-engineering design is based on
form and function, using details like strength of materials,
cost, and availability for selection of components.
Programming construction should move toward the engineering
concepts of form and function and away from the hand design
and building each piece of code. Craftsmanship belongs in
the artistic endeavors of design, not in the detail work of
joining bricks with mortar, or lines of instructions.
Some early steps in this direction can be found in the
and with
Bill Nicholls was
educated as a physicist, but early in his college career
became seduced by the computing side of the force. Since
then, he has badgered mainframes, minis, and micros into
mostly doing what he wanted, though with varying degrees of
difficulty. Software has always been his primary interest,
from writing an OS to applications. Don't ask him to do
another payroll though.
For more of Bill's columns, visit the Utility
Infielder Index.
<<<Previous
Page