× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Wow... talk about being a little - mmm- forceful? 

Scott has a lot of points going for him. I point out that a closer analogy
would be the English language as spoken in the U.S. today and in 1906. They
are both clearly the same language, U.S. English, but there are THOUSANDS of
words in the common vocabulary today that were not in the language a mere
hundred years ago, and many idioms of that time would be senseless to us
today, or at least mean something completely different. 

Example: Everyone today knows what SOS means. "Send an SOS!" has been common
verbiage in the language for a long time. But in 1906, you would have gotten
blank stares and strongly worded requests to 'make sense'. The code was
adopted on Nov 22 1906. And it does not mean "Save Our Ship" or "Save Our
Souls". It was just an easy to remember pattern... 

Today, a computer is an electronic instrument - but until the 1960's a
'computer' was a person who did computations. Often with the aid of a
monster mechanical appliance like and adding machine... but still a person. 

Language evolves. And RPG as a language needed to evolve from it's
beginnings, which were very primitive and not capable of being used in the
way RPG is commonly used today. 

So basically, RPG *without* the cycle is RPG used to handle things that the
RPG is simply unsuited to handle - like event driven windows programs. 

And RPG with /FREE syntax is RPG that retains it basic identity, just like
English has for the last 100 years, but is far richer and able to express
information about contemporary issues. 

Some things we will like, some things we won't, but it will either evolve or
die. The RPG available on OS/360 would write reports just fine - but drive
an interactive program? Not a chance. 

-Paul


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of James H H Lampert
Sent: Sunday, December 10, 2006 9:01 PM
To: RPG programming on the AS400 / iSeries
Subject: spam: Re: Does anyone use indicators anymore?

Scott Klement <rpg400-l@xxxxxxxxxxxxxxxx> wrote:

Take a look at the first model of telephone released by
Bell.  Then look at today's cell phones.  They don't look
anything alike, do they?  But they're still called
telephones.

Take a look at the cars that were originally made
popular in the early 1900's, and then look at todays
cars.  They look nothing alike, yet are still called cars.

Scott, you should be ashamed of yourself! We're
programmers. We specialize in logic. We should be above
such obvious fallacies as the False Analogy, and yet you
answer me with a whole string of them!

Just to take the first two.

No, a modern cellular telephone doesn't look or work
anything like a c. 1880 wood-box wall phone (the kind with
2 bells and a carbon mic sticking out of the front, a
crank on one side, and an earpiece on the otherside). Or a
1919 "dial candlestick" model. Or the sort of landline
phones we've been using for over 3 quarters of a century,
with the mic and earpiece in a common handset.

But everything I've mentioned shares a few common
characteristic properties that define (both conceptually
and operationally) what a telephone IS. It is an
electronic (this rules out speaking tubes) device for
transmitting private conversations (which rules out CB,
Ham, and commercial radio) by full-duplex (that rules out
cellular push-to-talk systems that simply emulate what a
simple handie-talkie does) audio (which rules out even
full-duplex telegraphy) over a distance. It is THAT, and
NOT APPEARANCE, CONSTRUCTION, OR EVEN TECHNOLOGY (beyond
basic electronics) that defines "telephone-ness."

Likewise, whether you're talking about a c. 1890 Duryea,
or a curved-dash Oldsmobile, or a Model T Ford, or my own
1998 Toyota Camry, or a formula-1 race car, all
automobiles are partially or completely enclosed (which
eliminates motorcycles) mechanically-propelled (which
eliminates a horse and buggy, but accepts all
non-biological sources of motive power) vehicles (which
eliminates riding lawnmowers and ice resurfacers, for
which "vehicle" is not the primary function, but merely a
means to the end of cutting grass or ice) that can carry a
driver, and optionally a small number of passengers and/or
a small amount of cargo (eliminating trucks, which carry
large amounts of cargo, and tractors, which pull farm
equipment, possibly supplying it with mechanical, electic,
or hydraulic power) at street-legal or greater speeds
(eliminating golf and maintenance carts), on ordinary
roads (eliminating trains and trolleys) without any
predetermined route (eliminating buses). None of the
differences between a modern automobile and what Daimler
and Benz built in 1885 affect their "automobile-ness" in
the slightest.

Programming languages are defined by certain
characteristic properties as well. Like natural language,
they're defined by vocabulary, syntax, and semantics; in
addition, they are also defined by their capabilities.
FORTRAN is defined by a free-format syntax (traditionally
constrained to the range from columns 7 and 72) based
largely on algebra, by each procedure (whether main,
subroutine, or function) being almost entirely isolated
from all others, by an impressive mathematical palette,
and by built-in I/O statements that traditionally include
format-statement-directed and namelist-directed I/O (even
if list-directed free-format I/O has since been grafted
on.

COBOL, similarly, is defined in terms of vocabulary,
syntax, and semantics that is, in effect, a stylized form
of Business English, designed to be self-documenting and
as understandable as possible for non-programmers. Thus,
for a simple calculation of subtracting a credit from a
total, while it is certainly possible to use a COMPUTE
statement
     COMPUTE TOTAL = TOTAL - CREDIT
such constructs are frowned upon for simple calculations,
and the more idiomatic (and understandable to the
non-computer-literate)
     SUBTRACT CREDIT FROM TOTAL
is preferred. COBOL is also defined in terms of the
ability to define record structures hierarchically, and by
a highly ordered source format broken down into
"divisions." The ALGOLs (including Pascal) are defined in
terms of making the actual language itself as small as
possible, with everything other than assignment and
branching treated as direct calls to runtime routines, and
in terms of defining "=" as the equality operator, and
":=" as the assignment operator. PL/I is defined by its
extreme inclusiveness, while C and its derivatives are
defined in terms of their case-sensitivity, their use of
naked pointers as strings, and the ease with which one can
screw up in them (excepting, of course, Java).

The things that make RPG RPG, in my assessment, are the
unique syntax, the ability to call external programs whose
names are not known at compile-time, its rich palette of
report-generation functionality and above all else, The
Cycle.

One need not use level breaks, or any other
report-specific features of The Cycle, in order to use The
Cycle. At its root, it is simply a "do until told to stop"
loop in which all RPG programs live. If you define a
Primary File, then The Cycle will read the next record
from that file with each iteration, and an EOF condition
on the fill will tell the program to stop. Otherwise, you
have to tell it to stop some other way, such as turning on
LR in response to a particular AID key, or doing a RETURN
at the end of only one iteration.

What you DO with the implicit do-until-told-to-stop loop,
or with records automatically read from a primary file IS
YOUR OWN BUSINESS. A Cycle program doesn't have any more
need to use level breaks (I don't think I've ever done so,
and I've written over a dozen Cycle programs), or any
other report-specific constructs, any more than a
non-Cycle program has any need to do so.

But getting back to the syntax, if you're NOT USING
TRADITIONAL RPG SYNTAX, and you're NOT USING THE ABILITY
TO CALL PROGRAMS WHOSE NAMES ARE NOT KNOWN AT
COMPILE-TIME, and you're NOT USING THE CYCLE, then what
are you bothering using RPG for at all? And if RPG/Free is
not even recognizable as RPG code, and indeed, it looks
more like PL/I than RPG, then why does IBM persist in
calling it RPG? Why not give it a name that reflects its
nature of going beyond RPG, much the same way
object-oriented derivatives of C are called by such names
as Objective C, C++, C#, and (of course) Java?

--
JHHL
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.