Fourth Generation Language

Marketing-speak for a procedural programming language with some or all of:

A "natural language" grammar

Built-in database query language

Built-in user interface language

These features apparently put the Fourth Generation Languages above such run-of-the-mill languages as Cobol Language, marketing-speak for which is Third Generation Language.

The "Natural language" grammar typically results in an enormous number of reserved words, most of which do very little.

The built-in features may have merit. However, the languages tend to be rather poorly designed, leaving out such things as, for example, an easy way to write functions. The built-ins rarely make up for the lack of generality in the language designs. They also lock you into a particular DBMS.

The current trend for languages is OO, without imposing any particular database or UI. With OO constructs available, you can build and call upon pretty much any other interface you can imagine, databases and UIs included.

Many Fourth Generation Language's seem to be modeled after some long-forgotten set of the designer's toy programs. The semantics of the language constructs would fit those old programs extremely well. The program you or I am working on today, however, could be a bit of a problem.

I once did a one week course in a Fourth Generation Language called Progress Version 6. One of this languages 'niceties' was, if you added a name to a frame, it changed from one-record-per-page to a one-record-per-line. A fellow student (a bit more pointy-haired than the rest, but anyway...) was struggling with such lameness, gave up on frames and resorted to coding his exercises' output in longhand cursor positioning and text output. The instructor accused him of 3GLing.

As far as I can see, 4GLs are just examples of Domain Specific Languages. It's just that often the domain is a database with a nice GUI. Does anyone agree or disagree?


I agree. -- Dave Harris


The definition for nth Generation Language (where n seems to vary from 1-5, and might even be 0 in some cases) seems to be highly author-dependent. (Usually, the author's favorite technology or paradigm is assigned a higher value of n. If I had a quarter for every such definition--well, I wouldn't be Bill Gates, but I might be able to get a cup of coffee at Star Bucks. --Scott Johnson

See original on c2.com