[comp.databases] Re.: SQL = 4GL

mohan@ihlpf.ATT.COM (Mohan Palat) (08/25/88)

>From: larry@postgres.uucp (Larry Rowe)
>Newsgroups: comp.databases
>Subject: Re: SQL = 4GL ???
>Organization: Postgres Research Group, UC Berkeley
>
>SQL is *definitely* not a 4GL.  As some of the other responders noted,
>SQL is a data definition and manipulation language.  Unfortunately, early
>press reports about SQL advertised it as a 4GL.  
>

	If 1GL = machine languages, 2GL = assembly languages, 3GL = high level
	programming languages, and SQL cannot be classified as a 4GL,
	then where exactly do data definition and manipulation languages
	like SQL fit in, in this hierarchy? Surely SQL cannot be classified
	as a 5GL, i.e., at a level higher than the current definition of 
	a 4GL. Maybe the current 4GLs should be called 5GL and languages
	like SQL should be called 4GL.

	Mohan Palat
	ihlpf!mohan

-- 
MOHAN PALAT

fwb@demon.siemens.com (Frederic W. Brehm) (08/25/88)

larry@postgres.uucp (Larry Rowe) writes:
>SQL is *definitely* not a 4GL.

mohan@ihlpf.ATT.COM (Mohan Palat) responds:
>	If 1GL = machine languages, 2GL = assembly languages, 3GL = high level
>	programming languages, and SQL cannot be classified as a 4GL,
>	then where exactly do data definition and manipulation languages
>	like SQL fit in, in this hierarchy?

I quip:
Perhaps this isn't a one dimensional problem.

Fred
----------------------------------------------------------------------------
Frederic W. Brehm		Siemens Research and Technology Laboratories
105 College Road East		Princeton, NJ 08540	(609) 734-3336
uucp:	    {att!princeton, astrovax, pruxe}!siemens!demon!fwb
Internet:   fwb@demon.siemens.com
    "From there to here, from here to there, funny things are everywhere."
					    - Dr. Seuss

larry@postgres.uucp (Larry Rowe) (08/28/88)

In article <5829@ihlpf.ATT.COM> mohan@ihlpf.ATT.COM (Mohan Palat) writes:
>
>	If 1GL = machine languages, 2GL = assembly languages, 3GL = high level
>	programming languages, and SQL cannot be classified as a 4GL,
>	then where exactly do data definition and manipulation languages
>	like SQL fit in, in this hierarchy? Surely SQL cannot be classified
>	as a 5GL, i.e., at a level higher than the current definition of 
>	a 4GL. Maybe the current 4GLs should be called 5GL and languages
>	like SQL should be called 4GL.
>
SQL is a data definition and data manipulation language, not a programming
language.  while many computations can be expressed in SQL, there are many
that cannot  (e.g., write a parser in sql).

i sympathize with the readers of this newsgroup that complain that the 
``marketeers'' have co-opted the word 4GL to mean roughly what i defined.
the problem i see is one of communication.  when i say 3GL, most people
understand what that means.  they know what kinds of programs can be
written using the language and they can usually identify examples of 3GL's.
but, the same cannot be said about 4GL's.  because there is imprecision
about the definition, people cannot tell what a 4GL means.  if the unix
shell, lotus macros, sql, and focus are all to be considered 4gl's, i can't
identify a class of programs that can be written in all of these languages.
moreover, i would be hard pressed to determine whether a particular language
was a 4GL (e.g., is the C preprocessor a 4GL?).

my objective is to define what a 4GL is so that people will understand what
capabilities that can expect from a 4GL, hence what kinds of programs can
be written in one.  the confusion surrounding the database application
development languages (my notion of a 4GL) has hurt the progress of their
development, adoption, and eventual standardization.

*POUR GASOLINE ON THE FIRE*
i think the biggest problem in the area of database application development
is that there are no *standards* for 4GL's.  the recent effort to standardize
on SQL has solved a small part of the problem.  my experience is that less
than 20% of the lines of code in a 4GL application are sql commands.  the
remainder are: form i/o, reportwriting, application logic, and user interaction
(e.g., error messages, help systems, etc.).  the biggest problem that 
companies face today is selecting an appropriate language/environment for
developing applications.  while everyone is standardized on SQL, programs
written by a company can be ported to other language/environments only if
the company uses a standard 3GL (e.g., fortran, cobol, c) with sql standard
embedding.  the company must write their own forms system, reportwriter,
etc. or their code won't be portable.

a secondary problem, is that with a few notable exceptions, most 4GL's
as programming languages, are comparable to BASIC.  they do not support
good program structuring mechanisms (e.g., data abstractions, packages,
etc.), reasonable type systems (e.g., a complete set of type constructors
for structured-types such as records, arrays, etc.), sophisticated
program management tools (e.g., version control systems, recompilation
tools, source-level debuggers, structured editors, etc.), or extensible
environment facilities (e.g., 4GL's are inherently multiple-language
environments, the programming environment must support management of
``programs'' written in these different languages as well as the addition
of new languages to the environment).

*THE BOTTOM LINE*
maybe we have to argue about the definition of 4GL before we can get on
to these issues.
	larry

allbery@ncoast.UUCP (Brandon S. Allbery) (09/01/88)

As quoted from <1493@siemens.UUCP> by fwb@demon.siemens.com (Frederic W. Brehm):
+---------------
| larry@postgres.uucp (Larry Rowe) writes:
| >SQL is *definitely* not a 4GL.
| 
| mohan@ihlpf.ATT.COM (Mohan Palat) responds:
| >	If 1GL = machine languages, 2GL = assembly languages, 3GL = high level
| >	programming languages, and SQL cannot be classified as a 4GL,
| >	then where exactly do data definition and manipulation languages
| >	like SQL fit in, in this hierarchy?
| 
| I quip:
| Perhaps this isn't a one dimensional problem.
+---------------

Just to expand on that...

SQL doesn't fit into the hierarchy.  This is because it is not *complete*;
it can do a certain limited set of operations, but almost every real-world
application uses SQL in conjunction with other languages, whether 3GLs (C,
Ada, PL/I, Pascal, whatever) or 4GLs (OSL, Informix-4GL, Accell/Language,
etc.).  SQL may be used as a component in a 4GL, but it is not complete
enough to be a 4GL, or a 3GL, or anything else.

++Brandon
-- 
Brandon S. Allbery, uunet!marque!ncoast!allbery			DELPHI: ALLBERY
	    For comp.sources.misc send mail to ncoast!sources-misc
"Don't discount flying pigs before you have good air defense." -- jvh@clinet.FI