[comp.databases] 5GLs, as defined in Jessica Keyes' article

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.