Page 34 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 34
A Brief History of Software Concepts
The GUI revolution
As conventional languages became more complex, and development cycles became
ever shorter, programmers began to covet more powerful ways of programming than
typing into a text editor. At first, text editors were modified with special features
that made them more efficient. For example, programming editors could call the
compilers and linkers to speed testing of new code. The programmer was only made
aware of mistakes when this was done, so many simple typing errors would still
accumulate before being discovered.
Additionally, the early programmer was forced to either remember an incredible
number of variable names and symbols, or to continually leave the editor to search
for the desired label. This process led to many errors that would be discovered at
compile time, and many that survived to plague actual operation.
Flashback…
I well remember an inspection I made in the early years of a new installation that con-
tained thousands of handwritten robot programs. The programmers had been at the
project so long that they had developed a “thousand yard stare” similar to that seen in
soldiers who have been under artillery fire for a few months.
As I stood watching a robot approach me, I became suspicious of its boldness in the
confines of the area. At the last minute I realized it was singularly unimpressed with my
presence and intended to run me over.
Upon reviewing the handwritten programs we found that the programmer had substi-
tuted the label “fast” where the label “NC” should have been. As a result he had instructed
the robot to execute the next 250 path segments without worrying about collision avoid-
ance! At that moment I had an epiphany about GUIs, interlocks, and expert programming
2
aids .
At first GUIs were developed for applications intended to be used by nontechnical
people. As GUIs began to appear for these applications, the potential usefulness of
the concept to programming environments quickly became apparent. Languages
such as Visual C++ and Visual Basic appeared and gained favor. As an additional
advantage, GUI interfaces had a metaphoric fit with the object-oriented language
concepts that were to become dominant in high-level languages. The graphical
interface was the perfect way to represent and manipulate objects.
2 To quote Erwin Rommel, “Mortal danger is an effective antidote to fixed ideas.”
17

