

                       Programming for the Masses

            Are You Going To Be a Computer Programmer Soon?
                        (c) 1995 by Herb Chong

  Take a look at the major applications you use on your computer! What's
  different about them from the applications people used five years ago?
  They certainly are bigger,  fancier, look better, and do more things than
  would have been possible then. Computer processor power has grown at a
  phenomenal rate, and with it, the processor power demanded by applications
  run on the computers. Other types of changes have also happened, at least
  in the larger applications. A family of applications from a single vendor
  have finally started sharing common components so that, as the vendor
  hopes, when you install a family of their applications, less disk space is
  taken up than you would otherwise expect.

  The application vendors are not doing this out of the goodness of their
  heart. They are doing it because it saves them money and makes them more
  money. Using only one component, such as a spell checker, across all their
  applications saves time and money during application development. Using
  common components also contributes to a unified look and feel. Users like
  that because they dont have to learn different ways of doing the same
  thing for each application. They will likely buy a group of applications
  from a single vendor than separate ones from separate vendors.

  This style of application development, which I will characterize as one of
  using software components, is not all that new an idea. To one degree or
  another, programmers have been doing this since before computer
  programming was recognized as a separate science. Its just that the
  components have now both grown and separated into the kinds of objects
  that ordinary people can relate to, like a spell checker, a graphing
  package, or other such elements.

  Some time after the first interactive applications were designed, it
  occurred to programmers that, for certain tools, not only could they
  design functions into the application, they could design the applications
  so that the ordinary user could make changes in how the application
  worked. At first, this was a static kind of thing. A user could change
  upper and lower case in text fields, decide where printed files could go
  to, and so on. It took a while before an ordinary user could tell the
  programs to do something depending on what data it had to work with. This
  was the beginning of end-user programming. In the personal computer
  industry, the one of the first, and certainly most important, example was
  Visicalc.

  What was so special about Visicalc? It was something more than just a
  program that made accountants lives easier. It was the first really
  widely used programmable application. All the rules for operating on the
  data in the spreadsheet cells werent made up for the user by some
  programmer in some other office or company. The rules were made up by the
  person who had the data and knew what they wanteddone to it. Every time
  they typed a formula into a cell, they were defining a rule for how to
  operate on input data and produce output data. Once the rule was entered,
  it didnt change until the user decided that it would be changed. The data
  might change often though. This notion of rules and data is the foundation
  on which computer programming is built. Anyone who has ever entered a
  spreadsheet formula is a computer programmer. In all likelihood, it
  includes you.

  Spreadsheet users are just the earliest, and still the most ubiquitous,
  example of the diffusion of programming into everyday computer use. Other
  trends in computer software are headed that way too. Although OLE isnt
  quite here yet, no matter what Microsoft says, the idea of dragging and
  dropping components (OLE objects) into other components (documents) is
  also programming. Someone who does this is assembling a single, larger,
  piece of information from smaller pieces, and according to definite rules
  of assembly and interaction. The components might be passive, like a graph
  or a document, or active, like a database query that runs every time you
  open the document. It is even possible to have components update
  themselves based on events outside the system if they monitor
  communications lines or have other means of external communication
  whenever they need it. At is roots, this is all that is the science of
  programming, the formulation of rules and procedures of data manipulation.

  Applications today already starting to work this way. Applications in the
  future are going to work more this way. Windows 95 and OS/2 are using more
  and more component technology to both slim down the individual parts of
  the system but also to make available a richer set of components for the
  user to build into their applications the way that they need the
  components to assembled. Choosing the components and assembling them
  qualifies as programming. The programming isnt to produce a program that
  manipulates data, its to produce the kind of data needed at the time.

  Component programming is the ultimate in customizable applications. Every
  unique combination and juxtaposition of components in a single document
  becomes a new application. It may not look that different from other
  applications, but because it performs a unique combination of data
  manipulation, it is a new specialized application aimed at solving one
  particular problem and may or may not have the programmer as its only
  user.

  This way of programming isnt how the majority of those that call
  themselves computer programmers today work. Professional programmers as we
  know them will become more and more the designers and writers of
  components that other people will use. Components will become specialized
  into single purpose entities, like spell checking and charting, and it
  will be the users responsibility to assemble the right components in the
  right arrangement to solve the problem at hand. The skills needed to
  design and build the components is rising rapidly and will continue to
  rise for quite some time to come. The skill needed to assemble components
  and solve problems is dropping rapidly.

  So, will you be a programmer soon? If you use a computer for a living, you
  might already be one. If not, youll soon become one, because applications
  are being designed so that the only way you can work with them is to
  program them.


  Herb Chong is the Contributing Editor of WindoWatch.  He is well known on
  the CIS Win95 forum as well as the various BBS nets. He has been associated
  with Windows Sources and The Cobb Group's Inside Microsoft Windows. A brand
  new article of Herb's which he calls "Needles and Haystacks" can be found
  on the WindoWatch homepage.

        http:/www.channel1.com/user/winwatch/WindoWatch.html

  For those who don't have Internet access, we will republish the article in
  this Issue (#4) of WindoWatch.


                               ww


