Talk:Fourth-generation programming language

From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Computing / Software  
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software.
WikiProject Electronics  
WikiProject icon This article is part of WikiProject Electronics, an attempt to provide a standard approach to writing articles about electronics on Wikipedia. If you would like to participate, you can choose to edit the article attached to this page, or visit the project page, where you can join the project and see a list of open tasks. Leave messages at the project talk page
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
WikiProject Technology  
WikiProject icon This article is within the scope of WikiProject Technology, a collaborative effort to improve the coverage of technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
WikiProject Systems  
WikiProject icon This article is within the scope of WikiProject Systems, which collaborates on articles related to systems and systems science.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
Taskforce icon
This article is not associated with a particular field. Fields are listed on the template page.
WikiProject Computer science  
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
WikiProject Business  
WikiProject icon This article is within the scope of WikiProject Business, a collaborative effort to improve the coverage of business articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.

So what the hell is C#, Java, Python, Boo, VB, etc... ?[edit]

Don't tell me "3rd generation"! It just feels like this term was invented for what people in the 60s thought the gee-wiz future would 'obviously' be, not what it turned out. Pretty clearly we had 3G like COBOL, 3.5G like C++, and 4G languages with garbage collection, very sophisticated type systems, functional-style elements (lists, generics, foreach), etc., etc. Modern languages have advanced productivity more than the failed toys ever could, and deserve to be described as a generation. Maybe there should be two sections. History. And history of what history was going to be. (talk) 22:17, 4 February 2013 (UTC)

All of the languages you listed are classified as 3GL; Object Orientation falls cleanly in the definition of 3GL. The primary difference is that in a 3GL you tell the computer how to do things, while with a 4GL you simply tell the computer what you want done. ZNB (talk) 03:32, 11 August 2011 (UTC)

Contradicting and Confusing[edit]

I've marked this article as "Contradicting" for the reason listed below (one topic down), and have also marked it as "confusing" again for the reasons listed below (two topics down). The article is a little muddled and needs to have it's facts checked.

Perhaps with the tags we can get some attention to this article. Autodmc 15:11, 13 September 2006 (UTC)

I'm not a CS expert, but the first couple of lines in this article makes it sound like 4GL is a programming language itself. Chapium 21:36, 27 October 2006 (UTC)

Contradiction in the article[edit]

"The term 4GL was first used by James Martin in his 1982 book..." and then "The term 4GL was used in the 60's." User:vpoko:vpoko 10:01PM 05-06-2006


application specific? I do not understand what is meant by this. And it creates a false impression, I think. Psb777 04:48, 30 Jan 2004 (UTC)

4GL's are usually designed with a particular application in mind, such as rendering a data input screen or a financial report with headings and sub-headings. The language and compiler have commands specifically geared to these functions. The language C for example lacks specific commands of this nature as it was not specifically designed for these purposes eventhough it can be used for these purposes by the use of application specific libraries.


OK, I understand what you mean but the problem then is with the word application which is ambiguous. Application as used here means type of application whereas, in my old software house, it meant a solution to a particular problem. I think also someone could take application specific to mean something like for hardware shops only.

Psb777 06:17, 31 Jan 2004 (UTC)

I suppose you could replace the first sentence with something like:

A 4GL is a programming language designed with a specific purpose in mind such as the timely development of commercial business software.

davidzuccaro 09:12, 31 Jan 2004 (UTC)

But I'm not sure that that is what a 4GL is. 4GLs were intended to remove the programming effort but as a consequence they end up only being usable in certain types of task. Not as a design goal but as what I am sure the 4GL creators themselves considered a limitation.

Do you remember "The Last One" (I think that's what it was called)? Lots of hype in the press at the time. Late 1980's, I think.

Furthermore most on the list of so-called 4GLs are not, in my opinion, that.

-- 13:23, 26 October 2006 (UTC)

I'd preffer: 4GL aren't general purpose.

Psb777 09:29, 31 Jan 2004 (UTC)

I've been programming with different 4GL's for over 14 years (LINC, GEMBASE, BuildPro et al.). All of them seem to have been designed for the development of commercial database software with the minimum of effort and cost (both seem to be goals). They are not always successful at this though ;) I suppose there are other 4GLs that were designed for different purposes.

I doubt the 4gl designers thought that the 4gls could or would be used for developing and OS kernel for example. Yes this is a limitation but it is an irrelevant limitation.

I haven't heard of "The Last One".

I agree with you about the list, the inclusion of SQL and postscript is questionable, not sure about the others as I have never used them before.

I guess there is a "grey area" where something like SQL could fall into.

As an aside I find 4GL syntax rather unwieldy and inelegant at times. Also 4gl command sets are quite large, take some time to learn and can be buggy.

davidzuccaro 10:36, 31 Jan 2004 (UTC)

You're right, and having reread your suggested sentence I think you should add it. Not that you had to wait for me! Psb777 11:25, 31 Jan 2004 (UTC)

After davidzuccaro's improvement I have added a whole lot more stuff. Please feel free to cull, edit, improve as necessary. One of the many areas of fixing needed include the categorisation of the 4GLs at the end. Psb777 03:57, 1 Feb 2004 (UTC)

Great work Psb777 perhaps the categorization could be arranged into some kind of table as the 4GL's I am familiar with would fit into more than one category.

davidzuccaro 08:48, 1 Feb 2004 (UTC)

Why is "Visual Basic" considered a 4th generation LANGUAGE, if it's just a GUI ontop of Basic. So is "Visual C++" a 4th GL? How can an application be considered a language? Thoughts? Paitum 18:02, 14 Sep 2004 (UTC)

To answer your question, here is the definition of a programming language as defined here:

A programming language or computer language is a standardized communication technique for expressing instructions to a computer. It is a set of syntactic and semantic rules used to define computer programs. A language enables a programmer to precisely specify what data a computer will act upon, how these data will be stored/transmitted, and precisely what actions to take under various circumstances.

The key parts are syntax and semantics. There is nothing in there that says it needs to be textual. I would argue that a WYSIWYG GUI builder has a precise syntax and semantics, making it a precise way to communicate to a computer.

I have another question: How are 4GLs different from Domain Specific Languages? --Andrew Eisenberg 02:59, 6 May 2005 (UTC)

No one has answered my previous question, so I am taking it on myself to say that they are almost identical. Much of the DSL literature I've read even says that 4GPL is a subset of DSLs in the sense that 4GPLs tend to focus on data extraction and manipulation from databases, whereas DSLs tend to have a wider range of application.

See: [1] and [] (essentially same content but in different forms)

I am making the change to reflect this.

I also have a problem with this sentence:

This led to the first "programming crisis", in which the amount of work that might be assigned to programmers greatly exceeded the amount of programmer time available to do it.

What is the programming crisis? When did it happen? Can someone document this? I think it should go.

--Andrew Eisenberg 19:53, 31 August 2005 (UTC)

Programming crisis!?!?! Yes we can document; it still exists today (see Software_crisis, for instance). Both the 4GL and the 5GL are oriented to correcting the bottleneck (or, trying to remove the wizard from the equation if they become problematic). This phenomenon is the basis for the quest of End-user computing. Now, an example from the late 1970s would be Santa Fe's use of MAPPER. They had non-programmers (that is, end using people who have domain knowledge) doing the development. Yes, even now most IS/IT departments have oodles of backlog that they mostly (IMHO) sit on. I've been in both camps, by the way. Engineers don't typically like IS doing their thinking. And, Santa Fe had an 8-to-1 improvement in productivity, plus the system was in production for years and years. I think that the concept of 'programming crisis' ought to be brought back to fore in this page (or elsewhere). jmswtlk 20:29, 13 November 2006 (UTC)

Why is Postscript (a page description language) listed under database languages??

Han-Kwang (talk) 14:54, 5 November 2005 (UTC)

Oracle's PL/SQL a 4GL!?[edit]

Sorry. But i beg to differ very strongly indeed.

It is definitely a procedural language, and even as such it has lots of "inelegancies" (read: annoyances) when it comes to data types.

If it is a 4GL, then I will freely admit to having misunderstood what a 4GL is...

PS: Sorry for sounding rude. But i thought it would be even more rude just to edit the page without the opportunity to prove me wrong....

A: PL/SQL is 3GL. PostScript has same level as Forth or Lisp which is 3GL. *Editor, *Builder and all GUI Creators are applications but not a language. ColdFussion has same level as PHP, which is 3GL. Windows Forms is not a programming language - wiki or HTML are much better in that area but they are not programming languages (they are not full by Turing).

SQL, and XSLT are 4GL but they are not general purpose programming languages.

IMHO, 4GL language allows to use higher level of abstraction in domain-specific areas. General purpose 4GL language should allow to extended language itself to cover any new domain specific area without interfering with other parts of the language. XML is good example of such language but XML itself is not a programming language. (But programming language can use XML as source).

Lisp has abilities to create dialects which will be 4GL but Lisp itself is 3GL.

JavaScript 1.6+ with E4X will allow to create 4GL mini-languages (using built-in XML) but JavaScript itself is 3GL.

Some configuration languages (like ANT build.xml syntax) are 4GL and almost general purpose.


Since there was no entry for the language, I added one from the bits I remember. I'm sure it can be improved on. --GwydionM 18:52, 6 March 2006 (UTC) Please see my edits under "List of languages" below Shannock9 (talk) 17:47, 28 June 2012 (UTC)


Unreal engine provide developers of games a new programming language specifically geared toward game development. Maybe it is a 4GL, it is clearly not all-purpose, but it's simply very easy to write games using it. By the definition found on this article about what is a 4GL, then unreal programming language clearly is an example of such. Loudenvier 20:04, 20 October 2006 (UTC)


I hope that my edit efforts aren't problematic. I've used many 4GLs, both old and new, and have an interest in this generational view for several reasons. It's interesting that 4GL has been given more attention that 3GL or 5GL, but we can correct that. I'm also going to contribute to the 5GL having worked with 9 different variety of Lisp machine and PROLOG and other of that ilk. My research interest is in what mix of the xGLs does a capable system need. jmswtlk 22:44, 9 November 2006 (UTC)

The specific 4GL's you mention; Mark IV and Mapper, either need their own WP entries, or some explanation of what they are on the 4GL page. Sometimes the language you have used is not very clear and I'm not exactly sure what you mean eg " in the sense of the page", "positional entry of parametric data", "parametric reasoning". Finally WP has a policy of no original research WP:NOR so you need to back up your assertions with external sources (ie where you indicate these 2 as particular success stories - find a scholarly source that demonstrates/agrees with this assertion). Cheers Clappingsimon talk 16:56, 13 November 2006 (UTC)
MARK-IV started. I'll be filling in more plus editing a disambiguation page. Mapper next. jmswtlk 17:26, 13 November 2006 (UTC)
Now look at MAPPER and see why 4GL got attention. I'll get to the other issues such as re-wording the 'parametric' description. jmswtlk 20:29, 13 November 2006 (UTC)

PHALANX OVERMATRIX [pi dog]: ... fourth generation software likens itself to river-city ethics in terms of its limitations - 'in the old days', some sort of cartoon anti-pirate was involved; nowadays the abundance of self-sufficient "super-compatability" computers, has made things more or less piratic on this 'final shelf' level, *layman-paradox-pathos*, in this way where something like FINAL PUBLICATION was considered pugnacious to the population we find now that computers have incorporated & adapted this PUGNACIOUS-PHALANX , now it is realised that these products protect themselves from PHALANX PUBLICITY with 42nd-loop-protcols depending on MATRIX OUTPUT, so we find 'an old dog can't do new tricks' quite violently of pendant/talisman theory;; "you can teach it" BBB,,, is it the hyperion-ethical-mellenium,, ::: to find 4th generation hardware has to conceed against POX | then findamentalists come and say this must reach some sort of printable conclusion at somepoint that is as-beheld,,, | it is the fantasy of the i-pod that one day prints lyrics as they are sung @ preferable-resolution... —Preceding unsigned comment added by (talk) 16:31, 1 March 2008 (UTC)


I was hoping that the History section could show why there was a motivation for the 4GL. Imagine a deck of 3GL cards that was one or more boxes (think about dropping such a deck). Now, consider the time needed to punch the card, keep things sorted, and so forth. Then, the 4GL approach allowed similar results with only a handful of cards. That accounts for part of the productivity gain. Of course, as the interfaces got better, the 'card metaphor' continued for awhile, meaning that one worked with 80-character (in the IBM world) layouts where position within a line (and, perhaps, even the position of the line in the deck) was used for control. So, for awhile, MARK-IV still had a card-based focus. Then, there were I/O techniques that allowed longer lines (100s of characters); finally, we had line limits that went into the 1000s. As the position was less crucial, so too could formatting relax. Or was it the other way around (chicken-egg)? But, if this whole discussion (evolution of the 4GL) needs to be pushed to another page, that could let the page be more of a brief overview. jmswtlk 17:36, 15 November 2006 (UTC)

Ruby on Rails[edit]

Is it programming language? -- 15:23, 14 May 2007 (UTC)

Ruby on Rails is definitely not a programming language. It is a framework. Ruby is a programming language, but it's a general-purpose language. Ddfreyne 10:06, 16 June 2007 (UTC)

List of languages[edit]

I don't think it is very good to list SQL here. It is not even a programming language. There are extensions to it that make it procedural, but even so, that doesn't qualify it as 4th generation. If nobody objects, I intend to delete it from the list.--Shadowdrak 19:02, 30 June 2007 (UTC)

4th Generation Languages, by definition, are NOT procedural. SQL is not a general purpose programming language, but then most 4GLs are not. SQL is probably the best 4GL example that I can think of. It is well known, and it allows users to specify what they want without having to code for how to do it. This is the main hallmark of a 4GL. ZNB (talk) 03:41, 11 August 2011 (UTC)

I'm confused by the categories in the list. E.g. LINC is far more than a report generator - it generates (application + database)s to process transactions against persistent states (as one example a reservation system). Where do I move it to? Shannock9 (talk) 14:31, 6 March 2010 (UTC)

Well no-one said anything so I've boldly moved LINC to "General Use" (it's at least as general as PowerBuilder). I changed the orignal item under Report Generators to LIRC (for explanation see the LINC article, to which both entries remain linked) Shannock9 (talk) 17:39, 28 June 2012 (UTC)


What does this term mean? 18:40, 11 September 2007 (UTC)

Four years later, still asking... What does FP/SM mean? Anybody? Shrog (talk) 11:30, 22 December 2011 (UTC)

FP/SM = function point per staff month ([2]). I've replaced the abbreviation with the full definition in the article. 1exec1 (talk) 16:30, 26 December 2011 (UTC)

Programming language generations[edit]

This group of articles has problems. Please see current discussion at Talk:Second-generation programming language. Trevor Hanson 20:11, 7 October 2007 (UTC)

Domain specific langauges[edit]

Lisp and a few others are noted for the ability to construct domain specific languages. I don't really know how that fits, but I have a strong hunch it does. Perhaps someone with a pointier head than I can elaborate on how that fits the scheme here, if at all. Also as a semi-related note, I have a vague memory of Charles Moore claiming Forth was a 4GL. I don't think it is (Forth was fun, in that it was sort of the anti-lisp, but yeah..) but it also shared with Lisp the ability to turn it into something very application specific. Duck Monster (talk) 00:48, 21 November 2007 (UTC)

Well, Moore stated Forth was a fourth generation computer language, that is, the target computer was 4G, not the language. Whatever that means.-- (talk) 13:33, 28 June 2012 (UTC)


It may (or not) be a dead language but that doesn't stop it being a 4GL. I do not think wiki links should be removed (unless the link is dead). --Brian R Hunter (talk) 09:45, 10 April 2008 (UTC)

The title of the section that I removed BP from was "Some successful fourth-generation languages" (my emphasis), and that's why I removed it from the list. The developers of the BP-based system that my institution is using, are in a pretty desperate situation. They urgently need to reprogram a huge application from scratch, using the BP-based system as a specification only, as BP's syntax is so quirky and unlike anything else that trying to port it is out of the question. It's a race against the clock, as BP doesn't support the most recent versions of Oracle (at list least not for hpux). Moreover, BP's communication protocol between client and server requires a large number of open ports, and is a nightmare across firewalls. There's no guarantee that a security upgrade from Microsoft doesn't break the communication between client and server, and if that happens, there's nobody there to do the necessary adjustments to BP. I'm not aware of any official announcement from Today Systems that maintenance has been discontinued, but I do know they have communicated it directly to their customers. It's been a gradual process. First they dropped the unices on the server side, leaving linux and windows. Now, it's an ex-programming language. The binaries are still there of course, but it's closed source, and only a question of time before they're unusable. So the question of whether BP ought to be on the list really boils down to whether the list should include languages that once were successful, but that now are dead. --NorwegianBlue talk 20:44, 13 April 2008 (UTC)
I take your point, and sympathise with your institutions predicament. I think it should be on the list as a previously successful language. If you can find sources to say is no longer being developed or is unsupported (or indeed any other relevant material) then this should be added on the linked-to page. In any case I think a change to the heading should be made to remove the word successful. --Brian R Hunter (talk) 15:43, 14 April 2008 (UTC)
I re-checked their web site. There's no information there about maintenance being dropped, but as stated this is what they have communicated to their customers. The news section of their web page was last updated in 2004. However, the main page has a short notice about a Vista-compatible release being targeted for May 1, 2008. So maybe it's not totally bereft of life yet, but its life expectancy is definitely short. I think that changing the heading was a good idea, and solves the problem. Thanks. --NorwegianBlue talk 17:32, 14 April 2008 (UTC)

Who defines these generations of languages? —Preceding unsigned comment added by (talk) 19:20, 17 June 2008 (UTC)

Foxpro also not a 4GL[edit]

Foxpro is also definitely a procedural language, and not a 4GL. Syntactically it is nearly identical with DBase. Both of these are general purpose programming languages that allow embedded SQL - much like PL/Sql as noted above.

ZNB (talk) 03:28, 11 August 2011 (UTC)

A 4GL is a Constraint programming language?[edit]

Have I understood this right that a 4th Generation programing Language is some sort of Constraint programming language?
--Sebbes333 (talk) 15:02, 8 December 2012 (UTC)

It's a buzzword that can mean anything you like! Lawdroid (talk) 17:06, 9 December 2012 (UTC)

Lead section[edit]

The purpose of the lead section is to summarize the article. I think this article has the worst lead section I have ever seen on any wikipedia article. It's virtually incomprehensible, completely bizarre. JoshuSasori (talk) 09:01, 18 December 2012 (UTC)

It's reflective of the completely amorphous nature of the term at all. Lawdroid (talk) 16:46, 19 December 2012 (UTC)

PL/SQL is not a 4GL[edit]

PL/SQL is a *procedural* language which borrows most of its syntax from Ada (and similar languages like Pascal and Modula-2). Wikipedia itself says so [1].

I propose we remove PL/SQL from this list.

Colin 't Hart (talk) 15:00, 17 April 2013 (UTC)

"loosely coupled design patterns"[edit]

This phrase smells like marketing BS. How can a design pattern be coupled to anything? The whole point in design patterns is that they are general.

What can a design pattern coupled with? Another design pattern? The programming language? The application? — Preceding unsigned comment added by (talk) 14:50, 17 July 2013 (UTC)


"A quantitative definition of 4GL has been set by Capers Jones, as part of his work on function point analysis. Jones defines the various generations of programming languages in terms of developer productivity, measured in function points per staff-month. A 4GL is defined as a language that supports 12–20 function points per staff month. This correlates with about 16–27 lines of code per function point implemented in a 4GL."

WTF am I reading? People get points for writing code now? 4GL allows you to get more points? Why is this a computer science article, please move to the pseudoscience or enterprise programming section.

"Fourth-generation languages have often been compared to domain-specific programming languages (DSLs). [[[!!!WTF???Some researchers state that 4GLs are a subset of DSLs.???WTF!!!]]]"


what are the types of 4GL's?[edit]

help me out!!!!! — Preceding unsigned comment added by (talk) 19:09, 12 August 2013 (UTC)

Rewrite the initial section and provide better examples[edit]

Rewrite the initial section and provide better examples

I would like to rewrite the initial section to be more accurate. Although some 4GLs did not meet expectations, others greatly surpassed 4GL objectives. The one example cited states an 8 fold performance improvement. Our projects achieved a consistent 10 fold performance improvement.

In addition, large scale high expose applications were build in 4GL languages. To my knowledge, the world's first all 4GL (no COBOL or any other language) large-scale application was developed in 1986 (An application all of you know and have used) and revolutionized application development. Variations of that same team went on to develop other highly successful applications which would rival virtually any application since in terms of development timeframes, robustness of the application, and ease of operations.

For reasons I have never understood, 4GLs have received little recognition despite being one of the greatest technology gains in the past 40 years.

Tonyboston (talk) 18:49, 22 January 2014 (UTC) AJ

I've been WP:BOLD and rewrote the lede as requested, also to address the issues listed atop the article. I didn't salvage much from the previous, as I found all lede paragraphs but the last questionable and with cite-needed. I preserved the one cite, but don't have any new ones to add; instead, I just borrowed from the rest of the page, which is what the lede is supposed to do anyway. But I did have to get "creative" with some of this; some more attention will be needed.
Please review my rewrite of the lede, comment here, or just improve as you see fit. And there's always WP:BRD if needed.
(To answer Tony's question above on lack of recognition, it seems 4GL has more or less become a meaningless term. I think 4GL got over-hyped and misused by people promoting their "new" 3GLs as 4GLs, plus some "pure" 4GLs were published before they were ready to compete with established general-purpose 3GLs, and were seen as failures (even though most computer languages have failed). Most 4GL ideas can now be found in 3GLs.) --A D Monroe III (talk) 16:30, 18 July 2014 (UTC)