comp.lang.ada
 help / color / mirror / Atom feed
From: "Richard  Riehle" <adaworks@earthlink.net>
Subject: Re: 7E7 Flight Controls Electronics
Date: Thu, 10 Jun 2004 06:13:23 GMT
Date: 2004-06-10T06:13:23+00:00	[thread overview]
Message-ID: <7_Sxc.8670$uX2.5497@newsread2.news.pas.earthlink.net> (raw)
In-Reply-To: mailman.85.1086832128.391.comp.lang.ada@ada-france.org


"Alexander E. Kopilovich" <aek@VB1162.spb.edu> wrote in message
news:mailman.85.1086832128.391.comp.lang.ada@ada-france.org...
> Richard  Riehle wrote:
>
> > > There are other
> > > ways for structured programming (in general sense), and COBOL was very
well
> > > suited for some of them. For example, if you have ever read
"Principles of
> > > Program Design" by Jackson, you may recall that JSP was quite happy
with
> > > COBOL.
> >
> > Sorry, but COBOL was totally ill-suited to support of well-formed
structures
> > of any kind prior to ANSI-85.
>
> COBOL (even 66) was very well suited to support of well-formed *data*
> structures. As for control structures, oh yes, it did not provide blocks
> (FORTRAN IV also did not provide them - was that FORTRAN stupid also?),
and
> I think it was right choice, PERFORM statements were better in those
> circumstances.

The data structures were consistently global, thereby making the notion of
localization of data impossible.   The fact that FORTRAN also failed to
provide adequate scoping rules for conditional constructs does not make
the same defect in COBOL any more acceptable.

PERFORM was never parameterized and still isn't.  In addition, there
are somewhat awkward rules for the scope of a PERFORM.  We would
frequently do one of two things.  PERFORM THROUGH where we
had a dummy paragraph with an EXIT, or PERFORM by SECTION.
In either case, all data was global and that led to no end of maintenance
errors.
>
> >  Take the horrible model for an IF statement as an example.
>
> Hm, what was so horrible there? I have no bad recollections of that IF.

I have seen no end of trouble with nested IF statements in COBOL, many
of which used the NEXT SENTENCE feature, or worse, a GO TO to
escape from nested structure.   The cure for this was the END-IF.
>
> > Those of us who had to use this half-baked conditional
> > formation recall how easily it led to programming mistakes.
>
> Well, some people like to count mistakes, while others (including me)
prefer
> to consider real counsequences of those mistakes (on a production line).
My
> experience says that these two accounts lead to rather different results.

The need for end of scope for control structures was recognized early in the
design of most other programming languages.  It came late to COBOL.
>

>
> > The fact that Jackson "was quite happy with COBOL" is simply an
indication
> > of the widespread stupidity regarding the shortcomings of the earlier
forms
> > of the language.
>
> Is it a new fashion of political correctness to declare previous
techniques
> and tools that didn't become current mainstream - simply stupid?
>
> >   No intelligent contemporary programmer would want to
> > return to hideous mess of tangled code so typical of pre-ANSI-85.
>
> Well, I can't say for intelligent people (they are so mystically clever,
they
> so easily differentiate and recognize so many puzzling abbreviations -:),
> but in my humble opinion, a hideos mess of tangled systems and products
and
> concepts and standards isn't much better, and leaves even less hope for
> keeping things under control.
>
> > Structures, in the Dijkstra sense, was far more than "GO TO Considered
> > Harmful."   More important, though, are the elementary control
structures
> > of Jacopini and Bohm which, when properly formed, will include scope
> > terminators such as ANSI-85, END-PERFORM, END-READ, END-IF,
> > etc, without which the resulting code is usually a mess.
>
> Well, I prefer another "definition of scope" - that of H. Mills - a module
> that fits into a page, that is, a scope is an amount of code which
directly
> fits into programmer's view.

Well, that is also a rather inadequate definition of a module.  I recall
people
using that definition where they would take a red pencil and simply start
a new module every fifty-six lines.  A module, properly defined, will adhere
to the rules of cohesion and coupling, or follow the advice of Parnas, or
Meyer.   Certainly modules should be short, whenever that is appropriate,
but arbitrary page length or screen length criteria will create more
problems
than it will solve.
>
> > I have written and
> > maintained code written by others, in COBOL 68, 74, and 85.  I would
> > never want to do anything in 68 or 74 again.
>
> Well, if you prefer to deal with magnificient templates, XSSL, SOAP, ADO,
> DRM, Java 1.m.n etc., etc. (at the same time, of course) then it is your
taste,
>
Not sure why you make this comparison since it has nothing to do with COBOL.
I am simply arguing that early versions of COBOL fell short of what was
needed for creating well structured, maintainable code that provided support
for good modularity (e.g., cohesion and coupling) and modern COBOL is
much improved.

> > In my view, COBOL, prior to the ANSI-85 standard was not "very well
> > suited" for writing maintainable, dependable, well-structured code,
>
> Surely. It was just well suited to make programs which ran on production
> lines - certainly with much pain, failures etc., but there was no other
way
> that time, in first place because of incomplete and often
self-contradictory
> specifications/requirements and unreliable hardware.

I have written and maintained so much COBOL over my career that I have
no difficulty remembering the problems with it.  I have also used
contemporary
COBOL and it is lightyears ahead of the earlier versions of the language.
It is interesting to me to realize that, when I was using those
earlier versions of COBOL, I did not understand just how crippled the
language was because I learned all the workarounds.
>
> > Since the ANSI-85 standard, COBOL has become one of the most interesting
> > languages around.  It has corrected the silliness of the earlier
standards,
>
> There was no silliness to correct. COBOL just was adapted to changed
> circumstances - more powerful and reliable hardware, more challenging
tasks,
> more educated/experienced programmers, and better understanding of the
> processes by analysts.
>
Sorry.  But when I compare old-time COBOL with contemporary COBOL,
I see such vast improvements that the older versions look to me now like
primitive cave drawings.   This has nothing to do with improved hardware,
improved programmers, or better processes.  It has everything to do with
a greatly enhanced language definition where I can more effectively create
parameterized modules with call by value or reference,  can create control
structures that have well-defined scope, and can avoid excessive use of
global data.

Richard Riehle





  reply	other threads:[~2004-06-10  6:13 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-29  1:51 7E7 Flight Controls Electronics Jeffrey Carter
2004-05-29 10:21 ` Per Dalgas Jakobsen
2004-05-29 12:58   ` Marin David Condic
2004-05-29 13:35     ` Ed Falis
2004-05-29 17:29       ` Marin David Condic
2004-05-29 17:40         ` Ed Falis
2004-05-29 18:44           ` Marin David Condic
2004-05-29 18:58             ` Ed Falis
2004-05-30  7:55             ` Pascal Obry
2004-05-30 11:43               ` Georg Bauhaus
2004-05-30 16:10                 ` Pascal Obry
2004-05-31 11:56               ` Marin David Condic
2004-05-29 17:48         ` Wes Groleau
2004-05-29 18:53           ` Marin David Condic
     [not found]             ` <n42jb05e8rk7bsrtf2ikesu9t0bsmbphji@4ax.com>
2004-05-31 12:04               ` Marin David Condic
2004-06-06 10:35               ` I R T
2004-05-30  7:50         ` Pascal Obry
2004-05-31 12:25           ` Marin David Condic
2004-06-02 16:45           ` Warren W. Gay VE3WWG
2004-06-02 17:48             ` Martin Dowie
2004-06-03 15:57               ` Warren W. Gay VE3WWG
2004-06-03  0:09             ` Marin David Condic
2004-06-03  1:08               ` Ed Falis
2004-06-03 12:06                 ` Marin David Condic
2004-06-03 12:33                   ` Ed Falis
2004-06-03 16:44                   ` Wes Groleau
2004-06-03 17:52                   ` tmoran
2004-06-04  1:13                   ` Jeffrey Carter
2004-06-04 11:27                     ` Marin David Condic
2004-06-04 18:38                       ` Jeffrey Carter
2004-06-06 21:37                     ` Leon Winslow
2004-06-07 11:08                       ` I R T
2004-06-08  2:22                         ` Richard  Riehle
2004-06-08  9:07                           ` I R T
2004-06-08 11:33                           ` Marin David Condic
2004-06-09 21:02                           ` Robert I. Eachus
2004-06-09 21:22                             ` Ed Falis
2004-06-09 23:30                               ` Richard  Riehle
2004-06-10  2:02                               ` Jeffrey Carter
2004-06-10  2:27                                 ` Ed Falis
2004-06-10 19:54                                   ` Jeffrey Carter
     [not found]                             ` <28rfc01rhesdk2qt27krrr65nnk0n0kihc@4ax.com>
2004-06-12  3:01                               ` non sequitur Robert I. Eachus
2004-06-11 16:51                           ` 7E7 Flight Controls Electronics (COBOL Popularity) Warren W. Gay VE3WWG
2004-06-11 17:18                             ` Marin David Condic
2004-06-11 18:49                             ` Richard  Riehle
2004-06-11 19:07                               ` Marin David Condic
2004-06-11 20:39                               ` Warren W. Gay VE3WWG
2004-06-12 11:16                                 ` Georg Bauhaus
2004-06-11 21:05                             ` Frank J. Lhota
2004-06-14 12:46                               ` Warren W. Gay VE3WWG
2004-06-07 11:19                       ` 7E7 Flight Controls Electronics Marin David Condic
2004-06-07 22:24                         ` Alexander E. Kopilovich
2004-06-08  1:11                           ` Marin David Condic
2004-06-08  2:35                           ` Richard  Riehle
2004-06-08  6:59                             ` tmoran
2004-06-08 19:44                               ` Wes Groleau
2004-06-09  1:32                             ` Alexander E. Kopilovich
2004-06-09  6:23                               ` Richard  Riehle
2004-06-09  7:09                                 ` Martin Dowie
2004-06-10  1:41                                 ` Alexander E. Kopilovich
2004-06-10  6:13                                   ` Richard  Riehle [this message]
2004-06-11  2:03                                     ` Alexander E. Kopilovich
2004-06-12  2:31                                     ` Robert I. Eachus
2004-06-15 16:07                                       ` Richard  Riehle
2004-06-09  7:54                               ` Dmitry A. Kazakov
2004-06-09  6:31                         ` Robert I. Eachus
2004-06-09  9:43                           ` I R T
2004-06-09 15:28                           ` Jerry Petrey
2004-05-29 15:58     ` Preben Randhol
2004-05-29 17:45       ` Marin David Condic
2004-05-29 17:51         ` Ed Falis
2004-05-29 19:55       ` Jeffrey Carter
2004-05-30  7:57       ` Pascal Obry
2004-05-30 18:35         ` Richard  Riehle
2004-05-31 12:38           ` Marin David Condic
2004-06-04 12:56           ` Warren W. Gay VE3WWG
2004-06-05  8:49             ` Pascal Obry
2004-06-06 10:27 ` I R T
  -- strict thread matches above, loose matches on Subject: below --
2004-05-30 10:34 Rod Chapman
2004-06-03  8:18 ` Vernon Brown
2004-06-03 10:45   ` Martin Krischik
2004-06-03 15:52   ` Richard  Riehle
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox