× 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.


  • Subject: Is this the Free-Format that we asked for?
  • From: "John Taylor" <john.taylor@xxxxxxxxxxxxxxx>
  • Date: Wed, 1 Nov 2000 15:00:59 -0700

Folks,

News/400 is hosting a feedback forum related to the new enhancements within
the upcoming release of RPG 5. The forum is sponsored by IBM, and includes
the participation of both Barbara, and Hans.

As most of you are aware, the biggest enhancement to the new release is the
free-format "CF-spec" that has been discussed at length on this list. Here
is an example, straight from an article written by George Farr, of how we
would code the new free-format statements:


/free

    Read(n) MASTER;
    If (not %EOF);
      /copy something
         For i = 0 to num;
              x = y(i);
         EndFor;
    EndIf;

 /endfree;

I'd like you to take notice of the semi-colon at the end of each statement.
According to the new rules, each program statement MUST terminate with a
semi-colon - ala C/Java.

The only reason that Java required this at all is because it was designed to
closely resemble C syntax, in order to facilitate adoption of the language
by existing C programmers. Why C had it in the first place is beyond me. But
now we're being shackled with the same superfluous baggage.

There is no shortage of free-format languages that have managed to do the
job without requiring the programmer to type an explicit end of statement
character. Why does RPG need one? Think about this folks. EVERY SINGLE LINE
of code needs the new terminator. How many extra keystrokes will that amount
to in a given day of coding? And what is it gaining you? NOTHING!

One other point that should be brought to your attention is the elimination
of the GOTO statement from the free-format specifications. How many of you
have code that looks like this:

P   DataOk       B
                             PI               N

 *  Clear error conditions
C                         Clear              GlobalErrStruct

 *  Perform an edit
C                         If        Not SomeCondition
C                         Eval        MsgID = 'ERR1000'
C                         Eval        MsgData = 'MyDiagData'
C                         Eval        CursorOnField1= *On
C                         Goto       Proc_Error
C                         Endif

*  Perform a bunch of other edits

   * Clean up & Exit
C                          Return       *On

   * Errors found
C  Proc_Error       Tag
C                           Eval      GenErrorID = *On
C                           CallP     SndDiagMsg( MsgID: MsgData: '*CALLER')
C                           Return     *Off

P  DataOk            E


Granted, it's not the only way to accomplish the goal, but (IMO) it is clean
and simple. You may choose to do it using nested IF's, or one big SELECT, or
a handful of other ways. But the point is that you have a choice. Now, IBM
has decided to take away one of our choices in the matter.

If any of you have an opinion with respect to either of these limitations, I
urge you to speak up now. Once released, the chances of us getting this
changed will be slim for the GOTO, and absolutely NONE for the statement
terminator.

Ideally, you can participate in the feedback forum at www.as400network.com
to share your opinions. If you can't do that, then please share them on this
list; since we know that Hans & Barbara monitor it.


Regards,

John Taylor
Canada

+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.