Talk:Programming language generations

Purpose
This page has two purposes. One is to satisfy the discussion suggestions for the existing first-generation, second-generation, and third-generation programming language by drawing them together into a coherent sequence, rather than trying to make dictionary-like definitions. This is especially needed in view of the second purpose, which is to summarize and illustrate two (historically) divisions of the languages into generations, which is essentially impossible to fix while they are treated separately because it means giving different names to the same pages and the same names to different pages.

I called these two divisions historical and modern. The "modern" descriptions are all drawn, with limited editing, from the 3 existing wikpedia pages on the 3 generations of languages, and reflects a view common on the web, but for which an early published source I can not find (yet). The "historical" descriptions reflect a view common among most practitioners in the field through the early 1990's, and annotated by reference to various published sources.

I have avoided including the fourth- and fifth- generation pages in this organization for three reasons: 1) there is no "historical" view different from the "modern" one, 2) the material on those two pages is very different in manner of treatment, scope, advocacy, and technical precision from the material on the pages for the first three generations, which makes a jumble of all the material become too diffuse and disorganized, and 3) I believe that in many cases, the generational term was coined in anticipation of possible languages and that there is not enough coherence or insufficiently wide-spread adoption to have, in hindsight, justified the term. I believe I am not alone in that view and that, for example from her comments in the HOPL-II keynote, Jean Sammet may concur, though perhaps she may be more succinct about it. In any case, I believe a generational overview should include their mention, and refer to the content more capably advocated there than by myself.

I hope we can continue to improve this page and plan, if all goes well, to remove the 1GL, 2GL and 3GL pages, replacing them by redirects here.CSProfBill (talk) 14:26, 23 September 2009 (UTC)

Second Generation
No mention of the autocodes, I see --Redrose64 (talk) 15:01, 23 September 2009 (UTC)
 * Nor did I mention Plankalkül or one or two others. I have tried to avoid making particular assignments of languages to generations, relying on their assignment by figures placed in history. (You may also note that I avoided placing "C"). My own knowledge of autocoder is limited, but I've always thought of it as kind of transitional - rather too limited and narrow to be widespread, but only because it was early and useful. Also, I was trying to avoid this being another "History of Programming Languages" article, to focus mostly on the generational naming stuff. I have no objection to someone who can pin a reasonable reference to including it in the appropriate place. But I find authorative references difficult with respect to this breakdown since nobody seems to much use the generational terms in written articles. ThanksCSProfBill (talk) 17:30, 23 September 2009 (UTC)

Grace Hopper cite
Can someone make that cite verifiable? Like in which conference it was given? I have full-text access to ACM. Pcap ping  19:08, 23 September 2009 (UTC)
 * The reference to her keynote at the 1993 History of Programming Languages conference can be found through http://portal.acm.org/citation.cfm?id=SERIES003.800025&coll=portal&dl=ACM&type=book&idx=SERIES003&part=series&WantType=Proceedings&title=HOPL&CFID=53155287&CFTOKEN=29500422 . The quote is the fourth line from the last on page 7.
 * You probably mean 1978. These HOPL conferences were "one off" conferences (one every 10 years?); there's been 3 of them so far. The proceedings of all three have been published as books. The first one was published by AP in 1981. Pcap ping  20:09, 23 September 2009 (UTC)
 * Yep. 1978. Sorry - it's getting late here. I didn't go to the conference, but "grew up" with a lot of the people involved.

Can someone also make it end? There is no delimiting quotation mark in the phrase. (Løbner (talk) 08:46, 21 June 2011 (UTC))

4th and 5th
For whatever it's worth, this book does give a def to 4GL and 5GL, but it differs a fair bit from what we have in our (no so well sourced) articles here. I suspect other defs exist. Pcap ping  19:39, 23 September 2009 (UTC)
 * I've read most of the discussion pages here, and I have to agree that the "generations" view differs from one to another, mostly because each person that debated this has done it through his own point-of-view of what the generation separator should be. For example, I finished a computer science faculty a couple of years ago and the only "generations" talk I heard there was once from an AI teacher CLAIMING (like they all did, without any references) that each generation meant easier programming - 4th being natural language or close enough (SQL), and 5th being visual programming (much like drawing some UML flow diagrams and let the software output the necessary code/executable).
 * What I want to say is that the emphasis in the "generations" articles should be on the historical meaning, how the generations view evolved, and also what different proposals there have been for the generation delimiter.
 * For example, if in a few years there will appear a way to program directly in the english natural language, this debate will rise again as academicians and software vendors will try to claim that this new 'programming language' is either 4th, 5th or maybe even 6th generation, based on whatever view they have on what 'makes' a generation.
 * In this point of view, the most important page is this one, presenting an overview of the historical meaning and changes to the programming language generations, and the 1-5GL pages should be probably scraped (or rewritten having this in mind) as they provide just one point of view on the subject. Currently, the 1-3GL pages are just stubs repeating what has been said on this main page, without adding any additional content, 4GL is the only truly extended page on the subject, and 5GL, besides being just a stub, claims only one point of view, especially since the 4th and 5th generations have been a subject of debate from the moment they were mentioned in history.Kaly J. (talk) 14:22, 18 January 2010 (UTC)

Should not merge 1/2/3GL articles here
I think there is value to this summary article, but I oppose the merge-and-redirect approach to those individual articles. The template infobox gives navigation of the "generations", and some of the individual [1-5]GL articles are sufficiently long and rich as to make merging awkward or impractical. The better approach is to try to be brief in this summary, but give {main|nGL}} links back to the full descriptions. LotLE × talk 19:44, 23 September 2009 (UTC)
 * I might agree, and have no real interest in a summmary page, per-se. The problem with separate pages is that there are two contradictory definitions for first-, second-, and third- generation languages, both of which seem to have current use and one of which has historical use, so the problem is which one to put on which page. The alternative of putting two definitions on each page is also possible, but results in complete duplication of half the material. I think that's why past editors of those pages called for an approach that brought them together on one page. There are difficulties raised by that as well, due to the entirely different character and characterization of the fourth- and fifth- generation material (the long pages), but the issue is deeper than just one of length, but rather that, e.g. the fourth-generation one is written from a marketing style rather than a technical one because, in the view of some, it doesn't represent a coherent technology. If it's really thought desirable, I can do the double-copy thing and get rid of this new page, but I undertook the work because of the discussion on the issue by past editors..CSProfBill (talk) 20:14, 23 September 2009 (UTC)

Template
I added this page to the template at the bottom mainly because the 1-5GL articles don't refer back to this 'mother page'. To be frank, I found this page accidently, by reading the discussion pages on the 1-5GL articles... Kaly J. (talk) 17:18, 12 February 2010 (UTC)

Recharacterisation
There's a completely uncited section at the bottom of the page, which says a lot of stuff which is, as far as I can see either vague or wrong. Irritatingly, it has been used to update individual articles on language generations. 1Z (talk) 15:56, 21 October 2011 (UTC)

I notice from the history that this section used to have one reference,. which was a non-notable wiki.1Z (talk) 16:03, 21 October 2011 (UTC)

I'm completely confused now. References are needed, and how!1Z (talk) 18:57, 21 October 2011 (UTC)

Fortran a second generation language, is history being rewritten here? For the 33 years I've been aware of this classification, the meaning has always been: 1st generation = machine code, 2nd generation = symbolic assemblers, 3rd generation = high level languages, with the term "4th generation" later having been introduced later to differentiate "4th generation" declarative high level languages (such as Prolog, domain-specific languages etc.) from "3rd generation" imperative high level languages (such as Fortran, Pascal, C, etc.). See, e.g. Definition of fourth-generation language on PCMag.com Tarian.liber (talk) 13:50, 10 April 2012 (UTC)


 * I've found that the first section, though it had one reference, was the one that was original research. The second section, though without references, was correct.  The first section tried to categorize Fortran and COBOL as 2GL instead of 3GL.  Instead they were publicized as the first 3GLs, and helped define 3GL!  (Having the term "3GL" apply equally to Fortran, Pascal, C, and C++ is what made the term drop out of favor; it's a pretty useless distiction.)


 * So I have removed most of the first section, removed the "alternative" heading, and joined the two 3GL sections. The result isn't pretty, but at least it is no longer just plain wrong.


 * If anyone has time, please feel free to help clean up the debris from this. --A D Monroe III (talk) 21:10, 10 September 2014 (UTC)

this whole wikipedia article is a mess
who was the GENIUS to put FORTRAN (the grand-gran-grandfather of all languages) and C++ (an adolescent) ON THE SAME GROUP? NOT TO MENTION "PYTHON" (a baby) JESUS CHRIST someone older than 50 yo please (preferably older than 70 yo), redo this article (OR DELETE IT). — Preceding unsigned comment added by Drout 0 (talk • contribs) 15:37, 16 June 2022 (UTC)

Misses the mark on 2GL
The second generation of programming languages introduced mnemonics and symbols to programming and it surprises me that it isn't even mentioned in this article. That was its core innovation. 0GL = programming by wire 1GL = programming by code 2GL = programming by symbols 3GL = compiled languages (deeper symbolics including control flow) & platform independence (no RISC/CISC constraints, operating system management of resources, etc) 4GL = function domain languages / embedded languages / interpreted languages I have no clue what a fifth generation language is, beyond "more recent". Each of the generations above had a specific innovation - I haven't seen a great innovation since the fourth generation. I suppose prolog et al could be considered innovative, but I haven't written prolog code since 1990 when it was supposed to be the "language of AI". How about Ada? Now there's a throwback! Summary - I don't think a failed paradigm should constitute a generation and "newer" alone is not innovation. OriginalCrowKing (talk) 15:42, 28 June 2022 (UTC) — Preceding unsigned comment added by OriginalCrowKing (talk • contribs) 15:29, 28 June 2022 (UTC)