Talk:Timeline of programming languages
This article is rated List-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||
|
|
|
Legend
editIs 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)
I've replaced the asterisks in the table with "none (unique language)" to match what the key was saying - would this still make sense if it just said "none"? Despite "( Entry ) means a non-universal programming language" in the key, nothing actually seemed to be marked up as being this, so I've removed the legend entirely. --McGeddon (talk) 10:47, 15 February 2017 (UTC)
Red and Blue
editRed 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. — 80.174.59.87 (talk) 19:56, 6 June 2012 (UTC)
Picture
editIt 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? 118.210.2.41 (talk) 12:22, 12 January 2013 (UTC)
- here? https://upload.wikimedia.org/wikipedia/commons/2/25/Genealogical_tree_of_programming_languages.svg 89.76.146.175 (talk) 01:06, 27 March 2014 (UTC)
- Even more detailed picture here: http://hopl.info/images/genealogies/tester-country.jpg Pasvikdalen (talk)
Inclusion of yet another language LSS or Lotus Script ?
editI wondered why it wasn't included. But it merely may be caused by the lack of individuals to post anything in Wikipedia.
It says below it was introduced in Lotus Notes R4, which I believe was around 1995.
Below, is an excerpt taken from the IBM Notes 9.0.1, Domino Designer Basic User Guide and reference (ie. a Notes Database, with navigation builtin, as with all Lotus documentation)
(http://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.main.doc/LSAZ_WHAT_IS_LOTUSSCRIPT_3179_OVERVIEW.html)
What is LotusScript?
LotusScript® is an embedded, BASIC scripting language with a powerful set of language extensions that enable object-oriented application development within and across IBM® software applications. LotusScript allows you to place more complex scripts in a greater variety of locations and events than traditional macros. LotusScript and its development toolset provide a common programming environment across IBM applications on all platforms supported by IBM software (such as Windows, AIX®, Linux). It is available in:
- IBM Notes® Release 4 and later
- IBM Lotus® Approach® 96 Edition and later
- IBM Lotus Freelance Graphics® 96 Edition and later
- IBM Lotus Word Pro® 96 Edition and later
- IBM Lotus 1-2-3® 97 Edition and later
- IBM Lotus Enterprise Solution Builder
LotusScript offers a wide variety of features. Its interface to IBM software is through predefined object classes. The products oversee the compilation and loading of user scripts and automatically include class definitions to allow more efficient coding. LotusScript extends the development capabilities of IBM software by providing:
- The ability to place scripts in a variety of objects and events in many IBM software applications. LotusScript has a set of extensions beyond Visual Basic, that provide additional power and utility when writing applications using IBM software.
- A debugger and syntax-directed editor.
- Access to a broad range of product functions through the classes defined for each product.
- Access to external class libraries defined using the the LSX Toolkit.
[1] RosePet (talk) 14:02, 14 December 2015 (UTC)
perl6? 73.162.49.184 (talk) 03:44, 26 February 2016 (UTC)
References
ALGAE
editIn the paper "Computing at LASL in the 1940s and 1950s" by Roger B. Lazarus et al., chapter II "Software and Operations" by Edward A. Voorhees" is stated that:
“ | In 1958 the ALGAE language was implemented at LASL for the 704. It was a preprocessor to FORTRAN (which was first issued by IBM in 1957). The language contained a control structure that resemble arithmetic expressions. | ” |
The author himself is claiming that the language was implemented in 1958.
So the year 1951 in this timeline does not hold, in my opinion.
Hugs, Ricardo Ferreira de Oliveira (talk) 18:54, 11 April 2017 (UTC)
Adding
editReferences: here
And note that why a preprocessor for a language released in 1957 would be built in 1951? Ricardo Ferreira de Oliveira (talk) 15:01, 12 April 2017 (UTC)
In this paper, page i, introduction, Edward Voorhees state:
“ | ALGAE I makes use of FORTRAN I to form the actual 704 code... | ” |
Ricardo Ferreira de Oliveira (talk) 17:47, 13 April 2017 (UTC)
ASP?
editwhat about ASP or ASP.net(not a website)? — Preceding unsigned comment added by 174.83.19.46 (talk) 20:29, 20 February 2018 (UTC)
Jacquard Loom
editThe current noun is of course the machine, not any language. From what I understand the 'card format'-as such would in modern computing terms be machine code. One where the pattern on the card correspond physically to the intended weave pattern.
Question is, was there a single format, or different ones for different machines at different times? Does this format have a proper term? I also think that if there's a large abstraction threshold between these format or formats and the rest of the items on this timeline it should be mentioned.--Nngnna (talk) 14:57, 18 October 2019 (UTC) [edited for clarity 6:17, 14 November 2019 (UTC)]
GDScript
editGDScript was probably born around between 2010 and 2014 and it's based on Python. It's difficult to be more precise since it has been developed inside a company that was using it for internal purposes and on the project website they talk about its history but there is no mention of specific years. One of its creators, Juan Linietsky, said that they had been using other scripting languages "for ten years" and then they decided to write a language of their own.
- https://rmll.ubicast.tv/videos/introduction-au-moteur-godot/ (go to 41m00s) — Preceding unsigned comment added by 2001:B07:6453:BBAD:855F:E0B8:62DA:3603 (talk) 23:03, 23 October 2019 (UTC)
Short Code
editWhy is Short code listed with different authors in both 1949 and 1950. And what is Brief Code, the predecessor of the second time Short Code is listed? Akeosnhaoe (talk) 07:24, 6 January 2020 (UTC)
Language Versions
editI was wondering what the consistency between updates to languages is? For example, all the changes to C and C++ seem to be listed as separate entries, but even major changes to other languages, such as Python 2 to Python 3, or Java 1.4 to Java 5 don't seem to be treated in the same way. 2A00:23C4:4EA8:1801:5050:740F:833E:891B (talk) 15:14, 14 March 2021 (UTC)
- I think entries for Python 3 and Java 5 could be listed. I'm not sure of the exact inclusion criteria, see next section --Mathnerd314159 (talk) 03:34, 22 August 2021 (UTC)
Changing criteria to notability
edit"Historically significant" is hard to prove and the inclusion criteria the list actually uses seems different, for example C99 is not particularly historically relevant as for the most part it just copied features from C++. What does everyone think about changing the criteria to notable programming languages? Notability is easy to verify compared to historical significance. I don't think the table will grow too much due to this change but if it does we can just split the table across several pages. --Mathnerd314159 (talk) 03:34, 22 August 2021 (UTC)
- C99 is very historically relevant, if only for the fact many large projects still use this particular dialect. This list should only include languages that break compatibility, otherwise you will end up with the current mess where you have some languages listed multiple times even though they are backwards compatible dialects and others not listed even though they are not backwards compatible.
- To show the absurdity: Java is only included once despite huge changes to the bytecode. Python even though there are multiple backwards incompatible versions. Meanwhile C and C++ are listed multiple times, even though they are only standard changes, and compatible ones at that. Rather than including a new version every major change (which is somewhat arbitrary) the criteria should be whether previous application binary interfaces are broken (can I write C++03 code with a C++20 compiler? Yes I can).
- Bsdrevise (talk) 13:40, 2 October 2021 (UTC)
- Well Visual Studio didn't support C99 for a long time (until after publication of C11), causing many projects to avoid it (e.g. [1]) so not sure what large projects you're referring to. Of course there are projects using it but every version of every language has projects written in it.
- I think the most enforceable way to make it consistent would be to only list each language once and remove all the extra versions. Then the question is whether C89 is a different language from C99, to which the answer is no (pretty clearly, C99 is backwards compatible to C89), whereas for others it is less clear, e.g. ALGOL 60 vs ALGOL 68 - but there I think it is clear that all of the implementations are distinct hence ALGOL 68 is a distinct language from ALGOL 60. So with this policy we wouldn't list Python 3 (the incompatibilies are minor, many programs run unchanged in Python 3), and similarly Java and C++ are single entries. --Mathnerd314159 (talk) 20:22, 4 October 2021 (UTC)
- I should note this is all to deal with the "historically relevant" criteria; using notability / WTAF these resolve simply: C99 thru C17 exist, as does Algol 68, hence they will be listed, but Python 3 is a redirect so will not be listed. Mathnerd314159 (talk) 20:18, 10 October 2022 (UTC)
- Support. Notability defined as WP:WTAF works well for most lists and I would support that here. It is indeed less subjective than historically significant. Msnicki (talk) 19:55, 5 October 2021 (UTC)
- Correction: I was initially worried about the list growing, but I looked through the list again and actually there are quite a few redlinks / nonlinks so the list would end up shrinking, at least initially. The later-dated ones such as SAM76 seem fine to remove but the early 1950's redlinks should probably be preserved by moving them to the History of programming languages article as prose. --Mathnerd314159 (talk) 05:26, 19 October 2021 (UTC)
Fortran 77
editThis timeline is missing one of the most historical and notable recent versions of of Fortran, Fortran 77. It should be included. — Preceding unsigned comment added by Lbecque (talk • contribs) 23:16, 1 March 2022 (UTC)
Jacquard Loom and programming language
editSure, Jacquard Loom had programs, so it was "programmable" (last paragraph in wikilink), but does that automatically means that it had a programming language? MarMi wiki (talk) 01:09, 18 June 2022 (UTC)
- It was programmed with punched cards. The hole pattern would have formed a language but not necessarily a human-readable one. However even machine languages can be (and many years ago were) used as programming languages. -- Derek Ross | Talk 01:49, 18 June 2022 (UTC)
- Apparently it can be interpreted like that (What is a Programming Language? and Who Gets to Decide What Is and Isn’t a Programming Language?). MarMi wiki (talk) 12:04, 18 June 2022 (UTC)
Year
editThe article doesn't mention what year is taken into account, which is the key element of a chronology. Is that the year of invention, of the first public release even if alpha/beta, the first stable implementation? For example:
- Carbon is listed as a 2022 language, but it's only a project and is not defined yet, let alone implemented.
- Ruby is listed as a 1995 language, but it was conceived in 1993, had a first public beta release (or series of releases) in December 1995, and only had its first stable implementation in December 1996 (http://blog.nicksieger.com/articles/2006/10/20/rubyconf-history-of-ruby/).
- Gleam is listed as a 2024 language, but was created in 2016, and began getting numbered versions in 2019.
If the meaning of "year" is not clearly specified, more such discrepancies are bound to happen. — Preceding unsigned comment added by 2A02:A03F:C0B9:7C00:9BB:1A34:540D:52A8 (talk) 15:56, 6 November 2022 (UTC)
On the same note, "Predecessors" should be defined too. From the look of it, it's rather "Influencing languages" than "Predecessors", or the whole table has to be reviewed. — Preceding unsigned comment added by 2A02:A03F:C0B9:7C00:9BB:1A34:540D:52A8 (talk) 16:02, 6 November 2022 (UTC)
In https://archive.org/details/hyper_number_4_5 is possible to find some referrences to other languages in the section Software. Some expert to tell if it can be useful to add some to the wikipedia articles. Best Regards — Preceding unsigned comment added by 190.160.142.123 (talk) 23:14, 28 April 2023 (UTC)
Assemblers (standard and "higher level") omitted
editIBM's mainframe OS and program products were (and are) written in various assemblers starting with the S/360 Project (see Mythical Man Month, Fred Brooks). Certainly prior mainframes also had assemblers.
During the S/360 period and beyond, aside from assemblers (which were designed for large systems and included a Turing-Complete macro facility) there were also "assemblers" like PL/S, PL/AS, PL/X which cross compiled assembler-like code. Much of this code is still in production today with z/OS. Anyway, all these are important pieces in the history of programming language development. IBM's latest variant, HLASM (high level assembler) is still in active use today both at IBM and at systems software vendors.
Also, we should not forget PL/360 which was a Wirth creation similar to PL/S and friends. 192.19.207.250 (talk) 08:52, 11 July 2023 (UTC)
- Done The PL/S languages are similar and discussed on on the IBM PL/S page, so I just added that. And PL/360 is apparently called PL360 without the hyphen, also added. HLASM is apparently just a dialect of Basic Assembly Language, so I added BAL rather than HLASM. Mathnerd314159 (talk) 16:19, 11 July 2023 (UTC)
Shakespeare
editAs the article purports to list notable programming languages, I propose to remove the Shakespeare Programming Language (2001) from the list. The referenced article fails to explain why it is a notable programming language. I actually refers to another esoteric language (Chef) about making code look like something that is not code as one of its properties. Rmc1134 (talk) 15:12, 27 October 2023 (UTC)
Should we separate compiled/interpreted languages from the other early ones?
editI'm talking about the earliest entries.
I'd think so. I'm not saying delete these entries, not at all (in fact some additions might be in order), just to separate them into a "non-compiled or interpreted" category rather than just chronologically. I think this'd clarify to the reader what's going on here.
(Assembly languages might also be included with compiled/interpreted languages, I don't know enough to know). It it's not compiled or interpreted, is it really a programming language? Not according to that article I don't think. I don't know enough about the subject to do it, but I'm suggesting that it probably should be done. Herostratus (talk) 20:54, 28 August 2024 (UTC)
- Just looking at them:
- An interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.
- A compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language)
- There is nothing stopping one from writing an interpreter and a compiler for the same language. At that point, the language is both interpreted and compiled - what is your proposal?
- Regarding assembly, the translation from mnemonics to machine code is clearly a compilation step. Mathnerd314159 (talk) 15:39, 31 August 2024 (UTC)
- Hmmm... so would the Jaquard loom cards be an Interpreted language? Herostratus (talk) 23:15, 9 September 2024 (UTC)
- I think it's pretty arguable if they form a programming language at all. The cards are not Turing complete, AFAICT. Neither is Begriffsschrift, I think - it is just logic. So really the first entry should be Plankalkül or ENIAC code.
- Getting past that though, whether punch cards are interpreted or compiled depends on the implementation. It is sort of like a text file today - it could be C code to be compiled or Python code to be interpreted. If there is no clear compiled object format then most likely it is interpreted. (E.g. Lua is still called interpreted even though there is the LuaJIT JIT compiler) Mathnerd314159 (talk) 04:29, 11 September 2024 (UTC)
- Hmmm... so would the Jaquard loom cards be an Interpreted language? Herostratus (talk) 23:15, 9 September 2024 (UTC)