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
   29   30   31   32   33   34   35   36   37   38   39