Talk:List of programming languages
![]() | This article is rated List-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
![]() | This article links to one or more target anchors that no longer exist.
Please help fix the broken anchors. You can remove this template after fixing the problems. | Reporting errors |
Algol
editShould the various Algols (58, 60, 68, W) be listed as distinct programming languages? — Preceding unsigned comment added by 217.46.143.235 (talk) 10:00, 8 January 2023 (UTC)
Numpy
editI believe numpy should not be on this list considering that it is a library for python and cannot be used on its own. From numpy.org, "NumPy is the fundamental package for scientific computing with Python". AlexBenishek (talk) 19:57, 23 March 2017 (UTC)
- Numpy was removed. --Guy Macon (talk) 15:54, 17 June 2021 (UTC)
Notability of A++, ARS
editA++/ARS is described as "a learning instrument rather than as a programming language used to solve practical problems" which suggests it should not be listed here but rather be pushed to the "Esoteric" category. — Preceding unsigned comment added by 217.46.143.235 (talk) 10:32, 8 January 2023 (UTC)
Notability of ACC
editThis sounds like someone's abandoned pet project. On the ACC wikipedia page, there's a reference to "OpenACC" which seems unrelated to the ACC programming language. Pointers in the ACC programming language are described as being "4 bytes" to access "all memory" and code "will run" on any 386 processor. — Preceding unsigned comment added by 217.46.143.235 (talk) 10:43, 8 January 2023 (UTC)
Torp - is this actually a programming language?
editThis does not seem to be a programming language at all. I'm a little bit hesitant to remove it from this list for some reason, but if it is to remain, its presence here needs to be justified and the link fixed. --Joel7687 (talk) 05:12, 7 March 2010 (UTC)
Surely any language listed here needs to be Turing complete? (CSS is not) Otherwise the page would get flooded with inappropriate content. Nick mesham (talk) 19:07, 10 May 2010 (UTC)
4D
editThe article dedicated to 4D describes it as "a relational database management system and IDE". Should this really be considered a programming language?129.16.193.188 (talk) 09:29, 28 May 2010 (UTC)
- I'd agree, this is primarily a database product; its language appears seems to be more of an SQL than a programming language. Unless somebody disagrees, I'll remove it in a day or three. Nibios (talk) 14:40, 6 June 2010 (UTC)
Assembly language(s)
editI propose that we replace the list of individual assemblers with a generic assembly language entry. Otherwise the list needs to be expanded to include (among others) the Motorola 6800, Intel 8080/8085, Zilog Z80 (different assembly language from the 8080 despite binary compatibility), IBM 7090, Data General Nova/Eclipse, etc, etc. In other words, it would become a laundry list of processors. Nibios (talk) 14:54, 6 June 2010 (UTC)
- In fact it would be worse than that, since assembly is not machine code, we should have the machine codes as well. Rich Farmbrough, 16:04, 10 February 2011 (UTC).
Make is a language
editMake is a language. The article about make says "The make language is similar to declarative programming." So it should probably be added to the list of programming languages. —Preceding unsigned comment added by 90.236.199.128 (talk) 18:19, 3 September 2010 (UTC)
Arduino is not a language
editArduino is not a language. It's a development/prototyping platform that uses C or C++. —Preceding unsigned comment added by 89.168.183.149 (talk) 22:36, 28 December 2010 (UTC)
Removed Mark Hurd (talk) 20:34, 18 June 2011 (UTC)
DEC- DAL (Digital Authoring Language)?
editI am not sure if this qualifies as an "esoteric" language, but I worked with it in the early '80s. On this site:
http://www.digiater.com/openvms/decus/vax000/catalog.94a
I found the abstract below. Since it is a catalog, I believe there are no copyright issues.
Abstract: VAX DAL (Digital Authoring Language) is a powerful, easy to learn authoring language designed for developing computer-based instruction.
VAX DAL is a high level programming language designed expressly for computer-based instruction. Some major aspects of the language are: logging of lesson performance information, screen addressing, full integration of graphics, and special response judging capabilities, including a spelling algorithm.
VAX DAL has various response judging capabilities which can be incorporated into the lesson by the author. The author can:
- Control whether or not spelling, punctuation or capitalization must be exactly as specified in the response. - Indicate whether or not extra words can be entered in the response. - Specify that the words in the response can be in any order, as long as all of the words are present. - Define multiple right and wrong answers, each with a different logic path. - Specify that the response will be an expression, which will be evaluated during the response judging process.
Any of these attributes can be altered on a question by question basis.
Digital's DAL was based on the Tutor language developed by the University Of Illinois for the PLATO Computer Aided Education system which ran on CDC systems. — Preceding unsigned comment added by 72.25.90.227 (talk) 17:40, 16 June 2013 (UTC)
Is Speed II esoteric?
editI designed applications in 1987-1990 for WANG VS using SPEED II. It was a 4GL which was also ported onto Unix. I am nor sure of the language's history after 1990. APPX retired their SPEED II product line in 2007 - see http://www.appx.com/assets/asp/dynamic_generator.asp?pageid=372 —Preceding unsigned comment added by 180.189.155.10 (talk) 06:40, 7 April 2011 (UTC)
- I would say that it's not esoteric, it's a real language (albeit probably not used in production any more, but who knows?). It should be added to this article. Ref is http://www.appx.com/history --Brian Fenton (talk) 19:21, 3 January 2021 (UTC)
- I have added a stub article for SPEED II and linked to it from this article.--Brian Fenton (talk) 13:40, 4 January 2021 (UTC)
- I would say that it's not esoteric, it's a real language (albeit probably not used in production any more, but who knows?). It should be added to this article. Ref is http://www.appx.com/history --Brian Fenton (talk) 19:21, 3 January 2021 (UTC)
Programming languages versus markup languages
editCSS is a programming language? And SQL no? Valugi (talk) 11:34, 1 September 2009 (UTC)
and what makes CSS better then HTML? CSS is a styling sheets. gute1 10:44, 4 October 2009 (UTC)
- I agree: HTML, XML, XHTML, and CSS seem to be conspicuously absent from this list. I'm adding them. Kaiserkarl13 (talk) 02:16, 12 July 2011 (UTC)
- This has come up a few times before. Most people feel that there's a significant difference between a programming language and a markup language. Things like HTML and CSS are definitely markup languages not programming languages. TeX occupies an interesting position: it's often used as if it were a markup language, but it's capable of doing computations and is Turing-complete, so it's also listed as a programming language. Jowa fan (talk) 03:47, 12 July 2011 (UTC)
- Sand and Rocks are also Turning Complete.
- I'm just saying. :) --Guy Macon (talk) 15:50, 17 June 2021 (UTC)
Algebraic modeling language
editThe first line of Algebraic modeling language calls them "high-level computer programming languages". As such, I'm undoing the undocumented deletion of AMPL by 59.180.48.198 (talk). Mark Hurd (talk) 06:21, 16 April 2012 (UTC)
Bill Kinnersley's list
editI would provide the list of Bill Kinnersley:
http://people.ku.edu/~nkinners/LangList/Extras/search.htm
I hope that it helps. Szalakóta (talk) 18:32, 7 October 2012 (UTC)
Should the "Visual xxx" implementations, or implementations in general, be included in this list?
editThere are a number of language implementations included in this list, for example Microsoft Visual C++ (which is the page for the MS product) or Visual Fortran (which redirects to Fortran). Should those be included? Various other C/C++ compilers (GCC, LCC, LccWin, ICC, etc.), for example, do not have entries here. I think these should be removed, with the obvious exception of languages where the implementation is not really distinct from the language itself. Rwessel (talk) 03:20, 19 December 2012 (UTC)
There are additionally at least two of the "Visual" languages excluded from the list: Visual Basic and, if you'd like, Visual Basic .NET. Davimack (talk) 20:37, 1 March 2022 (UTC)
I believe Visual Basic, at least, should be included due to being a highly notable language. I am hesitant to uncomment the existing entries in the list without contributing to the discussion first. Personally, should we choose to add it, I think we can just call it "Visual Basic" and link it to the .NET variant of the page. Turaiel (talk) 13:35, 28 March 2023 (UTC)
Machine Code?
editIs machine code actually a programming language? Most languages are compiled to binary, but does it actually constitute a language itself? I'd say not. Assembly language is listed also. — Preceding unsigned comment added by Prince of Strings (talk • contribs) 16:59, 14 March 2013 (UTC)
- Pretty clearly it should. As Machine code says "Numerical machine code (i.e. not assembly code) may be regarded as the lowest-level representation of a compiled and/or assembled computer program or as a primitive and hardware-dependent programming language." And very many languages are not compiled to binary, but are interpreted instead, so that's clearly not a requirement. Rwessel (talk) 07:10, 15 March 2013 (UTC)
- No, it's not a programming language, it's merely a machine encoding. We might as well list the alphabet since most programming use letters to make up their keywords. Msnicki (talk) 13:49, 8 May 2013 (UTC)
- I would say that assembly and machine code should be considered a programming language. There are multiple dialects for assembly and machine code, mostly catering towards different processors, but this was the case with BASIC as well, often catering towards different purposes or target architectures/machines/purposes. Machine code doesn't require compilation, and it is interpreted directly by the machine, but in theory, it is possible to make an interpreter for any theoretical programming language that has ever existed on any computer that supports that language's computational complexity level (e.g. NP can run P, but P cannot run NP).
- According to the article Programming Language, the first paragraph under the section Definitions reads:
A programming language is a notation for writing programs, which are specifications of a computation or algorithm. Some, but not all, authors restrict the term "programming language" to those languages that can express all possible algorithms.
- The 1's and 0's are an obvious notation for a program under this definition, and although it might not be as human readable, it still is a programming language in this sense. Those 1's and 0's notate a series of instructions for that computer's processor, which is much like commands for a shell script or a series of methods executed in a program written in C. The difference is the level of abstraction, where C++ has a moderate level of abstraction and JavaScript a high level while machine code has next to none and assembly has just enough to not require the programmer to memorize all the 1's and 0's of several different target environments (only a common set of dialects for most common processors).
- Also, machine code was the only way to program computers for decades until the advent of the first usable programming languages and was still the primary way until assembly language was introduced (and that was the primary way for everything until C).
- This is why I believe machine code should be included. impinball (talk) 22:55, 17 March 2014 (UTC)
Non-procedural Languages?
editMy recent addition of Hartmann pipelines to the list was reverted with the statement that "Hartmann pipelines are not a programming language". I disagree. Pipelines is a perfect example of non-procedural, or functional, programing.
---dav4is (talk) 10:57, 8 May 2013 (UTC)
- I reverted your addition with that edit summary. Hartmann pipelines are a specification language not a programming language. They're a variation on Unix pipelines that offer additional functionality. But they're not a whole language. There are no provisions for iteration, condition-testing, etc., that you'd expect in a whole language. Basically, it's just a feature that got added to IBM CMS. We might as well list regular Unix pipelines as a programming language distinct from the Unix shells that implement them and we don't do that, either. Msnicki (talk) 14:00, 8 May 2013 (UTC)
C-family languages
editI know that there aren't nearly as many languages that are considered "C-family" as there are BASIC dialects, but should they merit their own distinct list? Examples of entries include C, C++, and Objective C. impinball (talk) 21:36, 17 March 2014 (UTC)
- I'd say not. At the end of the day C and C++ are fairly radically different languages, whereas most Basic dialects tend to share more of a core. I suspect that such a list would end up somewhat like List of C-based programming languages, and while it's something of a judgment call, I'd say that the languages in that (fairly short, at least compared to the Basic list) list share far less than do most of the Basic dialects. In any event, the major reason for the separate Basic list is that there are just so darn many. Rwessel (talk) 03:35, 18 March 2014 (UTC)
Scratch by MIT is a huge coding language. It' needs to be added
editThis coding language is huge. It's founder Mitchel Resnick got to do a Ted Talk. There is world Scratch day with almost every users from almost every country in the world. There are users from every continent in the world except Antarctica. There is users from every state in the US. There is over 100+ events held on a single day every year called Scratch day. There was a Scratch day held in every state in America. A day were Scratchers meet together to host Scratch days. I held an event in my town. My event was the first Scratch day in my town. I live in Colorado and the nearest event was at a school in Aurora near the state capital Denver. The statistics on there site says that there is over 3 million users who have joined the site over the 6 years the site has existed. It also says there is over 6 million projects created with the coding language. These statistics are updated daily and are 100% correct because the coding language can only be used online or through the offline editor which captures data when you go online. Scratch has it's own wiki with tons of wiki contributors as well. Please add this coding language as Scratch under the S section in the alphabetical list. — Preceding unsigned comment added by Greshthegreat (talk • contribs) 16:20, 10 August 2014 (UTC)
- Am I missing something? It's already there. Rwessel (talk) 17:00, 10 August 2014 (UTC)
SQL is a Programming Language
editThe SQL Wiki page even says "SQL is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS)." We have other special-purpose languages like AWK listed, so why not SQL?
Derektom14 (talk) 03:20, 13 August 2014 (UTC)
- I agree.
- It has variables, flow control statements, user defined functions and so on. It's a programming language rather than GPSS. --Kissg (talk) 12:33, 15 September 2016 (UTC)
- I agree. I added it. Enterprisey (talk!) 20:42, 3 January 2017 (UTC)
Delphi entry?
editEither Delphi (which is rather an IDE?) should be referred as Object Pascal, either it should be removed if it considered to be a n IDE, not a Pascal dialect. — Preceding unsigned comment added by 188.24.191.112 (talk) 07:06, 4 November 2014 (UTC)
- There already is an entry for Object Pascal, which is distinct from the entry for Delphi (programming language). Borland/Embarcadero (and users) commonly use the term "Delphi" in either context, for both the IDE and for that particular dialect of Object Pascal. So it's a bit of a mess, but leaving both entries in place seems like the best choice. Rwessel (talk) 14:46, 4 November 2014 (UTC)
PCBoard Programming Language (aka PPL)
editI think community standards prevent me from adding this language, as I was the principle author, but the PCBoard Programming Language (referenced at PCBoard) provided a means to modify / enhance the BBS. It was compiled to a tokenized / "byte code" format which was then interpreted by the runtime embedded in the BBS. CasaDeRobison (talk) 20:10, 19 February 2015 (UTC)
- I think this is something of a borderline case. The general rule is that the languages need to be notable enough that they have their own article on Wikipedia, before being in this list, but we do have a number of exceptions where a language was a part of something else that has an article (see Game Maker Language, for example). But we're not listing every product that had some ad-hoc programming language in it. PPL appears to be a modest part of PCBoard, unlike GML which at least is a major part of GameMaker. So I'm not really convinced that this PPL (there's another PPL on the list already) is really appropriate to list here. Rwessel (talk) 21:13, 19 February 2015 (UTC)
- Fair enough. I personally think it is worthy of inclusion based on various factors, but as I indicated originally, I'm not going to include it myself. That being said, 99 Bottles of Beer [1] can't be wrong about what PPL stands for. ;) CasaDeRobison (talk) 05:16, 20 February 2015 (UTC)
- Why not present your arguments for inclusion? Doesn't mean we'll reach consensus to actually include it, but it certainly improves the odds over simply saying "I think it should be". Rwessel (talk) 05:34, 20 February 2015 (UTC)
- Fair enough. I personally think it is worthy of inclusion based on various factors, but as I indicated originally, I'm not going to include it myself. That being said, 99 Bottles of Beer [1] can't be wrong about what PPL stands for. ;) CasaDeRobison (talk) 05:16, 20 February 2015 (UTC)
Proposed edit filter for HTML
editI propose that we make a new edit filter preventing people from adding "HTML" to this list. There have been a large number of edits over the past few years adding it (Dec, twice in August, three times in May, twice more in April, and once in January, and that's just 2018). It's just getting to be a waste of time at this point. Pinging a couple of people who've recently reverted HTML edits: Jpgordon and General Ization. Enterprisey (talk!) 04:27, 13 December 2018 (UTC)
- Shrug. It's easy enough to revert, and doesn't actually do any harm in the meantime. 9 problematic edits in one year? Its what watchlists are for. --jpgordon𝄢𝄆 𝄐𝄇 06:32, 13 December 2018 (UTC)
- Concur. General Ization Talk 13:06, 14 December 2018 (UTC)
Add either TinyMUSH or MUSHcode
editSee MUSH, "The programming language for MUSH, usually referred to as "MUSHcode" or "softcode" (to distinguish it from "hardcode" – the language in which the MUSH server itself is written) was developed by Larry Foard. TinyMUSH started life as a set of enhancements to the original TinyMUD code. "MUSHcode" is similar in syntax to Lisp." — Preceding unsigned comment added by 2601:600:8080:1C5C:6465:AFC8:AC93:D648 (talk) 04:44, 10 April 2019 (UTC)
Náni
editthe Náni link is to a page on the Norse god, not to the code language. — Preceding unsigned comment added by 50.207.69.18 (talk • contribs) 15:51, 18 September 2020 (UTC)
- I see no Náni link on this page, and Nani does not mention any Norse god. Could you give us a hint about what you are talking about? --Guy Macon (talk) 13:05, 22 September 2020 (UTC)
DAML
edit(Copied from my talk page)
Hi Guy, I saw you deleted DAML in the list of programming languages. I suppose I should write here in your watchlist section
DAML is not an API to JSON. It’s a smart contract language like solidity (since that one is already in the list). You can interact with a ledger that runs smart contracts using JSON but that has nothing to do with DAML as a language. Hope this explains the reasoning further. — Preceding unsigned comment added by Andreolf1 (talk • contribs) 08:26, 22 September 2020 (UTC)
- So, is he right? Are smart contract languages computer languages, or are they more like markup languages?
- The smart contract article lists:
- Does the Bitcoin scripting language have a name?
- Ethereum looks like a cryptocurrency platform (It has a scripting language. Does that scripting language have a name?)
- Ripple looks like a payment protocol, not a computer language.
- Solidity looks like a computer language to me.[2]
- EOS.IO looks like a a blockchain protocol.
- Tezos is... I am not quite sure what Tezos is.
- --Guy Macon (talk) 12:53, 22 September 2020 (UTC)
Wow, above my pay grade. I am pretty sure that Ethereum doesnt have a language, and that Solidity is a language that is used on Ethereum. @Ladislav Mecir: and @N2e: care to comment? Jtbobwaysf (talk) 16:21, 23 September 2020 (UTC)
- I will abstain from the question as to DAML specifically, as I am unfamiliar with that language. But I will answer Guy Macon's question more generally about smart contract languages. While not necessarily true for all smart contract languages, any smart contract language that runs on a Turing complete computing machines (as Ethereum does, and I believe EOS does; while the bitcoin scripting language is not, as the Bitcoin protocol and network is not Turing complete), would definitely be validly considered a programming language. Ethereum has had, and currently had, multiple programming languages used to write smart contracts that run on the Ethereum EVM; including Solidity, LLL (Low-level LISP-like language), Serpent (now dead, I believe), Vyper, and others I believe) Some of those languages are used to write smart contract on other smart contract-capable blockchains, but I don't have a cross-reference list that clarifies all that. Hope that helps. N2e (talk) 21:47, 25 September 2020 (UTC)
- Sand and Rocks are also Turning Complete.
- I'm just saying. :) --Guy Macon (talk) 15:52, 17 June 2021 (UTC)
Tezos
editThe Tezos smart contract language is called Michelson. --Ysangkok (talk) 15:36, 17 October 2020 (UTC)
"Programming language" vs "markup language"
editThis is the wrong question to ask, because none of them are really designed for markup. Some of them are, indeed designed for non-turing completeness. A non-turing complete language can be embedded (as a DSL) in a turing complete language, by one definition of "language".
Some non-turing complete languages (some alternatives to Solidity) can compile to platforms that are turing-complete (like EVM).
There are also languages that compile to Bitcoin script (which is the name of the Bitcoin "smart contract" language). See BitML. --Ysangkok (talk) 15:42, 17 October 2020 (UTC)
- Sand and Rocks are also Turning Complete.
- I'm just saying. :) --Guy Macon (talk) 15:52, 17 June 2021 (UTC)
Vale
editCan we add the Vale programming language on the list? --RedViking20200702 (talk) 21:23, 12 December 2020 (UTC)
- This is a list of notable languages, not all languages, so it would need to meet minimum sourcing requirements for an article. - MrOllie (talk) 22:10, 12 December 2020 (UTC)
Semi-protected edit request on 1 January 2021
editThis edit request has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Needs link to MML page (Man Machine Language - switching language for routers, DACS frames, etc.) DemonBuddha (talk) 20:15, 1 January 2021 (UTC)
- Partly done MML appears to be a specification language. It probably doesn't belong on this specific list, but I did add it to Specification language#Languages. TimSmit (talk) 03:11, 2 January 2021 (UTC)
Semi-protected edit request on 26 January 2021
editWhitespace language not listed https://en.wikipedia.org/wiki/Whitespace_(programming_language) — Preceding unsigned comment added by Chrellrich (talk • contribs) 15:47, 26 January 2021 (UTC)
- What part of "esoteric programming languages are not included" are you having trouble understanding? --Guy Macon (talk) 15:47, 17 June 2021 (UTC)
HTML being Turning Complete
editI know the article says markup languages are not included, but should HTML+CSS receive some mention since it is now Turing complete?
Some sources:
https://lemire.me/blog/2011/03/08/breaking-news-htmlcss-is-turing-complete/
https://stackoverflow.com/questions/2497146/is-css-turing-complete/5239256?r=SearchResults#5239256 DukeOfGrammar (talk) 21:03, 6 April 2021 (UTC)
Forgot to mention these are old articles, but that shouldn’t matter because it is still about the latest iteration of HTML and CSS. DukeOfGrammar (talk) 21:04, 6 April 2021 (UTC)
Sand and Rocks being Turning Complete
editI'm just saying. :) --Guy Macon (talk) 01:47, 7 April 2021 (UTC)
😅 Fair point. DukeOfGrammar (talk) 14:43, 7 April 2021 (UTC)
So, I was reading through previous discussions, and someone used the argument of TeX being Turing complete. If it is a markup language that is on here, why not HTML? DukeOfGrammar (talk) 19:01, 8 April 2021 (UTC)
- I removed Tex and added the comment
<!-- [[TeX]] is a markup language, not a programming language -->
please let me know if you find any other markup languages listed. - Getting back to the "Turing complete" argument, is Rule 110 a programming language? I think not. --Guy Macon (talk) 15:30, 17 June 2021 (UTC)
Unix shells as programming languages
editFor years, the various Unix shells, each slightly different, have been included in the list of programming languages. Early this month, Guy Macon commented them out at [3] as "not a programming language". I reverted the change at [4] and Guy Macon has reverted it back at [5] and inserted Shell script as a language.
I do not know why Guy Macon does not believe Unix shells are programming languages. Most (all?) Unix shells include constructs for condition testing, iteration, expression evaluation, variables, arrays, and procedures -- the usual defining characteristics of a programming language -- and they are routinely used for performing complex activities using programs saved as scripts that may run for thousands of lines. I also do not understand why Guy Macon believes a shell script is a language since the term doesn't identify a particular shell language and only refers to the generic notion of saving a program written for a particular shell as a file.
To me, it seems very clear that the various Unix shells are definitely programming languages and that Shell script is not a language. I believe Guy Macon's changes should be reverted. I am requesting discussion. Msnicki (talk) 13:43, 17 June 2021 (UTC)
- This page has had inline comments such as
<!-- [[Bash (Unix shell)|bash]] not a programming language -->
for years, so this is not by any means a new thing.
- Is MS-DOS a programming language? It runs DOS Batch language but it isn't, itself, a programming language. Is the text-based CP/M user interface a programming language? --Guy Macon (talk) 13:57, 17 June 2021 (UTC)
- No, MS-DOS is not a programming language. It was the name of a very simple operating system that included a simple file system and application programming interface, nicely described in DOS API, packaged and sold as a product that included a number of very simple applications, including COMMAND.COM, which implemented a simple command language. Our article on COMMAND.COM correctly describes it as "a DOS program. Programs launched from COMMAND.COM are DOS programs that use the DOS API to communicate with the disk operating system." I never used CP/M but my expectation is that its command processor was also written as an application that used an underlying CP/M API to execute commands.
I think you may be confused about the difference between an operating system and applications that run on top of an operating system.Shells and command processors are applications that run on top of an OS and they implement programming languages with language constructs suited to interactive use and for scripting. They are commonly distributed with an operating system but they are not part of the OS. They run as applications. Msnicki (talk) 16:31, 17 June 2021 (UTC)
- No, MS-DOS is not a programming language. It was the name of a very simple operating system that included a simple file system and application programming interface, nicely described in DOS API, packaged and sold as a product that included a number of very simple applications, including COMMAND.COM, which implemented a simple command language. Our article on COMMAND.COM correctly describes it as "a DOS program. Programs launched from COMMAND.COM are DOS programs that use the DOS API to communicate with the disk operating system." I never used CP/M but my expectation is that its command processor was also written as an application that used an underlying CP/M API to execute commands.
- (edit conflict) but too lazy to reframe the text now that Guy ahs actually responded My guess is that Guy Macon's argument is that calling any particular shell a programming language, rather than shell script, is like calling "javac.exe" a programming language rather than the Java language. The argument being that any individual shell is the interpreter of a language, not the language itself; while some of the specifics of the language you use with each shell is slightly different, they are all minor variations of a single language--shell scripting--rather than languages in their own right, and either way, it's "shell script with csh/bash/etc. flavor", not separate languages called "csh", "bash", etc. FWIW, if that's Guy's position, I'd tend to agree; I think it makes more sense to include shell scripting but not each individual shell, perhaps in a similar way to the note at the top of the page that indicates we don't list each dialect of BASIC separately. Writ Keeper ⚇♔ 14:00, 17 June 2021 (UTC)
- Yes, that is essentially what I am saying. A very interesting edge case is the Commodore 64 operating system. For those to young to remember it (get off my lawn, you damn kids!) you can run it in a browser here:[6][7][8] It drops you right into BASIC (with a few extensions to handle loading and storing to cassette or floppy) and if you make a mistake it returns the standard BASIC "Syntax Error" message. The original IBM PC Cassette BASIC (for IBM PCs with no hard drive or floppy, just a cassette tape drive) was similar, but with no floppy or hard drive support. We get away with not listing either because of our "don't list every BASIC variant" decision, but if we hadn't decided that would they be considered operating systems or programming languages? In the case of Cassette BASIC there is no MS-DOS because there is no floppy to load it from. In the case of the C64 you could load operating systems such as GEOS from BASIC. But then again, so can the BIOS on my PC. --Guy Macon (talk) 16:00, 17 June 2021 (UTC)
- @Guy Macon:, I'm asking why you don't think Unix shells are programming languages and I don't think you've addressed that. Instead, you seem to be offering whataboutism, first with MS-DOS and CP/M, now with this. The claim that a Commodore 64 was sold as a machine that could only run BASIC does not, for me, blur the question of what we commonly accept as the difference in all modern operating systems between the OS API and the applications that run on top of the OS. Without seeing the code, it seems very likely that whoever wrote the Commodore 64 system was aware of this classical structuring and probably wrote it as two parts, a minimal OS and the BASIC language implementation running on top of it. As you point out, BASIC is already included in our list and there is an existing consensus that we will not list individual variants of BASIC; I'm fine with that, but if you think the Commodore 64 BASIC needs a separate mention, you're welcome to make the case. Either way, I don't see how this explains why you don't think the Unix shells are programming languages. Are there capabilities that you think all PLs must have to be genuine PL and which they lack? I'm trying to understand your objection. Msnicki (talk) 16:31, 17 June 2021 (UTC)
- @Writ Keeper:, yes, each shell is an implementation, but each implements a particular language and for each shell, the language is robust and well-defined. And the languages are not just "slightly" different. For example, C shell language constructs are very different from those provided by the Bourne shell. The name of the shell is understood to mean the language you get with that shell, as explained in the articles we have on each shell. Msnicki (talk) 16:31, 17 June 2021 (UTC)
- COMMENT*: What does Steve Bourne say? Beginning of Chapter 4 of "The Unix System" (1983)... "The shell is both a programming language and a command language and is often referred to as the command interpreter of the UNIX system." That ought to be a clincher, but anyway we should ask questions as to whether the reader is helped, not whether a lawyer might make money off it. The characteristics of what the shell does include things which characterise languages, like parameters, control structures; to say it is "not a programming language" only obfuscates. Imaginatorium (talk) 18:23, 17 June 2021 (UTC)
- I don't think that's either Guy's or my opinion, though. We're not saying that these aren't programming languages at all, we're saying that the different shells aren't separate programming languages from each other, such that they all have to be listed individually. I think everyone is in agreement that some form of shell scripting should be included in this list; it's a question of a single link to shell script, or many links to each individual shell. Writ Keeper ⚇♔ 18:31, 17 June 2021 (UTC)
- Please note that I added shell script to the list of programming languages, so clearly I believe that shell script is a programming language. What I do not believe is that a shell and a shell script are the same thing. I also do not believe that Job Control Language is the same thing as z/OS. --Guy Macon (talk) 18:44, 17 June 2021 (UTC)
- I don't think that's either Guy's or my opinion, though. We're not saying that these aren't programming languages at all, we're saying that the different shells aren't separate programming languages from each other, such that they all have to be listed individually. I think everyone is in agreement that some form of shell scripting should be included in this list; it's a question of a single link to shell script, or many links to each individual shell. Writ Keeper ⚇♔ 18:31, 17 June 2021 (UTC)
- Even though most (all?) Unix shells fall into two general categories of following in the style of either the original Bourne or the original C shell, many (most?) were written completely independently and provide very different sets of language features. For example, the original Bourne and C shells do not provide procedures or functions but KornShell and Hamilton C shell do, but they do it differently. That's a pretty big language difference. I think it warrants listing all the Unix shells as we've been doing. We're not running out of pixels. Finally, there is no such thing as the one and only script language. A script is a file containing a program written in any interpretative language of your choice, whether that be sh, csh, or Python, or the text stored in the file. A script is not a programming language. It contains a program written in a programming language. Msnicki (talk) 18:52, 17 June 2021 (UTC)
- Yes, different shells define different programming languages (which are all shell script languages), just like Common Lisp and Scheme are different programming languages, even though they provide similar features. Strictly speaking, different versions are actually different programming languages, even though they are generally identified (the word "dialect" is sometimes used to differentiate them, e.g. by GCC, and sometimes for very similar languages, see Lisp). — Vincent Lefèvre (talk) 20:00, 17 June 2021 (UTC)
- @Guy Macon:, @Writ Keeper: It'd have been nice to get more discussion and I'm happy to let it continue in hopes we get some more. But a quick temperature check to see where we are might be helpful. Based on the discussion so far, do you accept the argument that Unix shells are programming and scripting languages, that they're all slightly different, and that shell script is not a programming language? Or do you still object? Basically, I'm asking if you concede you're unlikely to get consensus for Guy's changes and if I may revert them. If you do object, it'd helpful if you could state your objections as regards Unix shells and shell scripts specifically, not what about MS-DOS, CP/M, Commodore 64s, JCL, z/OS or other things which are neither Unix shells nor shell scripts. Msnicki (talk) 14:47, 19 June 2021 (UTC)
- I do not find your arguments to be persuasive. I strongly oppose the claim that Unix shells ARE (as in "the exact same thing as") programming or scripting languages. They aren't languages at all. They are command line interfaces that include scripting. This morning I used Bash to start an instance of Apache and to run KiCAD. According to your logic, that means Unix shells are web servers and Unix shells are CAD systems. --Guy Macon (talk) 18:54, 19 June 2021 (UTC)
- No, none of that is "by my logic".
I think you are confused on what shells do and how they work.Yes, the whole point of a command processing or shell language is so you can start other applications easily and control what happens with them. But starting Apache from bash does turn bash into Apache. Instead, you get an Apache child process and you still have the bash parent process. Yes, all the Unix shells include features for interactive use but ultimately, it's still a programming language you have to type, a language that's been designed to be useful both interactively with short programs of a few lines typed right at the command line and for creating executable script files of perhaps thousands of lines. If a script file is marked executable, Linux picks the appropriate shell or interpreter based on the#!
header in the first line. Msnicki (talk) 19:27, 19 June 2021 (UTC)
- No, none of that is "by my logic".
- Also, you didn't respond to @Imaginatorium:'s observation that Steve Bourne claims a shell is indeed a programming language. As the author of the Bourne shell, wouldn't he be a pretty authoritative and reliable source on this point? Never mind that you don't find me persuasive, you don't find Steve Bourne persuasive either? Msnicki (talk) 20:21, 19 June 2021 (UTC)
- No. I don't. Stephen R. Bourne is a computer scientist, not a linguist. And he wrote that in 1983 -- almost 40 years ago. Language evolves. And computer scientists very commonly use the term "is" when they mean something else such as "is a subset of", "is an example of", "is very similar to", "has the some of the aspects of" or "can be thought of as". That's why you see so many computer scientists and programmers "==" in the middle of an English sentence to indicate that two things with different names are the same thing. Human languages, unlike computer languages, are often imprecise and ambiguous. --Guy Macon (talk) 01:08, 20 June 2021 (UTC)
- This is a list of programming languages, it is a not list of human languages. Linguists are not experts in programming languages. The experts in programming languages are computer scientists.
I'm surprised by your confusion on this point.Also, it is not helpful to debate the meaning of the word "is" or how it's used. Msnicki (talk) 02:31, 20 June 2021 (UTC)
- This is a list of programming languages, it is a not list of human languages. Linguists are not experts in programming languages. The experts in programming languages are computer scientists.
- You seriously think that "a shell is indeed a programming language" is statement in a programming language and not a statement in the English language (the area where linguists are exerts and computer scientist are not)? You may think "it is not helpful to debate the meaning of the word 'is' or how it's used", but that's just because you are misusing it.
- I am done responding to you. Feel free to try to get a consensus that Unix shells are programming languages. (If anyone reading this thinks they are, now would be a good time to speak up). --Guy Macon (talk) 04:58, 20 June 2021 (UTC)
- Since you're the one seeking a change, it's YOU who needs consensus support. And it's clear you don't have it. Only one other editor half-heartedly supported you; everyone else disagreed. (@Writ Keeper: do you still support Guy's changes?) I was willing to listen to new discussion but if you've declared it over, you've lost and your changes need to be reverted. Msnicki (talk) 06:11, 20 June 2021 (UTC)
- Honestly, the two of you are talking completely past each other. Guy, yes, I agree that technically "csh", "bash", etc. refer to actual programs that function as interpreters, not overall language specifications, which is why you're saying they're not programming languages. But I think you will be better served by assuming that the terms "csh", "bash", etc. are metonyms that refer to the particular scripting language as used in those interpreters, rather than insisting it refers to only the interpreter itself. AFAIK there aren't any more specific terms that refer to strictly the scripting languages themselves (apart from maybe "bash scripting" in the specific case of bash). Msnicki, it sure feels like you're choosing not to see or engage with Guy's analogies (which is what they are), instead preferring to tell him that he's "confused". That does not a healthy discussion make. You continue to insist that Guy thinks that all shell scripting languages are not programming languages, when that has never been his point. The Bourne quote is irrelevant, because again, the question is not "do the various dialects of shell scripts count as programming languages?" That is the question the Bourne quote is answering, but none of us have ever been in disagreement about that. And given that we're here to write an encyclopedia, not an API spec, the human language we use to describe the programming languages is at least as important as the programming language itself. not to imply that human language isn't also important in API specs; I've learned that the hard way.
- The actual question, again, is: are the various dialects of shell scripting unique enough to warrant inclusion separately from each other? Ultimately, there is no objectively correct answer to that question; it's a matter of editorial judgment. Precedent points in both ways: we don't include all the different variations of BASIC, which I suspect are fundamentally as disparate as the different shells are. But we do include things like the various flavors of LISP or versions of ALGOL. FWIW, I stand by my instinct that there are too many different shells that are too similar to each other to list them all I would rather we include a single link to a superset of the different shells, which could be shell scripting or perhaps Unix shell (the latter of which is already in the list). Frankly this list is already too long as it is.
- Really, the more I think about it, the less I understand the use of this list as it currently exists. I mean, I get why we feel it's necessary to have one; it would I guess be weird if we didn't have a list of programming languages somewhere. But I don't really know what function it serves for a reader; there is a huge glut of information in the list and not nearly enough context to make sense of any of it. It might be useful if it were organized in a more interesting order than alphabetical; if we instead grouped programming languages by, for example, procedural vs. object-oriented vs. functional, I might see a clearer purpose for this list. But as it is, I don't really see a use for it, so arguing about whether to include individual shells seems to be missing the point. It feels like (analogy time!) we've torn all the pages out of a copy of Dune, tacked them all up onto a single billboard, and are now debating whether we should tack up the pages of the appendices, as well. One side is saying "these are part of the book, so they should go up!", the other is saying "no, that would be too much information!", but either way, the book has been rendered, for all practical purposes, unreadable.
- TL;DR: I'm not really convinced this is a useful or interesting discussion any more; I think the list has (literally) bigger problems than how we handle UNIX shells. Writ Keeper ⚇♔ 07:34, 20 June 2021 (UTC)
- Since you're the one seeking a change, it's YOU who needs consensus support. And it's clear you don't have it. Only one other editor half-heartedly supported you; everyone else disagreed. (@Writ Keeper: do you still support Guy's changes?) I was willing to listen to new discussion but if you've declared it over, you've lost and your changes need to be reverted. Msnicki (talk) 06:11, 20 June 2021 (UTC)
- Okay, point taken re: comments about confusion. I've struck those sentences and apologize. Msnicki (talk) 13:56, 20 June 2021 (UTC)
- List of programming languages by type § Command line interface languages and List of programming languages by type § Scripting languages
- Command-line interface language (Command-line program) and Scripting language – what's the difference between these types? They both include Unix shells. – wbm1058 (talk) 23:23, 20 June 2021 (UTC)
- See List of command-line interpreters. – wbm1058 (talk) 23:26, 20 June 2021 (UTC)
- Unix shells are both command line interface and scripting languages. The difference is the use case and which features of a shell might be most important for that use case. For the command line interface use case, features like history, command line editing and filename and command completion are very helpful. But powerful programming constructs are somewhat less important because most user only type very small, perhaps 3 or 4 line "programs" interactively at the command line. For the scripting use case, interactive features are mostly unimportant but the programming constructs for iteration, condition-testing, expression evaluation, procedures, arrays, etc., are more important because users write more complicated programs as scripts. Msnicki (talk) 23:35, 20 June 2021 (UTC)
Garmin Monkey C
editDoes the propriety Garmin "Monkey C" used for developing applications for their Connect IQ platform qualify as significant enough for this list? WikiWonder159 (talk) 03:08, 12 January 2022 (UTC)
amharic
editInclusion of Implementations
editI see that the language Chicken has been removed from the index. I assume that this is because it is an implementation of scheme and not an entirely distinct language. Assuming that this is the case, should languages such as Jython not also be removed for being implementations of other langauges? — EclecticCanine (talk) 17:46, 30 January 2022 (UTC)
Extended-confirmed-protected edit request on 15 February 2022
editThis edit request has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Add HTML the list of programming languages 69.49.75.243 (talk) 11:29, 15 February 2022 (UTC)
- Not done: HTML is markup, not programming. ScottishFinnishRadish (talk) 11:50, 15 February 2022 (UTC)
Extended-confirmed-protected edit request on 15 February 2022 (2)
editThis edit request has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Please add Asymptote Hlorri (talk) 12:01, 15 February 2022 (UTC)
- Not done: Asymptote is a Vector Graphics Language, not programming language. Vitaium (talk) 12:02, 17 February 2022 (UTC)
Concerns about how this list defines programming languages
editThis page has a serious identity crisis. The note that markup languages are excluded exemplifies this:
- If markup languages by definition aren't programming languages or vice vera, then wouldn't the fact that there are no markup languages on this list just be obvious from the page's subject? No need to specify on a list of fruits that it doesn't include meats, right? From this point of view, it's entirely redundant clutter.
- If markup languages can also be programming languages, then don't those languages belong in this list? Taking this perspective, it completely contradicts the page's apparent purpose.
Simply put, that note shouldn't have any reason to be there. I imagine the reason it is there is because there are serious disputes over what does and does not belong on this list, and what it means is "markup languages aren't programming languages, so please don't add them." It's mainly a note for the benefit of potential contributors so that they don't waste their time or start an edit war.
This raises a concern, though. If this note means that markup languages aren't programming languages, then that means that the consensus is that view #1 is correct. Of course that's not what the note actually states, but it definitely implies it, meaning that somewhere in between all the disputes and the inclusion of that notice, someone decided on what "the truth" is in this situation, and rather than citing anything, they simply asserted it as fact. It seems to me that this is contrary to how Wikipedia usually operates (though I'll pick that apart more fully via related topics in a bit).
Of course, if there is a universally accepted definition of a programming language, all it'll take is citing that definition to resolve the issue. So let's take a look, shall w-... Oh. Well. That was fast.
- Some authors restrict the term "programming language" [...].
- Traits often considered important for what constitutes a programming language include [...]
- Programming languages usually contain [...]
- Markup languages [...] are not usually considered programming languages.
That doesn't sound universal or objectively defined in the slightest! A list needs selection criteria. These should be "unambiguous, objective, and supported by reliable sources". But given what we just uncovered, that appears impossible. Luckily, Wikipedia provides guidance for this, too: "In cases where the membership criteria are subjective or likely to be disputed [...], it is especially important that inclusion be based on reliable sources given with inline citations for each item."
Okay, so based on that, this page needs some changes, even if the way potential entries are considered doesn't change. But are there issues with that last bit? Well, if we can conclude that the term "programming language" is a subject with significant disputes, then yes, I think there are. Lists like this are still subject to the Neutral point of view principle. The way that this list is curated seems far from neutral.
I do also want to point out that we sometimes need to make necessary assumptions, since that's potentially a counterpoint to my argument here. Here are some of my observations regarding this view:
- The way this list is named and described does not preclude or necessitate any particular definition of what a "programming language" is. I think this is an argument against the necessity of assuming a particular definition because the contents of this list ought to be relevant whatever your opinion is on that definition.
- This is a stand-alone list, not an article. Furthermore, what constitutes a "programming language" is already discussed in depth on the page Programming language. This is an argument in favour of making an assumption regarding its definition.
- There are potentially other, less confusing ways to avoid controversy. For instance, being clear that the page includes minority views and erring on the side of including languages in the list. Of course we do need to be careful not to give minority positions undue weight, but as an index, and one that's not all that big, I think its utility will only increase if the selection criteria are made a little more lax.
I would very much like to hear someone else's thoughts on this, since I'm conflicted on how to interpret this guideline myself. Regardless though, I think it may be possible to make a small change right now without much controversy based on something else mentioned in this section: "a brief, unobtrusive pointer might be appropriate."
Pending anything more thorough, I think a small note about the definition used can definitely help to clarify things, and can be combined with the note about the exclusion of markup languages to make it less redundant and provide a reason. E.g. "Markup languages are excluded because they are not usually defined as programming languages", with a link to the definitions section on the programming language page, though I'm sure there's more elegant ways to phrase it.
I hope that by voicing these concerns, it becomes possible to no longer get stuck on disputed definitions and individual opinions. I'm certainly not arguing for any specific definitions or inclusions in the list, and that's the point. If it's possible to sidestep all the major sources of conflict, perhaps a more focused effort on improving the page can be made. 80.61.104.97 (talk) 13:44, 16 February 2022 (UTC)
- Yes, I think this is a problem. I can only see two* ways to resolve it: either just let anything go in the list, on the grounds that these "list" articles are pretty low in value at the best of times. I think a better way would be to restrict the list to "General purpose programming languages". These are languages (L) which get a Yes to the question: "I want to write a program to run a 'Wiki' encyclopaedia; could I (at least in principle) do this in L?" This is slightly an engineering question, rather than an abstract mathematical one, but it means that for example Lisp, Fortran, PL/I, etcetc would be included, but not SQL, HTML, CSS, and many other special-purpose languages. The problem with getting too involved in abstract arguments, is that there is a theoretical question about whether SQL is Turing-complete (or something), which misses the more general distinction; SQL is a database query language. Similarly, with sufficient ingenuity, you can at least write a "program" in html to divide numbers (something like a table, which allows you to resize the width, showing the quotient down the left side, as the numbers in boxes flow); but this does not make it a programming language in any normal sense. The WP article you cited has some interesting observations on the way in which "non-programming" computer languages (css, for example) might be much better designed if their creators were more informed of the ideas that go into ("real") programming languages, and this results in the article being very non-commital about what a programming language actually is - but this is a result of the authorless mechanism of writing that is WP.
- The other day I removed AutoHotkey, saying "not a programming language"; someone reverted this saying "Yes it is, look at the article"... but the article actually says "scripting language". I know nothing about AutoHotkey except what I read, but it seems fairly clear it is not a general-purpose programming language.
- * I thought I had at last found a counterexample to Chandler's Principle: "If you say there are only two anythings, before you get more than halfway through the second you have though of a third". Of course it wasn't: even if there is concensus to remove something, it is very difficult to prevent it getting put back in later. The third option would be to have a list of (really) general-purpose programming languages, followed by a "selected" (what a hope!) list of special-purpose and other languages. At least all of the junk would be in the lower part of the page. Imaginatorium (talk) 16:32, 17 February 2022 (UTC)
- I did the revert on AutoHotkey, just based on available information on Wikipedia. Note that WP says that a scripting language is a programming language: "A scripting language or script language is a programming language for a runtime system that automates [...]" And in the description of AutoHotkey: "AutoHotkey scripts can also assign, retrieve, and manipulate variables, run loops [...]" and "Prototyping before implementing in another, more time-consuming, programming language.", and there is malware written in AutoHotkey. Now, AutoHotkey may be designed for a specific context, but this may be the case for other programming languages that are listed. I think that XSLT is close to that (at least in practice). — Vincent Lefèvre (talk) 18:17, 17 February 2022 (UTC)
- The opposite of a general purpose language isn't a scripting language but a Domain-specific language, and AutoHotkey is pretty clearly one of those. I don't think we should be including DSLs on this page. MrOllie (talk) 19:09, 17 February 2022 (UTC)
- I did the revert on AutoHotkey, just based on available information on Wikipedia. Note that WP says that a scripting language is a programming language: "A scripting language or script language is a programming language for a runtime system that automates [...]" And in the description of AutoHotkey: "AutoHotkey scripts can also assign, retrieve, and manipulate variables, run loops [...]" and "Prototyping before implementing in another, more time-consuming, programming language.", and there is malware written in AutoHotkey. Now, AutoHotkey may be designed for a specific context, but this may be the case for other programming languages that are listed. I think that XSLT is close to that (at least in practice). — Vincent Lefèvre (talk) 18:17, 17 February 2022 (UTC)
Bhaiscript
editthis is now an actual programming language. we have to just add it here? Bhavik Mahalle (talk) 10:03, 15 March 2022 (UTC)
- The list isn't meant to contain every language ever made, that would be pointless. To make the list a language has to be notable in some way. EclecticCanine (talk) 23:55, 4 April 2022 (UTC)
Why do we keep deleting Bolt by Unity?
editWe need Bolt as it is basically a Visual Programming language. You hear me? — Preceding unsigned comment added by BuildersHutGames (talk • contribs) 16:04, 31 May 2022 (UTC)
- @BuildersHutGames: Bolt (the scripting language of the Unity game engine) may or may not be a legitimate programming language. The Unity page barely mentions it. I recommend that you expand the Unity article with a section on the Bolt language, with proper citations, and then see if you can get others to agree with you that it is a legitimate language. In general, I believe the list is intended for more general-purpose languages rather than script interpreters built into specific platforms. WikiDan61ChatMe!ReadMe!! 16:22, 31 May 2022 (UTC)
Where is Brainf**k?
editI see Brainf**k when I edit the Article (Edit page), but where is it in the real article? — Preceding unsigned comment added by BuildersHutGames (talk • contribs) 16:35, 1 June 2022 (UTC)
- @BuildersHutGames: It's commented out. The syntax
<!-- [[Brainfuck]] belongs on the esoteric page -->
- is an HTML comment (
<!-- Comment here -->
. WikiDan61ChatMe!ReadMe!! 22:38, 1 June 2022 (UTC)- But why was the decision made to comment out the Brainf**k bit?
- (Also I think Brainf**k should have two asterisks because I think that's what the original creator named it. Brainf**k.) BuildersHutGames (talk) 23:15, 1 June 2022 (UTC)
- The opening of the list says esoteric programming languages are not listed. - MrOllie (talk) 23:52, 1 June 2022 (UTC)
Selection criteria
editMuch of the discussion on this page regards whether any given entity qualifies as a programming language. As a more basic selection criterion, can we agree that only entities with extant Wikipedia articles should be included. This list provides no details other than the names of the selected entities, so without a Wikilink, the name is a pointless addition to the list. WikiDan61ChatMe!ReadMe!! 16:55, 1 December 2022 (UTC)
- Agree 100%. WikiDan61ChatMe!ReadMe!! 13:33, 8 January 2023 (UTC)
- If everyone agrees to this restriction, I'd suggest adding the qualification to the opening lines of the page. I just had an addition reverted because it wasn't an extant article. That's fine, but if this list had started by saying that it's a "list of existing pages" then I wouldn't have added an external link. BrianWilloughby (talk) 01:33, 27 January 2023 (UTC)
- @BrianWilloughby: The lead does say that this is a list of notable programming languages (emphasis added). At Wikipedia, it is widely understood that lists of "notable" things should only include things that already have their own Wikipedia article. Wikipedia tries to avoid self-reference it its articles, so mentioning that "this is a list of programming languages with extant Wikipedia articles" would violate that. WikiDan61ChatMe!ReadMe!! 04:31, 27 January 2023 (UTC)
- @BrianWilloughby: When reading the page, it is also very visible that each item (programming language) has an internal link. — Vincent Lefèvre (talk) 13:53, 27 January 2023 (UTC)
- fair enough. Thanks for the responses and explanations. BrianWilloughby (talk) 22:36, 28 January 2023 (UTC)
- This list of programming languages is troubling, to say the least. From investigating the articles of various languages, not sure if this is bias or unseen moves behind the scense to favor or only show specific languages. What constitutes notability and reliable sources appears to be uneven, unfairly applied, and full of bias (for or against specific languages). Some languages need to "prove" themselves to the nth degree (and likely will never get an article for spite), while others barely need to prove or show anything (unbelivable that they have an article). The "notability" of various languages is confirmed with very few references, mostly primary sources (enjoy the self promotion), little media coverage (even from programming or computer related sources), or minor usage (little coverage on GitHub or anywhere else). Where other known languages, don't even have a draft or their drafts are continously and oddy ripped to shreds (for many years) or removed by hidden competing interets (eliminate competition?).
- fair enough. Thanks for the responses and explanations. BrianWilloughby (talk) 22:36, 28 January 2023 (UTC)
- @BrianWilloughby: When reading the page, it is also very visible that each item (programming language) has an internal link. — Vincent Lefèvre (talk) 13:53, 27 January 2023 (UTC)
- @BrianWilloughby: The lead does say that this is a list of notable programming languages (emphasis added). At Wikipedia, it is widely understood that lists of "notable" things should only include things that already have their own Wikipedia article. Wikipedia tries to avoid self-reference it its articles, so mentioning that "this is a list of programming languages with extant Wikipedia articles" would violate that. WikiDan61ChatMe!ReadMe!! 04:31, 27 January 2023 (UTC)
- If everyone agrees to this restriction, I'd suggest adding the qualification to the opening lines of the page. I just had an addition reverted because it wasn't an extant article. That's fine, but if this list had started by saying that it's a "list of existing pages" then I wouldn't have added an external link. BrianWilloughby (talk) 01:33, 27 January 2023 (UTC)
- 1) Winbatch? Deserves a page, but doesn't have one (and how is it even on this list?). 2) Boo (not seeing how its on the list and not some noteworthy others). 3) Boomerang. 4) Pizza (talk about doing the minimum). 5) Zeno (must have the same friends as Pizza). 6) Zig (apparently self promotional, no books on it, and appears to have friends in the right places too). There's more, but we get the point. This seems to be an agreed upon guarded list of favorites, more than anything else. — Preceding unsigned comment added by 126.215.54.12 (talk) 05:20, 29 July 2023 (UTC)
@126.215.54.12: The criteria for this list are clear enough: a programming language should be considered "notable" if there is an extant Wikipedia article about the language. For the specific examples you've cited:
- Winbatch had an article, but as the result of a deletion discussion, it was reduced to a redirect. This language should be removed from this list.
- Boo (programming language) has an article. If you don't think it should, you are free to nominate it for deletion. I'll note that the article has twice been nominated for deletion in the past, with both discussions resulting in the article being retained, so perhaps your opinion of this language is not shared by others.
- Boomerang also has an article, albeit a minimal one. Again, you are free to nominate for deletion.
In general, the response is the same for all of your suggestions: if the language no longer has a valid article, but only a redirect, I recommend removing it from this list. If the language still has an article, but you feel it doesn't merit one, nominate it for deletion. If there is an language that you feel merits inclusion that isn't here, create the article, and if it doesn't get nominated for deletion, the language can be included here. WikiDan61ChatMe!ReadMe!! 12:14, 30 July 2023 (UTC)
Concurrent Pascal, Pascal Plus?
editBoth important in the history of programming languages even if not widely used and children today haven't heard of them. Too many recent languages in this list are just minor variations on a common theme with little originality. And of course Landin's ISWIM is missing. Perhaps a reference to "The Next 700 programming languages" would be a good idea? Are we the yet:-) 81.140.176.205 (talk) 20:47, 11 February 2023 (TC)
- @81.140.176.205: Concurrent Pascal seems a sensible addition; Pascal Plus not so much, due to the lack of a Wikipedia article for it. ISWIM falls under the realm of "esoteric languages", most notably because it has never actually been implemented. WikiDan61ChatMe!ReadMe!! 22:30, 11 February 2023 (UTC)
Dialects of BASIC
editI'm quite confused - why aren't dialects of BASIC included? It seems quite arbitrary in my opinion that dialects of C are included but dialects of BASIC are not.
- Basic
- Visual Basic
- MapBasic
To name a few, have significantly different syntaxes from one another and yet are all bundled under the random "dialects of BASIC" category which seems super arbitrary...?
BASIC:
10 PRINT "Before subroutine"
20 GOSUB 100
30 PRINT "After subroutine"
40 END
100 PRINT "Inside subroutine"
110 RETURN
Visual Basic scraps the need for line numbers while also adding OOP too:
Sub main()
Debug.Print "Before subroutine"
Test
Debug.Print "After subroutine"
set Fred = new Person
Debug.Print Fred.greet()
End Sub
Sub Test
Debug.Print "Inside Subroutine"
End Sub
MapBasic adds a bunch of SQL-like syntax, even though the root is in BASIC:
Sub ShowMap(tableName As String)
if not tableinfo(tableName, TAB_INFO_OPEN) then
open table tableName
end if
select * from tableName into tmpMap NoSelect
Create Map From tmpMap Auto
windowID = FrontWindow()
Set Window windowID Title "Map of " & tableName
Close table tmpMap
End sub
Sancarn (talk) 22:01, 22 February 2024 (UTC)
- @Sancarn: I can't say for sure, but I suspect it's because there are simply too many of them. One could start a separate list only on the varieties of BASIC. To be clear, however, your addition of twinBASIC was not rejected because it is a variety of BASIC (although that would have been sufficient on its own) but because this list is also limited to languages that already have their own Wikipedia article, which twinBASIC does not. WikiDan61ChatMe!ReadMe!! 22:08, 22 February 2024 (UTC)
- @WikiDan61 Yes I saw your reasoning and thought it was fair enough. I realised that BASIC languages weren't included before you reverted my change. It's a difficult one because arguably most languages on this page are C-like so are they dialects of C? The distinction seems quite arbitrary and perplexing even if there are a lot of them... Sancarn (talk) 22:19, 22 February 2024 (UTC)