I4GL Modifications: Introduction
Posted in 1993
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>