Talk:Timeline of programming languages
|WikiProject Computing||(Rated List-class)|
- 1 Notes
- 2 Lambda calculus
- 3 PHP
- 4 Inclusion of languages
- 5 Legend
- 6 About Chrome
- 7 Object-C in 1983 not 1982
- 8 Fortress
- 9 Odd ideas of "historically important programming languages"
- 10 Seed7
- 11 legend??
- 12 Definition of historic importance
- 13 Concept versus implementation
- 14 Versions and variants
- 15 C-10 nomenclature
- 16 OpenCL and CUDA for programming on SIMD processors architecture
- 17 Red and Blue
- 18 Picture
Changed language links to be uniformly "X programming language" which is supposed the standard name for a programming language page. See disambiguating
Fix the destinations, not the pointers to them. -- Buz Cory
Some things are here that don't belong here. Notably Compilers (MicroSoft C), GUIs (Microsoft Windows) and OSen (CP/M, Linux).
Where a particular compiler extends the language (Such as the Borland Pascal compilers did), it should be here. Where it is a pretty standard implementation, it does not.
I will be removing things that seem inappropriate. -- Buz Cory
The analytical engine shouldn't be on this list either, I don't think. It was a computational machine, but it did not run on a pgoramming language, rather on punchcards. Also the machine wasn't never tested until 1991. Subversive 07:40, 28 October 2005 (UTC)
While it's true that the Analytical Engine was a computer rather than a programming language, it did have a machine language which is what Ada Lovelace used to write her program. As for the punchcards, I fail to see your point. All computer programs had to be punched onto paper tape or punch cards until the mid-60s. In fact when I first learned to program in the mid-70s I was still using punch cards for my FORTRAN code. Each punch card had one language statement punched into it. This was just as true for the Analytical Engine as it was for the CDC 6600 which I last fed punched cards to. -- Derek Ross | Talk 04:58, 29 October 2005 (UTC)
Am making a second section for items where the date is unknown or questionable. -- Buz Cory
- As a matter of fact, I was forced to reformat some (select/paste from NS6 to my editor lost the leading spaces) and so put a new legend at the top. You're right about the programming language link, it is now at the top. I only left the old legend at the bottom because I thought someone might want to make something of it. --Buz Cory
I agree that there is far too many versions of the same things. If we are going to include all languages on this time line it will be unusable. Really it should just show the major movements in the programming world.
- Actually, if only languages are mentioned, there are several hundred, probably (including all variations). Not an unworkable number. There is a separate hardware timeline page, and separate timelines for OSen, and another for Commercial End User Apps might be a good idea.
- Just don't mix them all on one page! --Buz Cory
I think you are out by an order of magnitude for the number of languages. Now I don't dispute each of these languages deserve a page on the wikipedia, but by having a time line consisting of x000 languages is not really going to convery much useful info.
What I may get around to is for the Lisp family, just show LISP, Common-Lisp, and Scheme in the main time-line but ALSO have a LISP-time-line. Other candidates would be FORTRAN-like, C-like, dBase-like, Pascal-like languages etc.
Any views on this approach?
- If you are right on numbers, your approach is probably better. For the moment, I think this page, as it is, is probably best. If/when it gets too big, we can always split it. --Buz Cory
I noticed that some entries here are at variance with the corresponding ones at History of computing. I have no way of deciding these, but I think they should be mentioned and eventually, we should try to resolve these. --AxelBoldt
Language Programming Timeline Computing History ============================================================= FORTRAN 59 54-57 LISP 59 58-60 Algol 58 60 APL 62 61 COBOL 60 59-61 Turbo Pascal 83 84 Ada 83 79
Lisp: as explained in LISP_programming_language, McCarthy claims to have invented it in 1958, he makes this claim in his 1960 paper. It is doubtful that any implementation actually existed at the time (but that is true of many languages). --drj
What date do we use in the Programming language timeline: the date of first implementation or of first description? --AxelBoldt
Well, I would say first implementation or first description. There are plenty of languages in which the implementation came first (perl, python, C) and plenty of languages in which the description came first (Lisp, Algol?, CPL, intercal). Reading the papers that the creators of these languages wrote one gets the impression that if the implementation came first then that was when the language was created and if the description came first then that was when the language was created. Which all seems pretty sensible to me.
Languages that evolve from others, for example B to NB to C, are more problematic because there was probably a continuous series of compilers that grew away from language and towards another. Even once the bootstrapping stage is reached.
Intercal is an interesting case as well because the language existed for 8 years before anyone wrote an implementation of it. Similarly it is not clear to me whether CPL ever had an implementation. In what sense are these computer programming languages? The facts seem to indicate that computer programming languages are more uses than the mere programming of computers, they can be used to express ideas between programmers or mathematicians for example (indeed, programs are speech!), so it isn't even necessary to have an implementation to be called a computer programming language. That was a bit more than I intended to say really. --drj
- Even when a language hasn't been implemented it may still be very influential. CPL led to BCPL which led to B which led to C which led to C++, therefore CPL is well worth recording. CPL may well have been implemented in the early 1970s as a student project but it doesn't really matter. The ISWIM language has never been implemented as far as I know, yet the modern functional languages such as ML, Haskell, Miranda, etc. owe a lot to it, so again it is well worth describing. -- Derek Ross
C++ and C with Classes were in "unknown or questionable dates" but need not to since Stroustrup describes the years pretty accurately on his home pages. So I moved them to the normal timeline.
Java definitely has predecessors. Its line of descent is Algol > BCPL > C > C++ You only need to look at its syntax to see that. Why remove C++ ? -- Derek Ross 17:33, 20 Feb 2004 (UTC)
The year headings ("pre 1950s", "1950s", "1960s",...) shouldn't have colspan="3" when there are now 4 columns. For forward compatibiliy, make it colspan="0", ie span all columns. (It's in the W3C standard: http://www.w3.org/TR/REC-html40/struct/tables.html#adef-colspan )
FORTRAN IV is listed as originating both in 1962 and 1966. I wasn't around back then so can not claim to be an expert, but all my information suggests 1962. Perhaps the entry in 1966 was meant to be FORTRAN 66? Am new at wikipedia and will attempt to update it if I don't hear back.
Here's a reference which supports my claim re changing it to say FORTRAN 66 instead of FORTRAN IV in 1966: http://www.ibiblio.org/pub/languages/fortran/ch1-1.html JMCorey 22:59, 4 Mar 2005 (UTC)
I have removed the lambda calculus from the list.
The lambda calculus as originally defined and used by Church was not a programming language. It was a notation for clarifying the semantics of free and bound variables. Church's interesting (and surprising) result was that this very simple system can support full arithmetic. It was John McCarthy who took the lambda notation and used it for anonymous functions in Lisp, though he did not actually exploit (or understand!) its full power, which was only done later by Sussman and Steele. If the lambda calculus is going to be in here, then all sorts of other mathematical systems should be, too, including: combinatory logic, finite state automata, regular expressions, and even first-order logic and—why not?—the conventional mathematical notation of functions and operators! All of these have been used as bases for programming languages. --Macrakis 7 July 2005 13:58 (UTC)
- I believe the PHP page is right. But PHP 3 is a rewrite, in 1997, I have added author. Splang 07:06, 13 May 2006 (UTC)
Inclusion of languages
I think Fortran 2003 should be included, because it shows how one of the oldest languages is still being developed and in active use. --R.Koot 13:40, 14 August 2005 (UTC)
That's true. This timeline does have a place for minor languages which were very influential or which formed part of the ancestry of major ones: hence Cowsel, ISWIM, and CPL. It also has a place for current development of major languages. But that doesn't mean that it should include all the minor languages ever invented. To do so would lead to a forest/trees problem. -- Derek Ross | Talk 05:30, 15 August 2005 (UTC)
- Could you add Fortran back to the list, please. I don't want to get banned for a 3RR. --R.Koot 13:59, 15 August 2005 (UTC)
Is the legend entirely necessary? I am minded to remove the '*' entry and have blank cells where a language has no direct predecessor. Comments or votes, anyone? - Chris Wood 14:10, 14 November 2005 (UTC)
- Another point: If the legend is to have any meaning, shouldn't we also abide by its parenthesis notation for designating non-universal proglangs? VISICALC, for instance, is categorized as a domain-specific language, and as such should be marked as non-uni. Or is "universal" to be understood as any language capable of simulating a Turing machine? (in which case a proglang is to be very restricted not to be considered "universal", even though it may be thoroughly impractical for doing anything else than domain-specific tasks). --Wernher 04:22, 17 November 2005 (UTC)
Apparently, this is more a compiler than a programming language. I request advices about that. Splang
Object-C in 1983 not 1982
It seems that Object-C was released in 1983: http://www.oreilly.com/pub/a/oreilly/news/languageposter_0504.html
Other quite important langauges: Fortress (new Fortran + Java for scientific calculations), Maude (logical and functional programing), Sather and pSather (pure object oriented language and big iterators). —Preceding unsigned comment added by 22.214.171.124 (talk) 14:20, 9 September 2007 (UTC)
Odd ideas of "historically important programming languages"
I am highly skeptical of a number of the languages listed from 1995 up to the present, particularly the really recent ones. Determining the historical importance of a language is difficult when it's only existed for a few years. Furthermore, there are a number of unusual entries which don't seem to fit - PIKT (1998) is an IDS, not a programming language; Cω is an extension to C#, not a language of its own; and there are separate entries for each revision of various languages (C, Fortran, and ADA are particular offenders).
What's needed urgently here is a definition of what we mean by "historically important". Right now, there appears to be a problem with new languages getting added indiscriminately, which ruins the utility of the timeline. Zetawoof(ζ) 22:06, 10 March 2008 (UTC)
Well there's a few ways that significance could be defined. One reasonable definition of historically significant could be gained by counting how many other languages it has influenced. That would rule out most of the "I just invented it" entries but still allow a place for highly influential but unimplemented languages like ISWIM or CPL. We don't need to set the threshold very high. If it influenced one or two later languages that would be enough. -- Derek Ross | Talk 18:46, 28 June 2008 (UTC)
- If it doesn't have its own Wikipedia article, it's probably not notable enough, so you could set the threshold there.--Fiskjuice (talk) 20:34, 17 October 2009 (UTC)
- Done. List is still a mess (I need to get to cleaning it up someday), but marginally less so. Zetawoof(ζ) 07:13, 29 June 2008 (UTC)
- Having an article and being on this list are two different things. There are languages which do not get an article, but still deserve to be mentioned at some places. Hans Bauer (talk) 09:09, 29 June 2008 (UTC)
- For languages of historical value which we just haven't written about yet, I can see that. However, this is a language which we specifically opted to not have an article on a few years ago, because it had very few users and no influence on other programming languages. For these exact reasons, it's also inappropriate in a timeline of programming languages. Zetawoof(ζ) 18:33, 29 June 2008 (UTC)
- Seed7 is listed as requested article for some time now. The article was deleted because of missing third-party coverage in 2006. Now Seed7 has third-party coverage. Citation from the article request: Paper from Daniel Zingaro: Modern Extensible Languages (alternate link) (paragraph about Seed7 at page 16), The Quest for the Ultimate Cycle explores the 3n+C extension of the Collatz Conjecture with Seed7 programs, A FreeBSD port / see also here (not maintained by Mr. Mertes). Additionally there is also: Abstract of diploma thesis (in german, about MASTER, a predecessor of Seed7), Doctorate thesis (in german, about MASTER, a predecessor of Seed7). And finally: The Seed7 Homepage. Maybe the new evidence is sufficient to undelete the Seed7 article. Hans Bauer (talk) 19:17, 16 November 2009 (UTC)
- There are many languages in this list, which are so new that they can hardly be classified as historically important. But I still consider all this languages important and they should be listed. Time flows by and Seed7 now has an article and it is described in a book with: "Seed7 supports the introduction of new syntax and their semantics into the language and it allows new language constructs to be defined using the Seed7 language itself" (reference: Abrial, Jean-Raymond and Glässer, Uwe, "Rigorous Methods for Software Construction and Analysis", ISBN 978-3-642-11446-5, Springer, 2010, page 166). Because of this syntactic and semantic extendability I consider it pioneering. The situation has changed and therefore I will add Seed7 back to the list. Hans Bauer (talk) 11:12, 12 July 2012 (UTC)
what do the 2 legends mean? especialy the first one. the 2rd one maybe means that "*" in 1st column means a unique language (no direct predecessor). It isnot necessary that "<year>" appears here. in 1st legend, "(entry)" the bracket in the "name" column? who can help me? —Preceding unsigned comment added by Xujianguo (talk • contribs) 04:02, 27 May 2009 (UTC)
Definition of historic importance
In order to make this article more useful, and apropos the above discussion, i'd like to propose some objective inclusion guidelines. Comments and improvements are most welcome; it would be great if we could settle on a consensus version of this to put at the top of this talk page or somewhere.
- At minimum, entries should have an article that explains the language's historic importance. (Stubs or redlinks are acceptable as long as there is no doubt that an appropriate article could be written.)
- In addition, entries should be at least one of:
- Languages that innovated significant ideas, concepts, or paradigms (even if they were not otherwise influential or widely used).
- The status of "significant" is somewhat subjective, but it should be reasonably widely accepted as such by neutral third parties: it's not enough for a language's authors to think it significant.
- Examples: Plankalkül, ALGOL, IPL, Lisp, Forth, Simula, Prolog
- Languages that inspired other historically important languages (even if they were not otherwise pioneering or widely used).
- A minor language being the predecessor of several other minor languages is probably not important unless one of those descendants become historically important.
- Examples: CPL/BCPL/B, ISWIM, Scheme, ABC
- Widely used
Following the above, i'd like to propose a new column to the list that very briefly summarizes why the language is on the list, under a heading of "Significance" or similar. A sentence fragment from the language's article should suffice; for example, Plankalkül was the "First high-level non-von Neumann programming language". —Piet Delport (talk) 2009-10-23 00:44
- Having seen similar criteria implemented for other articles in the past, and having seen disastrous results, I'm going to offer my $0.02 here.
Red link exclusion has become a rather serious problem. There are many otherwise well meaning editors who bulk remove "red links" from articles with the notion of "if it doesn't yet have an article it isn't notable". (I can cite specifics but it might offend a few people.) This is a logical fallacy in that often red links simply signify things that people have not yet written about. In the case of this specific article, the current red links all seem to be topics that really should be written about but are mostly older or historic languages that aren't getting too much attention right now.
As you mention above, significance is subjective; I'd actually consider it to be highly subjective. This isn't a "timeline of historic programming languages" so trying to artificially limit inclusion based on pioneering, influential, and widely used doesn't sound like a good idea to me.
Perhaps a better way (assuming this article has actually had a problem with inclusion, although I personally don't see a problem here) would be to simply limit inclusion to programming languages that have preexisting articles or would otherwise meet the notability guideline appropriate to this genre of articles should an article about the language be written?
On a strictly editorial note, is there a reason to have so much bold text in this article? I find it seems to distract from the rest of the content. It also seems like the Predecessor(s) column should be the rightmost column and not the leftmost column.
--Tothwolf (talk) 09:46, 23 October 2009 (UTC)
- Hmm? This is exactly a "timeline of historically important programming languages", as the first line of this article states (and its content confirms, and the discussion above elaborates): its very usefulness depends on it. I'm not trying to change the selection criteria, i'm just describing it (as the stand-alone list guideline recommends).
- Regarding "red link exclusion", nobody has suggested it: the proposal above specifically points out that redlinks are okay. (If you're concerned about the precedent of Seed7 above, the entry was removed because it was non-notable, not because it was a redlink.) —Piet Delport (talk) 2009-10-23 16:56
- No, I wasn't thinking of Seed7. I've seen a number of articles completely gutted of red links by editors using the reasoning I mentioned above.
The article is named Timeline of programming languages and the lead section used to say "This is a chronological list of programming languages." and has been reworded numerous times up to the point where it is now. People are going to continue to add entries with the current lead. Something like what was in the lead in 2005  (except using a hatnote) might limit inclusion more than the current lead. Truth is, there is little, if any reason to limit a properly structured timeline article to only "historical" programming languages. Heck, I just now noticed how syntactically malformed the current wikitable code and section links are... --Tothwolf (talk) 18:04, 23 October 2009 (UTC)
- No, I wasn't thinking of Seed7. I've seen a number of articles completely gutted of red links by editors using the reasoning I mentioned above.
Concept versus implementation
At the moment, a number of languages have separate entries, for "concept" and "implementation":
While this is not necessarily a bad idea, i think it ends up cluttering the already-sprawling list without adding much extra value.
Proposal: Merge the "(implementation)" entries into their corresponding "(concept)" entry (excluding Plankalkül and ISWIM, which should keep their qualifier), extending their origin year range as necessary.
Versions and variants
In addition to the concept versus implementation entries (see above), some languages have multiple entries for different versions or variants of them, which is probably overkill: it should be enough to list only the first or most prominent member of a closely associated line or group (unless more than one member can be argued to be separately historically important). Here's a quick, crude listing of entries that link to the same article, or otherwise appear closely related:
- ALGOL: ALGOL 58, ALGOL 60, ALGOL 68, ALGOL W
- Autocode: Mark I Autocode
- BASIC: Altair BASIC, CBASIC, GFA BASIC, GW-BASIC, BASIC FOUR, PowerBASIC, QuickBASIC, STOS BASIC, True BASIC, Turbo Basic
- C++: C with classes, Standard C++
- COWSEL: POP-1
- Common Lisp: ANSI Common Lisp
- Distributed Application Specification Language: DASL (AUS), DASL (BOS)
- Erlang: Open Source Erlang
- Forth: ANS FORTH
- Fortran: FORTRAN "I", FORTRAN II, FORTRAN IV, FORTRAN 66
- IPL: IPL II, IPL V
- JOSS: JOSS I, JOSS II
- MUMPS: Standard MUMPS
- Modula: Modula-2, Modula-3
- Oberon: Object Oberon, Oberon-2, Oberon-07
- Pascal: Object Pascal, Turbo Pascal, Embarcadero Delphi, Component Pascal
- REXX: NetRexx, Object REXX
- SNOBOL: SNOBOL3, SNOBOL4
- Smalltalk: Smalltalk-76, Squeak
- Speakeasy: Speakeasy-2, Speakeasy-3, Speakeasy-IV
- ML (programming language): Standard ML, F Sharp (programming language)
- Visual Basic: Visual Basic .NET
Many of these can probably be merged; any comments on which ones shouldn't be?
- Don't be led astray by similar naming: Visual BASIC.NET has far more in common with C# than with Visual BASIC, so it would be better merged with the former than the latter. Algol60 and Algol68 are actually pretty different as well. Also the BASIC article was split from the various implementations on the basis that it was too large. It would not be a good idea to merge them all back together. -- Derek Ross | Talk 00:57, 23 October 2009 (UTC)
- Right. I did not suggest merging all of these: it's just a semi-automatic list of related entries as a starting and reference point. It's as important to know why some similar-looking entries warrant separate inclusion as it is to know why some do not. (In case there was confusion, i definitely did not suggest merging any articles, just entries here.)
- Regarding the incarnations of BASIC, i was not talking about merging the articles themselves (which is obviously a bad idea), but about removing entries from this list, which is definitely not the place for every dialect and implementation. (Interested users can find those in the BASIC article, not here.)
- Looking through the list, the candidates with most historic significance seem to be:
- The others can probably go, unless one of them also has clear and independent historic significance. (Any suggestions?)
- Regarding VB and VB.NET, the differing implementations do not matter much; they are still essentially releases of the same language, with the same (shared) historic significance. An entry for the genesis of Visual Basic should be sufficient; interested users can find all the different implementations and releases of the language through the article.
- Thanks for the note about Component Pascal's lineage. I can't tell from the article what kind of historical significance it has, though; do you know?
- The Modulas seem to be well-motivated:
- I'm also not sure how to describe the Oberon family, but they seem to continue the line of Wirthian innovation; it would be great if someone more familiar with them could give a summary of what makes each of them significant. (Thanks for the response so far!) —Piet Delport (talk) 2009-10-23 15:45
- Within a couple of years of the appearance of Oberon the additional O-O concepts researched in Object Oberon were added to it to form Oberon-2. It is suitable for general-purpose systems and application development. Oberon-07 also evolved directly from Oberon via Oberon-SA (StrongARM) with features that make it particularly suited to the development of reliable software on resource-limited systems e.g. real-time embedded control systems using microcontrollers.Chris Burrows (talk) 00:53, 24 October 2009 (UTC)
- Altair BASIC is certainly historical, but the criterion for deciding whether something is a dialect or a distinct language isn't based on historicity. Altair BASIC looks like a very basic subset of Dartmouth BASIC. The BASIC entries in the list seem to over-represent Microsoft as well. Why not Coleco ADAM BASIC, or a hundred others? MSX BASIC doesn't seem like a distinct flavor either, it's a dialect/subset. Also, why is there no mention of Visual FORTRAN? Or Visual COBOL (or did I miss it?)? The "visuals" represent a specific historic stage in the evolution of prgramming following the almost universal adoption of GUI operating systems, don't they? Almost all of the comments on the Talk page seem well considered and considerate and I hope mine don't deviate, but I do detect, rightly or wrongly, a little bit of bias at work in the published product.Hypatea (talk) 19:08, 30 May 2010 (UTC)
Betty Holberton, "Holberton worked with John Mauchly to develop the C-10 instruction for BINAC ...". See the second clause which reads as a run-on sentence and a major claim. But if you read her interview for an oral history, she never claimed to have invented a programming language. Rather, it is an instruction set. Read the 1948 Research Report " A Logical Coding System Applied to the ENIAC " for many other kinds of instructions, such as C-1, C-5 etc.
OpenCL and CUDA for programming on SIMD processors architecture
OpenCL and CUDA just appeared recently. They are, probably, the first commercial success among programming languages for SIMD architectures. I think they might be in the list as well. —Preceding unsigned comment added by 126.96.36.199 (talk) 19:04, 18 September 2010 (UTC)
- As far as i understand, OpenCL is more of a programming framework / hardware architecture abstraction layer (analogous to OpenMP) than a programming language proper, and probably doesn't belong here. --Piet Delport (talk) 09:59, 7 January 2011 (UTC)
Red and Blue
Red and Blue, listed under 1970s, point to Red (programming language) and Blue (programming language). Apparently these are completely different and unrelated programming languages that just happen to be named like that. — 188.8.131.52 (talk) 19:56, 6 June 2012 (UTC)
It would be really awesome to see this timeline as an image of a tree. Each language should link to its predecessor (parent) if it has one. Can someone please do this? 184.108.40.206 (talk) 12:22, 12 January 2013 (UTC)