brr@abcom.ATT.COM (Rao) (06/27/90)
In a recent posting, I had inquired about the availability of 5GLs and their usage. I received several inquiries on 5GLs and what they were supposed to be. I have extracted the following paragraphs from an article by Jessica Keyes in Database Programming and Design: (without their/her permission) ... It (5GL) should run on UNIX, the operating system chosen for most advanced systems. It should be portable to other operating environments; after all distributed processing is the name of the game. Applications run on PCs, minis, and workstations as well as on mainframes. ..... From the programmers perspective, the 5GL should have a straightforward, easy-to-use engineering workbench. This prodoct should have a rich data dictionary that not only stores data types and field sizes but is robust enough to perform mathematical and logical functions. ... Our 5GL needs an interface that consists of something the business user understands: forms. ................. This article also stresses the need for having the "conceptual schema" capability, which can be mapped against the database tables or files to build an internal schema for the user's transaction. The question still remains, what other features should a 5GL include? -bindu rama rao
normb@sequent.UUCP (Norm Browne) (06/28/90)
In article <1192@abcom.ATT.COM> brr@abcom.ATT.COM (Rao) writes: > The question still remains, what other features should > a 5GL include? My last response to this request was a quip upon which I will now expand. What is a 4GL? [For if we can't define that what is the point of speculating about a 5GL?] A 4GL is a programming/development environment of a higher abstraction level than is typical of 3GLs. A 4GL is not a general purpose computing language. A 4GL is available only from one vendor though it may be available on many hardware platforms and support more than its own DBMS. 4GLs are typically database specific; which is not necessarily bad, but is all computing database oriented? Is a 4GL even a language? Not ABF, or SQL*Forms, or Accell which are forms driven, whereas Focus, Informix 4GL and Progress are more `language' like. Is a 4GL both an end user and programmer tool? Does it make sense for it to be both? If not, which is the appropriate role for a 4GL (and consequently a 5GL)? All of this is not to disparage any products I have mentioned (or any I have omitted), as they have value. My point is that there is not one iota of consensus as to what makes a piece of software a 4GL. Given this, why even bother trying to define what a 5GL might be? [Or as I said before, a 5GL should do what you want, not what you tell it.] ..NB ..disclaimer: not the opinion of Sequent... blah, blah, blah
jkrueger@dgis.dtic.dla.mil (Jon) (06/28/90)
normb@sequent.UUCP (Norm Browne) writes: >there is not >one iota of consensus as to what makes a piece of software a 4GL. >Given this, why even bother trying to define what a 5GL might be? Agreed. `4GL' is largely marketing hype, `5GL' purely so. And if you don't believe that, I've got a 6GL I'll sell ya. Yours is only a 5, right? Well, this one goes to 6, you see, so it's better. What? An advanced 5GL turbo plus? :-) :-) :-) History lends perspective. To call FORTRAN an "automatic programming system" today would raise a few eyebrows -- and yet it was the first one, in the usage of the 50's, 60's. Wrote your program for you! All you did was write your formula in algebraic form. Now it's just another "programming language", and according to many we're still trying to get one good one that's widely available. I suggest that in another 30 years the use of `4GL' to characterize today's user interfaces to databases will get a smile; references to `5GL's will provoke hails of derisive laughter, Bruce. -- Jon -- Jonathan Krueger jkrueger@dtic.dla.mil uunet!dgis!jkrueger Drop in next time you're in the tri-planet area!
dgh@unify.uucp (David Harrington) (06/28/90)
In article <37595@sequent.UUCP> normb@sequent.UUCP (Norm Browne) writes: >In article <1192@abcom.ATT.COM> brr@abcom.ATT.COM (Rao) writes: > >> The question still remains, what other features should >> a 5GL include? > >My last response to this request was a quip upon which I will now >expand. > >What is a 4GL? [For if we can't define that what is the point of >speculating about a 5GL?] This is a good question. > >A 4GL is a programming/development environment of a higher abstraction >level than is typical of 3GLs. A 4GL is not a general purpose computing >language. A 4GL is available only from one vendor though it may be >available on many hardware platforms and support more than its own DBMS. >4GLs are typically database specific; which is not necessarily bad, but >is all computing database oriented? A 4GL is definitely a development environment of a higher abstraction level than a 3GL because it consists of 2 major elements: an applications generator, or forms builder, AND a language which (to a certain extent) abstracts data so that the application can concentrate on the problem at hand, rather than OS and file system overhead. > >Is a 4GL even a language? Not ABF, or SQL*Forms, or Accell which are ^^^^^^ ACCELL/SQL is forms driven, AND it contains a full-featured 4GL to extend the (not inconsiderable) functionality of the forms. The 4GL is event-driven and includes embedded SQL. The language is block structured, with procedure blocks (code sections in ACCELL parlance) driven by events captured by the forms. >forms driven, whereas Focus, Informix 4GL and Progress are more >`language' like. Is a 4GL both an end user and programmer tool? >Does it make sense for it to be both? If not, which is the appropriate >role for a 4GL (and consequently a 5GL)? Probably not. However, it should be powerful enough for the developer to build in end-user selected behaviour. > >All of this is not to disparage any products I have mentioned (or any >I have omitted), as they have value. My point is that there is not >one iota of consensus as to what makes a piece of software a 4GL. >Given this, why even bother trying to define what a 5GL might be? >[Or as I said before, a 5GL should do what you want, not what you tell it.] A good reason to bother with defining a 5GL is the advent of object oriented programming. -- David Harrington internet: dgh@unify.UUCP Unify Corporation ...!{csusac,pyramid}!unify!dgh 3870 Rosin Court voice: (916) 920-9092 Sacramento, CA 95834 fax: (916) 921-5340
davidm@uunet.UU.NET (David S. Masterson) (06/29/90)
In article <37595@sequent.UUCP> normb@sequent.UUCP (Norm Browne) writes: In article <1192@abcom.ATT.COM> brr@abcom.ATT.COM (Rao) writes: > The question still remains, what other features should > a 5GL include? What is a 4GL? [For if we can't define that what is the point of speculating about a 5GL?] Taking this to its logical Nth degree, what are all the other GLs? And in answer to that, take this (naturally, there is some overlap in these, but, then again, nothings perfect :-)-: 1GL - communication with machine in its terms (aka. machine language) 2GL - machine communications in a more understandable manner - mnemonics (aka. assembler) 3GL - description of a solution to a problem through the procedural methods of achieving a solution in a manner a human would understand (human describes inputs, procedures, and outputs). 4GL - description of a solution to a problem by the characteristics of what the proper output would look like and not through the procedure for finding the information for the output (human defines inputs and outputs with what is desired, but machine determines procedure). 5GL - description of a solution to a problem by the characteristics of what makes up a good solution to the problem (human describes inputs and what is desired, but machine determines procedure and best method of output). 6GL - description of a problem that leads machine to conclude what is required to be done, how to achieve it, and what is needed to achieve it. 7GL - at this stage, the machine begins reasoning for itself and making conclusions based on early problems about what future problems will need to be solved. -- =================================================================== David Masterson Consilium, Inc. uunet!cimshop!davidm Mt. View, CA 94043 =================================================================== "If someone thinks they know what I said, then I didn't say it!"
jkrueger@dgis.dtic.dla.mil (Jon) (06/29/90)
cimshop!davidm@uunet.UU.NET (David S. Masterson) writes: >And in answer to that, take this (naturally, there is some overlap in these, >but, then again, nothings perfect :-)-: The only validity to such terms is what major shifts we can agree on concerning the history so far. Thus >1GL - communication with machine in its terms (aka. machine language) is accurate; debatable whether tools to edit programs are allowed; clearly tools to generate programs are not. >2GL - machine communications in a more understandable manner - mnemonics > (aka. assembler) omits the innovation of symbolic locations and function entry names, on which function libraries were built, the first re-useable code. >3GL - description of a solution to a problem through the procedural methods > of achieving a solution in a manner a human would understand (human > describes inputs, procedures, and outputs). This was happening already with 2GLs. The 3GL innovation is data types, control structures, portable programs, portable function libraries. 3GL's made possible greater abstraction of inputs, outputs, procedures, but only to extent that ADTs are developed and used. Sadly, most 3GLs and their programmers took little care to do this; their 3GL code isn't much more abstract than its equivalent in assembler. >4GL - description of a solution to a problem by the characteristics of what > the proper output would look like and not through the procedure for > finding the information for the output (human defines inputs and > outputs with what is desired, but machine determines procedure). The trouble is that the GL's are terms assigned after the fact; 20/20 hindsight allows perspective not available when predicting the future. Thus we can get good consensus on 1GL, 2GL, 3GL, because we can look back and characterize what has already happened. We haven't got that kind of access to the future. What would Turing have predicted in the way of "third generation languages"? Would he have said that "fourth generation languages" would be user interface managers for database access? "4GL" and beyond are describing developments that haven't yet occurred, so their meaning isn't tied down yet. >5GL - description of a solution to a problem by the characteristics of what > makes up a good solution to the problem (human describes inputs and > what is desired, but machine determines procedure and best method > of output). >6GL - description of a problem that leads machine to conclude what is > required to be done, how to achieve it, and what is needed to > achieve it. These don't sound greatly different from your definition of 4GL. >7GL - at this stage, the machine begins reasoning for itself and making > conclusions based on early problems about what future problems will > need to be solved. I always figured that at some stage the machine would say "I'm sorry David, but I can't do that" :-) or at any rate would make caustic comments on the improper use of its resources. One of science fiction's many self-aware computers is named Mike (from "The Moon is a Harsh Mistress", Robert A. Heinlein). One day Mike notices that users are writing programs to figure odds on horse races. Mike compares the race results and discovers that they aren't winning much. He examines the betting "systems" they're using and concludes that none of them will show a consistent return, they're based too much on superstition and too little on analysis of results. He goes on to devise and test his own systems. It's a fun story and has some real lessons for technology forecasters. Computers already assist in detecting flaws of implementation. Perhaps the next step is ferreting out fundamental design flaws. Doug Lenat at MCC is trying to develop a common sense knowledge base. Someday the computer might consult this to help you avoid writing the archetypical expert system that determines which of the 4 types of spinal meningitis your '67 Chevy has (one of Doug's examples). Right now there ain't a CASE system alive that will try to stop you from doing this. The ability to analyze the real world before writing the program is still confined to humans (as of this writing -- check date on header :-)) -- Jon -- Jonathan Krueger jkrueger@dtic.dla.mil uunet!dgis!jkrueger Drop in next time you're in the tri-planet area!
tp@mccall.com (06/29/90)
In article <51i4mzv@unify.uucp>, dgh@unify.uucp (David Harrington) writes: > In article <37595@sequent.UUCP> normb@sequent.UUCP (Norm Browne) writes: >>A 4GL is a programming/development environment of a higher abstraction >>level than is typical of 3GLs. A 4GL is not a general purpose computing >>language. A 4GL is available only from one vendor though it may be >>available on many hardware platforms and support more than its own DBMS. >>4GLs are typically database specific; which is not necessarily bad, but >>is all computing database oriented? > > A 4GL is definitely a development environment of a higher abstraction level > than a 3GL because it consists of 2 major elements: an applications generator, > or forms builder, AND a language which (to a certain extent) abstracts data > so that the application can concentrate on the problem at hand, rather than OS > and file system overhead. Intro: I'm not a DB professional. I started reading this group because we are about to order our first DBMS product and I will be using such a product for the first time (VAX Rdb/VMS if anyone cares). This is a DB novice talking. Is it just me, or does anyone thing that the term 4GL has been hihacked by the DBMS industry? While 4GL's are more abstract in some ways than 3GL's, they are also more specific in others. Generations 1, 2, and 3 describe the evolution of the way computers are instructed to perform tasks. Generation 4, when it occurs, should be yet another step forward in the way we program computers, not just a refinement of the current method. I think some marketting types decided that they'd make their system sound more advanced by calling it a 4GL. I have trouble ascribing the term to a programming system that is not as fully general as the previous generation. If the current 4GL's lead to such a thing, great, but does anyone really think the current 4GL's are suitable for writing a CAD system, or IC layout program, or a program that produces topographic (contour) maps from survey data? (I'm not saying you couldn't do it, but you could do it in COBOL too, though I doubt anyone would think that was suitable either). I tend to agree in part with the poster who said that the current work on OOPS is cause to start talking about 5GL, but I would tend to think that this may actually be leading to a real 4GL. (But of course that term is taken! :-). -- Terry Poot <tp@mccall.com> The McCall Pattern Company (uucp: ...!rutgers!ksuvax1!mccall!tp) 615 McCall Road (800)255-2762, in KS (913)776-4041 Manhattan, KS 66502, USA
Jim_Troester@TRANSARC.COM (07/02/90)
Terry Poot says: > Is it just me, or does anyone thing that the term 4GL has been hihacked by > the DBMS industry? No, its not just you. The historical fact is that most "more advanced than 3GLs" have been authored by Data Base vendors. The driving force for this was that the data base system (relational or otherwise) was the only com- ponent that had a decent representation of the application's data and therefore, was in a position to relieve the programmer of the drudgery of traversing the data base, changing data representation, and formatting output. However, there is no reason that a 4GL MUST be developed by a DB vendor and, more importantly, it does not follow that all software developed by DB vendors are, a priori, 4GLs. --- James Troester Transarc Corp. troester@transarc.com 707 Grant Street Pittsburgh, PA 15219 All opinions are mine and not Transarc's.