CMP's TechWeb
spacer
spacer Click Here!
spacer
spacer
 Write to Byte
 Editorial Calendar

 Categories
 Previous Weeks
 Columns
 Features
 Audio

 Search:
Byte
Research Center


 Resources
 WebTools
 Java Resources
 Downloads
 History Of Byte

 BYTE Humor
 Ian Shoales' Page

 Print Archives
 By Issue    By Topic

 About Us
 Byte Editorial Staff
 Sales Staff
 Privacy Policy


Sponsored by:
Click Here!

TechWeb Sites
 Bank Systems
     & Technology
 CMPmetrics
 eBusiness Expo
 File Mine
 InformationWeek
 Insurance & Technology
 InternetWeek
 Network Computing
 PC Expo
 Planet IT
 TechCalendar
 TechEncyclopedia
 TechLearning
 TechReviews
 TechWeb News
 TechWeb Today
 Wall Street & Technology

 Ad Info

spacer
infielder

The Missing Element
(Evolution Of Programming Methodology, Part II, Page 2)

By Bill Nicholls

March 27, 2000

In This Article
  Evolution Of Programming Methodology, Part II

  The Missing Element

  MVC Changes The Conceptual Level

  Structure Of The Universe and Programming

  It's A BIG Job

Print This Article
In a Unix class system, programming power comes from the ability to select from all three generations of tools and string them together to accomplish a task in the most expeditious manner.

This capability has been used since early days, and it is still one of the key elements to programming power. Even today, these tools remain isolated and non-othorogonal with varying I/O requirements. Thus the selection and assembly can only be done by a knowledgeable programmer. While some of the tools are past first generation, the assembly process is still first generation.

Here is the dilemma a programmer faces. To get good performance, details are important and take time to get right. Commercial software is time-to-delivery sensitive, and this requirement conflicts with building high-performance software. What really makes a programmer's job difficult and slow is the wide variety of programming techniques and skills in a typical team. This increases time spent by team members communicating details and resolving conflicts. Productivity is further aggravated by high programmer turnover rates that remove the trained people after they become most productive.

The core of the productivity problem is the level of detailed handwork required to specify a program. Multiply that by the need to coordinate every interaction between components and the task grows exponentially as the program grows. This problem also affects the other steps of documentation, quality assurance, and training.

Some help for the programmer has arrived with the use of concepts called Model-View-Controller (MVC), Objects and Patterns. But the lack of a unifying structure to make these concepts work together means that it must be done by people doing detailed designs and lots of handwork. Even with modern IDE, there are still too many detail decisions required to build a program.

Why? Colleges teach computer science with only secondary attention to the actual programming process. Since the science people are usually interested in solving challenging theoretical problems, the practical problem of improving programmer productivity gets little attention.

What appears to be missing is the engineering approach in the field of programming. An engineering approach requires a certain level of experience and knowledge of the industry techniques before working independently. This process is similar to the apprentice system in older crafts. Engineering can also be described as building on what works regardless of whether you know why it works.


 

    <<<Previous Page     >>>Next Page



CMPnet spacer Click Here!