From: obelix.informix.com!johnl@emory.mathcs.emory.edu (Jonathan Leffler)
Newsgroups: comp.databases.informix
Subject: I4GL Modifications: Introduction
Date: 22 Jan 1993 19:48:07 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: obelix.informix.com!johnl@emory.mathcs.emory.edu (Jonathan Leffler)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1811>

Dear Everybody,

          *********************************************
          ** SUGGESTED MODIFICATIONS TO INFORMIX-4GL **
          *********************************************

There is a huge document following which is a 3-part shell archive.  It
will have to unpacked in the correct order.  This message consists of the
start of the document -- the preamble before anything really interesting is
said, but you can decide whether you are interested in reading on.

The highlights of the monster document are:

* Detailed proposal for I4GL picklists
* Detailed proposal of modifications to INPUT
* Detailed proposals of modifications to DISPLAY ARRAY
* Detailed proposals of modifications to INPUT ARRAY

Your feedback is sought because the document has also been fed to the I4GL
development and marketing teams -- in fact, they are being sent the same
message as you are seeing.

I'm sorry the result is such a huge document, but I started out to do a
detailed review of the mail that went flying around comp.databases.informix
in late November and December 1992, and by the time the changes had been
collated and expanded into a coherent statement of what was wanted and why
and an indication of how it could appear in the syntax of the language, it
came out that big.  I haven't seen Paul Mahler's list, but I imagine he has
got a similar problem to the one I've got.

Thank you in anticipation of your input.

Yours (very) verbosely,
Jonathan Leffler (johnl@obelix.informix.com)
#include <disclaimer.h>
#include <witticisms.h>
#include <blockgraph.h>

----------------------------------------------------------------------

          *********************************************
          ** SUGGESTED MODIFICATIONS TO INFORMIX-4GL **
          *********************************************

Disclaimer:
    Despite the fact that I work for Informix Software in the UK, this list
    of suggestions does not have any more substance than you care to give
    it by materialising it on your screen, or by placing it on paper.  It
    must not be taken as any sort of indication of an official stance by
    Informix Software.

Most of the suggestions in this list have been collated from the recent
discussions on comp.databases.informix and the mailing list run by Walt
Hultgen (walt@rmy.emory.edu); a few have been collected from other sources.
I claim no credit for the basic requirements stated below, though the
statement below is mainly in my own words.  If people desparately want to
claim the idea, please send me an abbreviated version of this document with
the ideas to which you lay claim suitably annotated.  I will try to include
your claims in any future version of the document.  Bear in mind that more
than one person may have made the same suggestion -- in fact, that is
generally the case.

This is a long document.  To try and help make it manageable, it is split
into several sections.  The first section is the preamble you're reading
now.  The second section is a brief statement of the features -- one line
indicating what is required for each feature.  The items in this section
are rated for plausibility with a letter in the set A-F with A good and F
bad.  An A-rated idea generally fits closely with the existing language,
should be easy to implement, and would be widely used.  An F-rated idea
probably does violence to the spirit of the existing language, would be
hard to implement, and might not be widely used.  This scale is completely
subjective.  The third section expands on each of the ideas in the second
section.  Sometimes it proposes chunk of language syntax; this should be
taken as a suggestion, and you should consider sending in a revised
version.  Whenever you do this, please bear in mind the requirements for
backwards compatability -- this will frequently disallow what would
otherwise be desirable syntax.

Notation: I4GL refers to both Informix-4GL and Informix-4GL RDS.  R4GL
means I4GL-RDS, and C4GL means (compiled) I4GL when a distinction is
necessary.  ID means Informix-4GL Interactive Debuggger, but no suggestions
have been received concerning that.  ISQL means Informix-SQL but does not
figure prominently in the discussion.  The database engines are OnLine and
SE; all of the features discussed here are applicable regardless of which
engine the application uses.  A 4GL facility is a high-level, possibly
non-procedural, construct which is typically to do with screen or database
handling.  A 3GL facility is normally analogous to the features found in an
ordinary programming language such as C, C++ or Ada.  CDI refers to the
newsgroup comp.databases.informix and the mailing list.

Underlying assumption: it is assumed that any program which compiles and
runs correctly under C4GL should also compile and run correctly under R4GL,
and vice versa.

WHAT SHOULD YOU DO WITH THIS MESSAGE?

1: Save it.

2: Read it.  Contemplate it.  Contemplate your navel.  Let me know if you
   find your navel helpful.

3: If you disagree with one (or more) of the ideas in this document, send
   me a message with clear identification of the idea to which you are
   referring (they all have a number -- see below), and why you think it is
   all wrong, and what should be done to fix it.

4: If your favourite idea is languishing in Class D or E or F, then you
   probably haven't made it sufficiently clear what you are asking for.
   Please send revised details to me.

5: If you think something is missing, put together a proposal along the
   same lines as this document, and send it to me.

6: Since it is intended to be a discussion document, please also send your
   idea to the comp.databases.informix for general consideration.  I will
   be pleased to receive non-broadcast mail, but this is for general
   discussion and as more people consider them, the ideas gradually get
   improved.  In this case, the more minds applied, the better.

----------------------------------------------------------------------

BRIEF STATEMENT OF IMPROVEMENTS

A quick count shows about 120 requests.  These have been grouped into
several subsets, and each request has been given a number of the form
I4GL-axx where "a" is a letter indicating which subset the request has been
grouped with, and "xx" is a 2-digit number to identify the request in the
subset.  The number of a request does not reflect its status in any way.

    Engines             I4GL-Exx
    Tools               I4GL-Txx
    3GL                 I4GL-Lxx
    SQL                 I4GL-Sxx
    Reports             I4GL-Rxx
    Menus               I4GL-Mxx
    PROMPT              I4GL-Pxx
    Forms               I4GL-Fxx
    Windows             I4GL-Wxx
    INPUT               I4GL-Ixx
    DISPLAY ARRAY       I4GL-Dxx
    INPUT ARRAY         I4GL-Axx
    CONSTRUCT           I4GL-Cxx
    Picklists           I4GL-Kxx

                    <2200-odd lines of text deleted>