Talk:Lists of programming languages

TODO:

 * Syncronize languages in each list
 * Add summary beside each language (maybe?). Possible format:
 * BASIC - Acronym for Beginners All-purpose Symbolic Instruction Code, BASIC is a general purpose, compiled language for many platforms. Some dialects and implimentations are interpretted. Others have incorporated object oriented concepts. Based partially on Fortran II and Algol 60. Originally implimented for time-sharing mainframes in 1964 at Dartmouth College by John George Kemeny (1926-1993) and Thomas Eugene Kurtz (1928-) on the GE-265. BASIC is used often in education.
 * Remove 'Language Type' categories from 'Language Categories' section.
 * Separate alphabetical list from list of categories.

(Rlee0001 03:30 Oct 28, 2002 (UTC))
 * "Add summary beside each language (maybe?)" I disagree, the page is cluttered as it is. If we add more summary clutter it will become more difficult to spot junk. Dd75sg (talk) 04:15, 9 March 2009 (UTC)

Cocoa is a framework written in Objective C, not a programming language - Anonymous Coward

Markup Languages
I don't know if this has been discussed yet, but I notice that you include HTML, XML and other markup languages as programming languages on this list. In my computer science courses it was commonly taught that HTML does not constitute a programming language, because it is not compiled in any way. There may be more subtleties to this discussion, but I thought I would bring it up. Does anyone else have an opinion or expertise on this subject? -DropDeadGorgias 22:01, 6 Oct 2003 (UTC)
 * Umm, has anyone else given this any thought? I haven't gotten any response from this post.  Either I'm wrong, or I'm right, I just want to know; if I'm right, there should be a separate list for markup languages, script languages, etc.  Is there anyone with domain expertise in this area? - DropDeadGorgias 21:05, Feb 20, 2004 (UTC)


 * The question whether HTML (etc.) is (are) (a) programming language(s) has made for a number of arguments in the past, and there are really no clear enough definitions of what a programming language is and isn't (or should and shouldn't be), and where the domain of programming languages ends and that of mark-up languages begins. The only formal property (as opposed to intuitive classification) that people tend to quote to distinguish mark-up languages from programming languages is their Turing-(in)completeness; however, this argument breaks down when you think about how, if you consider recursive functions a programming language on the grounds that they are Turing-complete, then primitive recursive functions aren't really very much different, and yet they are not Turing-complete.


 * Even worse is the distinction between programming languages and scripting languages, since both of them tend to be Turing-complete. Another argument often brought forward is whether they are compiled or interpreted; in the times of Basic and Pascal, this distinction was pretty clear-cut, but with more and more programming languages bridging the gap (e.g. Java being compiled into bytecode which is then interpreted and sometimes being just-in-time compiled, or Perl originally having been interpreted but now being processed rather like a just-in-time compiled language), this also falls down.


 * In summary, unless some sort of official authority comes forward and clearly defines what a programming language is and isn't, we should not attempt to classify computer languages into such groups. And such an authority is going to meet a lot of opposition and cause a lot of controversy, especially around Perl and Java. The best way to handle this all is to call it all a programming language.


 * End of essay. -- Timwi 22:18, 20 Feb 2004 (UTC)


 * I agree that the distinction between true programming languages and scripting languages may be spurious in this case. However, I truly believe that markup languages should not be included on this list.  I notice that we have HTML and XML on this list.  Why, then, do we not include LaTEX, or even the proprietary encoding of Microsoft Word documents?
 * Dictionary.com's definition of a programming language is "An artificial language used to write instructions that can be translated into machine language and then executed by a computer." I do not believe that this definition is met by markup languages- as they do not cause the instructions of any machine language themselves.
 * Comments, questions? -- DropDeadGorgias 22:44, Feb 20, 2004 (UTC)


 * Technically, mark-up languages can be "translated into machine language and then executed by a computer". In an abstract way, &lt;b&gt; can be regarded as an instruction. The way a browser takes in HTML and lexes, parses and translates it into computer instructions that finally render the output, has a real lot in common with an interpreter processing a BASIC program. The distinction is by far not as clear-cut as it seems at first. You can even use a formal grammar to define HTML as a formal language, which is what the Java specification does to define the Java programming language.


 * However, please notice that I'm only stating what I believe the theoretical basis to be. I am not strictly arguing in favour of either way. I definitely won't revert you if you split this list up into "programming languages" and "mark-up languages", even if you do not provide a strictly formal criterion that distinguishes them (which I believe is not possible). However, I'm curious as to where you will place primitive recursive functions, finite state machines, regular expressions and the like. -- Timwi 23:17, 20 Feb 2004 (UTC)


 * Just a quick response to your HTML instruction example- XML doesn't fit into that example, as none of the tags define any computer instructions at all. I think that this should be split up into two lists, and if there are no real objections, I'll start the new temporary list sometime this weekend at List of markup languages. - DropDeadGorgias 23:57, Feb 20, 2004 (UTC)


 * The XML specification itself may not pre-define computer instructions, but nor does (strictly speaking) the written representation of a primitive recursive function. It's all open to interpretion. Precisely because XML does not define those instructions, I can implement an application on top of XML that does, and can theoretically model primitive recursive functions, Turing machines or anything else I wish, progressively getting closer to what you would intuitively call a programming language. &mdash; Regardless, I'm looking forward to your split of this page. :-) &mdash; Timwi 20:48, 25 Feb 2004 (UTC)


 * Umm, ok I've moved the obvious markup languages over to List of markup languages. A lot of the languages on the programming language list are pretty obscure though, so I didn't have time to look into all of them. If you spot any markup languages that are still on the list, please move them. I also wasn't sure what to do about things like XSLT; are they also considered markup languages? - DropDeadGorgias 21:28, Feb 25, 2004 (UTC)


 * Although XSLT may look like 'normal' XML markup, it actually is a kind of programming (scripting) language. Concepts like the for-each -loop separate it from markup languages. More info : http://www.topxml.com/xsl/articles/fp/ --anon


 * What, we don't want to eat in our own restaurant? :-) Programming language characterizes it as a means of instructing a computer in how to perform a computation, which is correctly vague. For instance, I would argue that a markup language like HTML is not a programming language because, by definition, it doesn't really specify a particular computation. On the other hand, one could argue that the C language spec doesn't define the result of "1 << 63"! And then we have TeX, which is intended for markup, but can do full computation. Practically speaking, it would be the least surprising if this list confined itself to languages where you can write a program to compute prime numbers, move other kinds of languages to different lists. Stan 23:47, 20 Feb 2004 (UTC)


 * You seem to equate "computation" with "Turing-machine or equivalent computation". This is not technically accurate. You'll certainly agree with me that primitive recursive functions can "compute" certain functions, and yet they cannot evaluate the Ackermann function. HTML may be even less powerful than primitive recursive functions, but it can certainly cause a computer to perform computations such as those required to lay out a table or to arrange paragraphs. &mdash; Timwi 20:48, 25 Feb 2004 (UTC)


 * Markup languages cannot even compute what 1 + 1 equals. They cannot store or retrieve variables, because they 'are' variables. Markup languages are basically just lists of variables. There are no functions. It is not a programming language. If you want to be difficult and argue that it "causes computations to happen" then you might as well deem a Word Document a programming language. Then again, HTML does kind of have functions like "TABLE" and "B" so maybe it does count. I hope not though, because calling HTML a programming language would be ridiculous. I think Mark-up language by itself is not a programming language, as it is just setting variables. I guess HTML is a programming language, albeit an extremely simple one, because it is an 'interpreted' mark-up language. hmm? Good? --Ben 09:12, 18 Jun 2004 (UTC)


 * This is just not true, HTML can compute 1+1 just make a table with two cells in it containing the statement "The width of this cell is one" and you have computed two for a given problem. I know I'm being glib here (so no need to flame) but I hope I've shown the problem is not cut and dry.  Hogan 03:45, August 8, 2005 (UTC)
 * Just call it Lists of computer languages. --Stefán Örvarr Sigmundsson (talk) 16:04, 7 February 2008 (UTC)

-

The Dreaded Script Language Discussion
Timwi, you alluded to the inevitable followup to the markup separation earlier, that of script languages. :

'':: Even worse is the distinction between programming languages and scripting languages, since both of them tend to be Turing-complete. Another argument often brought forward is whether they are compiled or interpreted; in the times of Basic and Pascal, this distinction was pretty clear-cut, but with more and more programming languages bridging the gap (e.g. Java being compiled into bytecode which is then interpreted and sometimes being just-in-time compiled, or Perl originally having been interpreted but now being processed rather like a just-in-time compiled language), this also falls down.''

I also have to bring forward the commonly given definition of a programming language: An artificial language used to write instructions that can be translated into machine language and then executed by a computer. As I went through the list of programming languages,. i came across several dubious entries, such as JavaScript, HTMLScript, PostScript, etc. If we include these scripting languages, why not shell languages like ksh? I am still unconvinced that a script language accomplishes this. I would like to begin to discuss this topic here, and possibly consider separating out another list List of script languages, or something suitably distinct. - DropDeadGorgias 21:28, Feb 25, 2004 (UTC)


 * All scripting languages fit that definition. And IMO, scripting and shell languages should be included in the list. Fredrik 01:15, 7 Mar 2004 (UTC)


 * This may be a nitpick, but Javascript definitely does not belong in a list of 'dubious languages'. It is an elegant fully object-oriented general-purpose language with some beatiful features not found anywhere else. The fact that some interpreter implementations have been lousy and that the browser Document Object Models often used in js development are incompatible with each other should not be counted against the language itself! A good read on this:

http://www.crockford.com/javascript/javascript.html --anon


 * Perhaps a scripting language is just a language that happens to be non-turing-complete. (Does anyone still write actual programming languages like that?). But that aside, typically this is the kind of disctinction that's only made by people who have only just learned to program in their first "real" language, and who want to feel important. Frankly I think those folks should just go and COME FROM hell, while we get on with writing an encyclopedia. Thank you for listening. ;-) Kim Bruning 10:30, 29 Apr 2005 (UTC)

Would it be practical to eventually include information on the 600+ and rising programming languages?

For example, http://99-bottles-of-beer.ls-la.net shows the syntaxes of 621 (and rising) programming languages. -- User:Ixfd64, 17:10 PDT, March 6

SAS
Somebody needs to write an article on the SAS language. Until then, I'm pointing SAS to SAS Institute, which is apparently the closest appropriate article at this time. -- Stevietheman 05:03, 16 Jul 2004 (UTC)

I wrote it but left it under SAS Institute. Gzuckier 19:16, 25 Aug 2004 (UTC)

language links
(moved from Talk:Programming language)

A great webpage is Zirings Dictionary on Programming languages

These are the language links currently listed in programming language. They need to be refactored and regularized. In particular, those language names that are ambiguous should all be "Lang programming language". There has been some attempt to make this consistent, but with exceptions (Awk, Bliss, etc.)

In the list below, I expected that one, sometines two, links in each line, one language per line, to work. The list should always show the current status of these links.

Personally, I think that "lang programming language" is more precise but "lang language" is just barely good enough. The only entries that presently use "lang language" are C (fixed now) and Ruby, so I am going to do what I can to make them work right and also what I can to make all the ambiguous ones work right with "lang programming language".


 * Ada -- Ada language -- Ada programming language
 * Algol -- Algol language -- Algol programming language
 * APL -- APL language -- APL programming language
 * Awk -- Awk language -- Awk programming language -- AWK programming language


 * BASIC -- BASIC language -- BASIC programming language
 * Altair BASIC, True BASIC, Visual Basic -- Visual Basic programming language
 * BCPL -- BCPL language -- BCPL programming language -- Basic Combined Programming Language
 * Befunge-- Befunge language -- Befunge programming language
 * BLISS -- BLISS language -- BLISS programming language
 * Blue -- Blue language -- Blue programming language
 * Brainfuck -- Brainfuck language -- Brainfuck programming language


 * C (letter) -- C language -- C programming language
 * C++
 * C#
 * COBOL -- COBOL language -- COBOL programming language
 * CORAL66 -- CORAL66 language -- CORAL66 programming language


 * Delphi -- Delphi language -- Delphi programming language -- Object Pascal
 * Dylan -- Dylan language -- Dylan programming language


 * Erlang -- Erlang language -- Erlang programming language
 * Euphoria -- Euphoria language -- Euphoria programming language


 * Forth -- Forth language -- Forth programming language
 * Fortran -- Fortran language -- Fortran programming language -- FORTRAN


 * Godiva -- Godiva language -- Godiva programming language


 * Haskell -- Haskell language -- Haskell programming language


 * Icon -- Icon language -- Icon programming language
 * InterCal -- InterCal language -- InterCal programming language -- INTERCAL programming language -- INTERCAL


 * Java -- Java language -- Java programming language
 * JavaScript -- JavaScript language -- JavaScript programming language -- ECMAScript
 * JOVIAL -- JOVIAL language -- JOVIAL programming language


 * Lisp -- Lisp language -- Lisp programming language -- LISP -- LISP language -- LISP programming language
 * Lua -- Lua language -- Lua programming language


 * m4 -- m4 macro language
 * Miranda -- Miranda language -- Miranda programming language
 * ML -- ML language -- ML programming language
 * Modula -- Modula programming language -- Modula-2 -- Modula-2 programming language -- Modula-3 -- Modula-3 programming language
 * MOO -- MOO language -- MOO programming language
 * M (letter) -- MUMPS -- MUMPS language -- MUMPS programming language


 * Nial -- Nial language -- Nial programming language


 * Oberon -- Oberon language -- Oberon programming language


 * Pascal -- Pascal language -- Pascal programming language
 * Perl -- Perl language -- Perl programming language
 * PHP -- PHP language -- PHP programming language
 * PL/I -- PL1 -- PL1 language -- PL1 programming language
 * POPLOG -- POPLOG language -- POPLOG programming language
 * PostScript -- PostScript language -- PostScript programming language
 * Prolog -- Prolog language -- Prolog programming language
 * Python -- Python language -- Python programming language


 * QuakeC -- QuakeC language -- QuakeC programming language


 * REBOL -- REBOL language -- REBOL programming language
 * REXX -- REXX language -- REXX programming language
 * RPG -- RPG language -- RPG programming language
 * Ruby -- Ruby language -- Ruby programming language


 * Scheme -- Scheme language -- Scheme programming language
 * sed -- sed language -- sed programming language
 * Simula -- Simula language -- Simula programming language
 * Smalltalk -- Smalltalk language -- Smalltalk programming language
 * SNOBOL -- SNOBOL language -- SNOBOL programming language
 * SPITBOL -- SPITBOL language -- SPITBOL programming language
 * SQL -- SQL language -- SQL programming language


 * Tcl -- Tcl language -- Tcl programming language
 * teco -- teco language -- teco programming language
 * tpu -- tpu language -- tpu programming language
 * Turing -- Turing language -- Turing programming language


 * Unicon -- Unicon language -- Unicon programming language
 * UnLamda -- UnLamda language -- UnLamda programming language

-- Buzco
 * VarAq -- VarAq language -- VarAq programming language
 * VBScript -- VBScript language -- VBScript programming language

-

Proper name of PL/I
Is it PL/1 or PL/I (ie: is it a one or an eye)
 * 1) eye, as in IBM. That is how the salesmen pronounced it, when I was in the computer room.
 * 2) PL/M is the CP/M version, smaller of course.

Digging around on IBM suggests that it is PL/I pronounced Pee Ell One (roman numeral for one). That is consistent with my Dragon Book which uses PL/I except in one place where it uses PL/1 but I think that might be a typo. It is called "PL/I" by the ANSI standard: ANSI X3.74-1987 (R1998) Title: Information Systems - Programming Language - PL/I General-Purpose Subset


 * PLOne is how I always heard it (including taking a course in it) as in Programming Language One, as in PS/2, etc. Very IBMish. Gzuckier 19:16, 25 Aug 2004 (UTC)

FORTRAN
(on Fortran:) The reason there is a redirect is because both spellings are used and we want obvious linking to work. The pages Fortran and FORTRAN should probably be swapped round, but it doesn't matter much.

--drj

on editing existing valid references to prog langs
User:Stan Shebs has recently been changing existing valid prog lang references from the LangName programming language format to the LangName one.

Previously there was a discussion (see Wikipedia talk:Naming conventions (languages))on whether or not there should be a standard for naming prog lang articles (while providing the [LangName (programming language)|LangName] redirects always and the [LangName] shortcut redirects when possible --i.e., in the same exact cases as the current practice, so no extra typing needed ever). The result of that discussion was that, even though of the 5 wikipedians actively involved in it, 3 voted for standardization (User:Danakil,User:ZeroOne,User:AdmN), 1 explicitly refrained from voting (User:TakuyaMurata), and only 1 opposed (User:Stan Shebs), nevertheless the decision was made not only to not proceed to perfect the current convention and standardize, but to actually proceed in the opposite direction and begin moving all existing prog lang articles which were created with the form [LangName programming language] to the [LangName] form when possible.

In spite of the voting, all of us involved accepted User:Stan Shebs decision and I, for the least, still do. However, as noted above, User:Stan Shebs, has now proceeded to begin changing existing references of the form [LangName programming language] to the potentially unstable form [LangName]. This is not what was discussed and accepted, and I can see no possible benefit to Wikipedia in making these reference changes. One of the core arguments for standardization was that LangName form prog lang articles were always at risk of being disambiguated later, and somebody would then have to go back and change all references. To give just one example, [Scala programming language] was recently changed to [Scala]... well, even more recently there was another meaning entered for 'Scala', which currently sits in the same article but will eventually have to be moved to its own and the [Scala] name disambiguated... in that context (and please let me be clear that I am not re-arguing the original case for standardization but rather I'm oppossing needless reference changes when these actually are potentially disadvantageous) what is the point of changing existing [LangName programming language] references?

&mdash; danakil 17:37, Aug 25, 2004 (UTC)


 * I'm just doing what the naming convention calls for, and what policy on redirects calls for, which is why I carefully confirmed you were willing to go along with my project of fixing up all the names. It's dirty pool to claim that there was a vote when there wasn't, and to turn around and say you didn't really go along after all, even after I asked directly. The rationale for link-straightening is very simple - the duplicated string in the pipe is error-prone, because the righthand side is not checked for consistency; you would not believe the scores of mistakes I've been turning up! It's no wonder people are confused about article titling in this area, it's just a disaster, with some of the mistakes apparently dating back to the early days of WP. If names turn out to need disambigging later, then we'll take care of them as needed, just like we do every day with the other 330,000+ articles. Stan 17:54, 25 Aug 2004 (UTC)


 * No. We discussed the naming of the programming language articles: never the existing references to them. You talk about taking care of disambiguating, but I have been forced to fix more than a few double redirects myself produced as a result of your enforcing policy. Also, note that the decision was made to not make the policy clearer in terms of standardization, but this does not imply that any of those involved actually accepted (or rejected for that matter) that the current policy is adequate as it is. Regarding my alleged change of mind regarding your decision... what part of '...and please let me be clear that I am not re-arguing the original case for standardization and all of us involved accepted [User:Stan Shebs] decision and I, for the least, still do did you miss?? And about the vote... what do you call those three people saying 'I'm for standardization', one saying 'I have no opinion just follow convention'?? If that did not qualify as a vote for you... why didn't you called for a more formal vote, then? This situation so reminds me of Hugo Chavez handling the referendums in Venezuela...  &mdash; danakil 18:06, Aug 25, 2004 (UTC)
 * We have a real "voting" ("survey" they're calling it now) process, and I even suggested going that way; details are at Survey guidelines. Leaving references to go through redirs is bad practice and it is completely uncontested policy to "straighten" those; some people even have bots that go through and do them automatically, so it was going to happen sooner or later anyway, from me or somebody else. If I missed double redirs, sorry, I checked each article before and after, but it is a manual process and thus errorprone (I am working on a script to do a final check). The ad hominem reference to Chavez just lost you the plus sign that you had relative to Taku. And not even a word of thanks for cleaning up some truly awful longstanding messes, sniff. :-) Stan 18:30, 25 Aug 2004 (UTC)
 * When I see you cleaning up some Wikipedia mess, I'll make sure to thank you. I'm not interested in any kind of plus sign that you're involved in providing. Thanks, but no thanks. &mdash; danakil 18:36, Aug 25, 2004 (UTC)

What is ADL?
The ADL link goes to a disambiguation page that doesn't mention anything involving computers. Any ideas what it is? AdmN 01:36, 28 Aug 2004 (UTC)
 * A little googling is not prohibited: Assertion Definition Language. ;) --ZeroOne 15:07, 28 Aug 2004 (UTC)

Thanks. I'll pop something about this into the disambiguation page. AdmN 15:44, 28 Aug 2004 (UTC)

Whoops... someone beat me to it. :) AdmN 15:50, 28 Aug 2004 (UTC)

Is AMOS really a programming language ? That link goes to a page that doesn't mention anything involving computers.

BASIC
Does BASIC belong in historical programming languages? In my opinion, historical programming languages are those that are defunct. BASIC is still in use, and many programs (I think the majority [could be VB though], but not sure on this) are programmed in BASIC. As such, I believe it should be tagged as industrial. Not all BASIC implementations in use are VB.
 * MSTCrow 02:43, Mar 20, 2005 (UTC)

Esoteric Programming languages
In September 2004 esoteric programming languages were removed and a link added to List of esoteric programming languages. However, since then they have been creeping back in. Either they should be removed again, or the note "Note: Esoteric programming languages have been moved to the separate List of esoteric programming languages." at the top of the page must be removed.Yym 6 July 2005 09:21 (UTC)

I would think that the esoteric programming languages should be in the list. Having a master list of programming languages would probably create less confusion than having a main list and links to sub-lists that have simular characteristics. There can still be a separate list of esoteric languages, and basic and C derived languages, but this listing should be all inclusive.--Yarvin 6 July 2005 16:53 (UTC)

I count 381 languages on this page and 173 on the esoterics page. If you take into account that a number of languages are currently on both pages, that means in combined listing 1 in 3 languages would be esoteric. I think that would make it difficult to see the "serious" languages. In any case, if they are going to be here the note needs correcting. Perhaps they should be here, but marked somehow? Yym 7 July 2005 10:56 (UTC)

Just keep whacking the esoteric languages from this list. By their nature, it is extremely unlikely that anybody would ever look up an esoteric language without already knowing it was esoteric, and their presence on this list may lead people astray ("C-" for instance). The old criterion from Jean Sammet's book is a useful test ("is/was in regular use by other than the original developer"). Stan 7 July 2005 13:04 (UTC)

Order - ignore upper/lower case distinctions
moved mKR. Rhmccullough (talk) 12:07, 23 June 2008 (UTC)

add new language
Added KIF, a standardized AI language. Rhmccullough (talk) 12:16, 23 June 2008 (UTC) Why is Apex not listed? http://wiki.apexdevnet.com/index.php/Apex_Code:_The_World's_First_On-Demand_Programming_Language —Preceding unsigned comment added by 76.90.89.115 (talk) 15:27, 2 August 2008 (UTC)

programming language or (programming language) ?
Why is there no standard for this? For mKR, I just copied Unicon, which has parentheses. But looking at this big list, there are a lot without parentheses. Rhmccullough (talk) 12:21, 23 June 2008 (UTC)


 * Naming conventions (languages) now suggests the suffix "(programming language)" for disambiguation. It used to recommend the unparenthesized suffix but this was changed some time ago. — Tobias Bergemann (talk) 12:51, 23 June 2008 (UTC)

Languages for beginners
Here is a review of some programming languages for novice programmers:

http://www.cs.cmu.edu/~caitlin/papers/NoviceProgSurvey.pdf —Preceding unsigned comment added by 90.37.192.167 (talk) 18:22, 28 August 2008 (UTC)

Redlinks
If a language is not notable enough to have its own wikipedia article then is it notable enough to warrant inclusion in this list? --ClickRick (talk) 08:49, 22 May 2009 (UTC)

by popularity
Certainly there should be some " by popularity" or " by estimated numbers of users" on Wikipedia, even if "it is hard to determine such numbers." Jidanni (talk) 12:21, 23 January 2021 (UTC)