[comp.databases] SQL = 4GL ???

jkrueger@daitc.daitc.mil (Jonathan Krueger) (08/23/88)

>We've just managed to start an argument here regarding the
>actual definition of 4GL and its relationship to SQL...
>
>IS SQL considered a 4GL?
>and if it isn't .. what is it? ... also as long as I'm 
>asking, what about QUEL, dBASE, and other languages... 
>according to my RTI (Ingres) documentation they call OSL
>a 4GL but not SQL or QUEL... could someone define the 
>term 4GL??

1GL	machine language: toggle switches, modify plugboards,
	binary edit machine instructions

2GL	assembler: mnemonics for instructions, symbols for
	data and control structures, subroutine libraries

3GL	programming languages like C, Pascal, Fortran: portable
	machine-independent programs, portable function libraries,
	more abstract data and control structures

These terms were coined after the fact.  At the time, 3GL's were
called "high level languages" or even "automatic programming systems"!
So if you find such distinctions facile, and don't think them accurate
or useful, great, they're all just generalizations.  At least there's
consensus about what they mean.

But "4GL" has been used before the fact, mostly by marketing types.
Little consensus has developed concerning its use.  For instance, I'd
use the term to mean:

4GL	packages, toolkits, or shells; higher level abstractions
	than 3GL, aimed at safer and more productive programming;
	specialized to certain kinds of programming, such as database
	management, circuit simulation, process control.  Usually
	tries to encapsulate commonly used constructs from 3GL's, for
	instance "where clause" qualification encapsulates iteration.

Therefore, I'd have no problem with calling SQL a 4GL, just as I'd
accept the circuit description language for SPICE.  However, common
vendor use, such as your RTI docs, would use 4GL to mean:

4GL	application generation, aimed at programming for
	non-programmers; automatic generation of a user
	interface from a data dictionary and programmer-specified
	customizations

Which would accept OSL but not SPICE or SQL.  So if you listen to
people selling dbms software, their 4GL will be touted as an addition
to SQL.  The rest of us have fallen into that usage, but would accept
other tools and shells as well, e.g. the Unix shell, SQL, SPICE, KEE.

-- 
Jonathan Krueger  uunet!daitc!jkrueger  jkrueger@daitc.arpa  (703) 998-4777

Inspected by: No. 15

allbery@ncoast.UUCP (Brandon S. Allbery) (08/23/88)

As quoted from <24484@bu-cs.BU.EDU> by berlin@bu-cs.BU.EDU (David K. Fickes):
+---------------
| We've just managed to start an argument here regarding the
| actual definition of 4GL and its relationship to SQL...
| 
| IS SQL considered a 4GL?
| 
| and if it isn't .. what is it? ... also as long as I'm 
| asking, what about QUEL, dBASE, and other languages... 
| according to my RTI (Ingres) documentation they call OSL
| a 4GL but not SQL or QUEL... could someone define the 
| term 4GL??
+---------------

This has, I believe, been the subject of a few "religious wars".  I can only
give my opinion on the matter; others may disagree.

SQL and QUEL are data retrieval and modification languages.  They are not
sufficiently general that complete data manipulation programs can be written
in them (unless they only perform simple retreval and modification), thius
they are not 4GLs.

They may, however, be used as a basis for the construction of 4GLs, thus we
have OSL, Accell/Language, Informix-4GL, etc.

There are non-SQL-based 4GLs as well.  Progress is one; dBase also
qualifies, although it is not as general as the others I've mentioned in
this article.

++Brandon
-- 
Brandon S. Allbery, uunet!marque!ncoast!allbery			DELPHI: ALLBERY
	    For comp.sources.misc send mail to ncoast!sources-misc

evan@telly.UUCP (Evan Leibovitch) (08/24/88)

In article <641@stech.UUCP>, sysop@stech.UUCP (Jan Harrington) writes:
> 
> I don't consider languages such as dBase's as 4GLs. They are more like
> 3GLs (e.g., Pascal) with DBMS extensions.

I agree, and would extend that definiton to include most self-proclaimed
'4GL' packages such as the one by Informix.

Let's face it. For the foreseeable future, the term 'fourth generation
language' has been appropriated by marketing types, and should be treated
as suspect in any non-academic context.
-- 
Evan Leibovitch, SA of System Telly, located in beautiful Brampton, Ontario
            evan@telly.UUCP / {uunet!attcan,utzoo}!telly!evan
The advantage of the incomprehensible is that it never loses its freshness.


billc@rtech.UUCP (Bill Coffin) (08/24/88)

A lot of people have talked about what a 4GL should look like.  This is
valuable but omits some philosophical underpinnings.  Here is a
taxonomy that was suggested to me by a friend:

1GL -- hardware level.  patchcords, etc.

2GL -- symbolic.  Hides (abstracts) a lot of hardware dependencies.
	2GLs separate the hardware implementation from the architecture.

3GL -- algorithmic.  Differs from 2GL in that it allows programmers to
	write at the algorithmic level.  3GLs hide the architecure.
	However, 3GLs are still procedural -- the programmer tells the 
	computer HOW to do stuff.

4GL -- specification.  Differs (ideally) from a 3GL in that programmers
	specify what they want done, not how to do it.  That is, a
	true 4GL would be entirely non-procedural and non-algorithmic, 
	accepting high-level goal-oriented specifications as input and 
	producing complete applications as output.

However, I have never seen a "4GL" that didn't have some 3GL glue
to hold the 4GL parts together.  That is, the above definition is an
ideal, and it's hard to imagine how it could be fully implemented.
Most 4GLs I've seen are forms systems and forms editors with lots
of clever defaults and menu-driven configuration, but with procedural stuff
available for when the defaults don't make it.
So in this taxonomy, all current so-called 4GLs are really 3.5GLs.
(By the same argument, since C does a poor job of hiding architecture, 
C could really be called a 2.6GL.)

Surprisingly, QUEL is a 4GL in this taxonomy, since it is non-procedural.
So I guess this taxonomy lacks completeness criteria.

{sun,pyramid,mtxinu,amdahl}!rtech!billc, billc@rtech.uucp

seavey@portia.PRC.Unisys.COM (Beverly Seavey) (08/24/88)

In article <314@telly.UUCP>, evan@telly.UUCP (Evan Leibovitch) writes:

  >4GL -- specification.  Differs (ideally) from a 3GL in that programmers
	specify what they want done, not how to do it.  That is, a
	true 4GL would be entirely non-procedural and non-algorithmic, 
	accepting high-level goal-oriented specifications as input and 
	producing complete applications as output.


  >Surprisingly, QUEL is a 4GL in this taxonomy, since it is non-procedural.
  >So I guess this taxonomy lacks completeness criteria.

I saw a comment in, I think, Ulmann's new book on knowledge bases,
that giving full power to query languages would make the optimization
of queries undecidable.

pavlov@hscfvax.harvard.edu (G.Pavlov) (08/25/88)

In article <2389@rtech.rtech.com>, davek@rtech.rtech.com (Dave Kellogg) writes:
> 
> I'll refrain from trying to define a 4GL, but I'll say that SQL and 
> QUEL are Data Manipulation and Data Defintion languages, and not
> what I would consider fourth generation langauges.
> ...................................  I believe Chris Date (noted DBMS
> expert) uses the terms DDL and DML often in his writings as well.
> 
  I am pretty sure that the concepts of DDL and DML were first introduced
  in the original CODASYL (hierarchical/network) database definition.  Not
  to take anything away from Date, most certainly, by no means, etc...

> (No *definition* here, but I will list some properties)

  Here neither.  The primary property of interest to our shop is the tools
  to manipulate complex structures (such as forms, menus, graphs) as simple 
  objects.

  The following is NOT a complaint, simply an observation:  the problem at
  present is that many of the key characteristics of these structures are
  "wired" into the dbms code.  Which means that even minor deviations from
  the default concept of an object will often require tremendous increases
  in the amount of 4GL code one must write.   But even with this, the effort
  required to implement an application is very substantially reduced.
> 
> For example INGRES OSL is a superset of SQL.

  It's too bad (for us long-time Ingres users AND customers) that RTI is
  trying so hard to forget its QUEL heritage ........ :-)
> =================================================================
> David Kellogg
> Relational Technology (INGRES) New York City

  greg pavlov, fstrf, amherst, ny

gupta@cullsj.UUCP (Yogesh Gupta) (08/25/88)

In article <314@telly.UUCP>, evan@telly.UUCP (Evan Leibovitch) writes:
> 
> Let's face it. For the foreseeable future, the term 'fourth generation
> language' has been appropriated by marketing types, and should be treated
> as suspect in any non-academic context.
> -- 

For your enjoyment, here are excerpts from an article in "Digital NEWS", a
bi-weekly technical {:-) :-)} publication:

======
		Next Stop: 5GLs

    While software houses continue to tout the productivity gains of their
4GL products, they eye the future - and so-called 5GLs - with excitement.

    To Ottawa-based Cognos Inc., the makers of PowerHouse software, the
fifth generation is synonymous with expert systems and artificial
intelligence, said Henry Urion, senior product-line manager. [...] "We're
on the threshold of having some very serious offerings ourselves in that
direction," he said.

    [...]

    Roger Brown, president of Beaverton, Ore.-based Interactive Technology
Inc., producers of RDM: The Application Developer, could not offer a 5GL
definition.  "The paradox is, a 5GL is not going to be language at all."

    Mark Hannah, product-marketing manager for Alameda, Calif.-based
Relational Technology Inc., views the fifth generation as visual
programming.  "And we've started on that," he said.  "When you design an
application using Ingres, you use the Ingres screen painter.  It's similar
for reports and queries."

    [...]
======

Now things are really improving :-)!
-- 
Yogesh Gupta                    | If you think my company will let me
Cullinet Software, Inc.         | speak for them, you must be joking.

DMasterson@cup.portal.com (08/25/88)

I've read with the interest the definitions of 4GLs that I've seen so far, but
none have quite hit the mark that I expected.  This is not to say that I think
I have a definitive definition of 4GL, just another one.  ;-)

4GL - a language providing the features to allow a user to describe the
	information he desires and the form in which he desires to see it,
	but leaves the mechanism by which this information is gathered and
	presented to the system.

I believe this is a flexible and complete definition that doesn't limit the
implementation of a 4GL to just a conglomeration of previously specified
tools.

However, this begs the question -- what's a 5GL??  :-))

David Masterson
DMasterson@cup.portal.com

vaisanen@ujocs.UUCP (Jarmo V{is{nen) (09/01/88)

From article <5172@pasteur.Berkeley.EDU>, by larry@postgres.uucp (Larry Rowe):
> 
> I have developed the following definition of a 4GL.
> 
> 	``A fourth generation language (4GL) is an integrated programming
> 	environment for interactive database applications that must include
> 	the following features:
> 
> 	     1. a database management system,
> 	     2.	a reportwriter,
> 	     3. a forms system,
> 	     4. a procedural language with embedded database and form 
> 		input/output commands, and
> 	     5.	an integrated data dictionary.''
> 
> A 4GL can include other features (e.g., version control, wysiwyg report/form
> editors, structured editors, etc.), but it *must* include the features above.
> Notice that the definition does not prescribe a relational DBMS, but most
> 4GL's today are being converted to SQL so they are relational.
> 	larry

What is the difference between a 4GL and an application generator
if you use this definition (or something else)?
What is an application generator anyway?

Jarmo


------------------------------------------------------------------------------
! Jarmo V{is{nen		  ! Actually that's Jarmo Vaisanen where last!
! Department of Computer Science, ! two a:s are with two dots above them.    ! 
! University of Joensuu		  !					     !
! P.O. Box 111,			  ! [Why do we have these punctuation chars  !
! SF-80101 JOENSUU FINLAND	  ! in our names? I may as well change my    !
! vaisanen@ujocs.Joensuu.FI       ! name.  Sigh! ... :-]		     !
------------------------------------------------------------------------------

garyp@cognos.uucp (Gary Puckering) (09/01/88)

In article <24484@bu-cs.BU.EDU> berlin@buita.bu.edu (David Fickes Einstein Project) writes:
>We've just managed to start an argument here regarding the
>actual definition of 4GL and its relationship to SQL...
>
>IS SQL considered a 4GL?
>
>and if it isn't .. what is it? ... also as long as I'm 
>asking, what about QUEL, dBASE, and other languages... 
>according to my RTI (Ingres) documentation they call OSL
>a 4GL but not SQL or QUEL... could someone define the 
>term 4GL??

I've heard many answers to this question.  Here is my favorite
answer (I won't disclose the author):

  "A 4GL is any language created by software vendors after 1978"

Similarly, there is a definition for relational database:

  "A relational DBMS is any DBMS created after DB2"

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

Seriously, though, I believe that a 4GL differs from a 3GL (or,
indeed, from a DBMS) in that it has built-in algorithms and
heuristics that speed up the process of developing applications of a
certain type (for example, commercial applications).  Forerunners of
this concept were COBOL with Report Writer and RPG.  In fact, I can
think to no good reason not to class RPG as a 4GL.  It has a
built-in logic cycle for generalized report writing, balance-line
updating, etc.  More recent 4GL's exhibit similar but more
comprehensive capabilities and most are now driven by a data
dictionary which provides a centralized source of data definitions
and rules for presentation, editing, and representation of data.

-- 
Gary Puckering                                   P.O. Box 9707
Cognos Incorporated                              3755 Riverside Dr.
VOICE:  (613) 738-1440   FAX: (613) 738-0002     Ottawa, Ontario
UUCP: uunet!mnetor!dciem!nrcaer!cognos!garyp     CANADA  K1G 3Z4