Talk:Comparison of programming languages
This is the talk page for discussing improvements to the Comparison of programming languages article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
Archives: 1, 2Auto-archiving period: 12 months ![]() |
![]() | This article is rated List-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||
|
Other considerations for language comparision tables
Here are some considerations that I use in my documentation. It may be useful to include these in the table also:
- Compilation Model - Is there a compiler available that converts the programs into native mode executables? Or can the program be converted to bytecode for use by a bytecode interpreter? Or is JIT compilation used at runtime, or is the language only utilized by an interpreter?
- Input / Output Model - Does the language support the use of C IO Model, or does the language only utilize redirection operators, or does it use its own IO model (such as rexx).
- Named Locations - Does the language support the use of location names, or are line numbers required?
- Does the language support terminal control? If so, to what extent? (I will develop a scale for this)
- Does the language support the use of colour terminals?
- Does the language support the use of graphics? If so, is this achieved via svgalib, or is an X server required?
- Does the language support the use of sound? Is this just a terminal beep, or can the language be used to drive a pc speaker? Is there support in the language for use of a sound card?
- Does the language support the use of scoped variables?
- Does the language support the use of structures or user defined types?
- Does the language have the facility to obtain command line parameters for the program?
- Does the language provide a facilty for processing environment variables?
- Does the language provide support for outputting text to a line printer (for example via an LPRINT command)?
- Does the language provide support for on error events?
- Does the language provide a freefile facility for determining unused data stream or file numbers?
- Does the language provide the facility to determine whether or not a key has been pressed (for example an INKEY$ function).
- Does the language provide support for multiline if conditional branching?
- Does the language provide support for conditional compilation directives?
- If the language is interpreted, rather than compiled, can a hashbang mechanism be used at the top of the program to trigger an appropriate interpreter?
Markhobley (talk) 22:10, 26 March 2011 (UTC)
Date
Perhaps the date that a language was first released/widely used could be mentioned, along with some sort of mention of a sort of "date of disuse", a general date when the language was no longer widely used (i.e. the 90s, mid-80s, etc.). Not quite sure how you would verify these, however. Google data only goes back so far. Aero-Plex (talk) 21:39, 2 October 2011 (UTC)
Some updates to C# and PHP
Recent updates to PHP and it's respective libraries (PHP-GTK and Winbinder) along with PHP-CLI allows you to create both GUI and CLI applications. C# along with custom compilers which implement the .NET framework in OpCodes allow for creating a minimal Operating System Kernel (See http://cosmos.codeplex.com) — Preceding unsigned comment added by ShadowEO (talk • contribs) 20:20, 6 December 2011 (UTC)
ada
why is there no ada in the list? — Preceding unsigned comment added by 109.192.99.125 (talk) 00:45, 18 December 2011 (UTC)
- Because no one has added it yet. Be bold!
- peterl (talk) 05:10, 19 December 2011 (UTC)
R
What about R? Although it is not as broadly used as C or Java, many people write scripts in Rscript. — Preceding unsigned comment added by 79.131.25.37 (talk) 15:49, 2 January 2012 (UTC)
- Because no one has added it yet. Be bold! peterl (talk) 01:21, 4 January 2012 (UTC)
Java Concurrent?
I feel that Java should have concurrency listed due to its use of threads? http://en.wikipedia.org/wiki/Java_concurrency — Preceding unsigned comment added by 81.151.76.221 (talk) 08:47, 2 April 2012 (UTC)
Better platform?
Is there a better platform for this information? This is an amazingly awesome list as it stands, and as far as I can see, it by far the most comprehensive such list on the 'net. But the more requests for new languages it gets, the more unwieldy it gets. Most people coming to view this are likely to only really want to compare a handful of languages, and the other languages just get in the way, and make it hard to read. Or someone might want to compare some less popular language (APL anyone?) with a popular language, and that means adding information that isn't going to be particularly useful to everyone else. I'm wondering if it might be better to put the information from this page into some kind of dedicated database, and allow users to choose which languages and which features/aspects of those languages they want to compare. It would be much easier to maintain. The wikipedia page could still stand, and be reserved for the more popular languages, or language families. Does that sound like a reasonable idea? --naught101 (talk) 06:26, 6 June 2012 (UTC)
Standardization of Python (and Java)
I think that Python should not be listed as standardized in this article. This was already discussed in section #Standardized Python? and the result was to list Python as not standardized. However this was changed again in this edit. The editor commented:
- If the Java Language gets a green YES for saying it is standarized because of a self-invented standardisation process, the same applies to Python. If you disagree please turn also Java on NO for neutrality!!!!
As I said I disagree with stating that Python is standardized. The PEPs do not cover all aspects of the language (e.g., namedtuples were introduced without a corresponding PEP). And the introduction to the Python Language Reference explicitly states that it is ambiguous.[1] So I think the corresponding field in the table should be changed. However, I'm not familiar with Java and the Java Language Specification. Should we change that as well? --62.46.188.73 (talk) 11:16, 26 May 2013 (UTC)
- I have just changed the entry for Python. --188.23.237.186 (talk) 08:18, 1 June 2013 (UTC)
Paradigm Column - Make it an (Un)sparse Matrix?
If we convert the Paradigm column of the General comparison table into a series of columns (event-driven, imperative, object-oriented, etc.) with checks instead of words in the cells, we could remove a lot of the conflict centering on the definition of paradigm and whether certain features should be considered a paradigm or not. It would also make it harder to add columns - presumably those with only one check in it. (I don't know if the last is a good thing or a bad thing.) The column is using more than the main 5 paradigms and so has outgrown its name. --dbabbitt (talk) 21:17, 3 February 2014 (UTC)
- There are 46 different paradigms; that's a lot of columns. But its frequency follows a power-law distribution with an exponent of 1.37. Here is the general comparison table with the 7 most common paradigms as columns. --dbabbitt (talk) 01:47, 18 February 2014 (UTC)
- Redid my statistical analysis and produced columns with the most frequent X's in them - some alternate spellings threw off the count. Checked it with the original and corrected my mistakes. --dbabbitt (talk) 11:44, 19 February 2014 (UTC)
Fotran and Functional programming
I noticed, in the table with language features, Fortran is not indicated as a language in which functional programming is possible. However if one follows the link to the page on functional programming Fortran is given as an example of a language which allows this (through pure functions). Maybe it got overlooked since the latter page states Fortran95 as the language (Since in the Table all versions of fortran are combined into one, I believe this feature should be indicated as well). — Preceding unsigned comment added by 2A02:A03F:1AE9:1200:3957:CA6:BD2D:9E8D (talk) 11:43, 27 May 2016 (UTC)
JS not a Event-driven langnguage
Event-driven programming states JavaScript as a example for even-driven programming but at this article it's not checked. Isn't this a contradiction? --95.89.52.196 (talk) 22:16, 11 June 2016 (UTC)
- Javascript is not inherently an event driven language, although code can be written in a way to make it event driven. TgreatALL (talk) 06:47, 15 March 2017 (UTC)
About Dmoz
"Consider adding to linked DMOZ instead."
DMOZ was closed on 17 mars 2017. Some sites keep of copy of its contents, but there is no supervision of these sites, so we should not still consider these ontents like a valid source.
Macaldo (talk) 18:54, 18 December 2017 (UTC)
Python not Generic???
Can somebody explain why Python is listed as not generic?
I would argue that the language is completely generic, all procedures work on all objects that implement the required contract. The underlying mechanism to achieve it differs from that in e.g. C++, but from a programming viewpoint that is not relevant.
Evertw (talk) 20:49, 14 January 2018 (UTC)
TypeScript
I miss TypeScript. -2003:70:D29:BA7F:1CEB:54EA:35EF:59F4 (talk) 11:38, 24 December 2018 (UTC)
Missing languages in section Failsafe I/O
In the section Failsafe I/O I miss Dart, JavaScript an maybe more. -2003:70:D29:BA7F:1CEB:54EA:35EF:59F4 (talk) 11:39, 24 December 2018 (UTC)
Missing Column Headings
There are no column headings, which makes the comparison section nearly useless as there is no indication as to what is being compared. — Preceding unsigned comment added by 50.123.102.169 (talk) 04:22, 25 January 2019 (UTC)
Functional?
What does the term "functional" mean on this page? As it stands its use appears highly misleading: it lumps together many languages that mealy have bit of functional-style syntax, with languages, such as Haskell, that are actually functional. To my mind — and I'd expect to many — "functional" suggests a language with no side effects and functions that always return a result. — Aldaron • T/C 19:59, 24 April 2019 (UTC)
- I'm curious what designates a functional language in your mind. DaveJWhitten (talk) 21:10, 8 June 2021 (UTC)
Sparrow
Add the Sparrow programming language ? https://github.com/Sparrow-lang/sparrow
The language is hyper-metaprogramming; this allows using complex data structures and algorithms at compile-time, as one typically does at run-time.
Documentation: https://sparrow-lang.readthedocs.io/en/latest/
No0ffenced (talk) 21:17, 8 May 2019 (UTC)
Procedural column should be removed
The Procedural column doesn't appear to be based on any objective criteria. For instance Ocaml is listed as imperative procedural whereas Standard ML is listed as imperative non-procedural. The column should just be removed. --Alextgordon (talk) 17:11, 20 June 2021 (UTC)
Event driven column should be removed
This is very vauge. For example Common Lisp and C# are marked as event driven. This is nonsense. By same logic C++, D and Python are also event driven. Even languages that are commonly Event Driven, like JavaScript, are not really event driven languages, just commonly used as such due to web browser environment. Similary Go is not really even driven. Quite the contrary. Maybe actor like languages Erlang / Elixir could be classified as event driven, but even that it debatable.
I suggest removing this column, as almost any language in the table can be used in Event Driven fashion, including C, PHP or Tcl. 2A02:168:F609:1:BEDA:2803:4006:38FD (talk) 17:23, 5 March 2023 (UTC)
- I agree. The article on Event-driven programming explains that it can be done in any language. There is no such thing as an event-driven language. I'll go ahead and remove it. Alec Gargett (talk) 11:50, 17 October 2023 (UTC)
OpenLisp standard
I have changed the "Standardized?" column for OpenLisp to "maybe". The page originally stated that OpenLisp "supercedes ISLISP". I didn't like this because OpenLisp is nothing more than an implementation of ISLISP, and AFAIK doesn't even have a standard of its own. We don't say bash is standardized because it "supercedes" POSIX sh. The wording as it stands is also unclear: what is "optional" supposed to mean? I'd prefer if it said something clearer like "Superset of [standard language]".
Aside: I'm not even sure OpenLisp should be included at all; we don't have a separate row for every single Python implementation, for example. I can't say for sure that OpenLisp is distinct enough to be counted as its own language separate from ISLISP, but someone more expert needs to make the call here. —Desacc̱oinṯier 06:52, 21 October 2023 (UTC)
AMPL
Honestly asking, why is AMPL not included? Is it not considered a programming language? Or is it just not popular enough?
All feedback is appreciated. Tome.rod (talk) 07:45, 5 April 2024 (UTC)
Merge proposal
I'd like to merge Comparison of Java and C++ into this article. The Java/C++ comparison article is probably a violation of WP: INDISCRIMINATE in some form. While I understand from reading the previous AfD that sources do draw comparisons between these two languages, I am also sure that comparisons are made between many different pairs of languages in reliable sources. Even if we picked a couple dozen languages to write comparison articles about, that would require the creation of hundreds if not thousands of articles that would be incredibly difficult to navigate. Some comparison already exists here. As it currently stands, the merge candidate is a litany of original research that is painful to sift through. HyperAccelerated (talk) 01:18, 8 February 2025 (UTC)
- Oppose. Java and C++ are compared more commonly compared than many other pairings. There is significant notable content and merging would add undue weight. Quarl (talk) 00:33, 16 February 2025 (UTC)