Talk:Comparison of programming languages

message: Flash is used all over the web, but I don't know enough about it to catogorize it in terms of this article.  Is something like that a candidate?  Or is it considered more display use only, and thus basically an interactive PCL or postscript.
http://en.wikipedia.org/wiki/Adobe_Flash  —Preceding unsigned comment added by Davebrink (talk • contribs) 10:38, 5 March 2009 (UTC)
thread_title:  Flash, SWF 

message: LabVIEW is a fast, compiled object oriented general purpose programming language that also can do hardware I/O very well.  LabVIEW should be added to this comparison.    —Preceding unsigned comment added by 157.127.124.15 (talk) 21:45, 5 September 2008 (UTC)
thread_title:  LabVIEW 

message: Could MatLab be added to the list? MatLab is all I use. I even make GUIs in MatLab. I'm not familiar enough with Paradigms to know how to classify it.  —Preceding unsigned comment added by 137.91.114.239 (talk) 15:33, 30 May 2008 (UTC)
thread_title: MatLab

message: Where is ActionScript??? Can someone add ActionScript? I really miss it here :/ thnx
Agreed, it is a true language now. Someone should add it.
:Just added, both tables should be correct although someone might be better aware of more paradigms that could be added under it.
I'd say - if Javascript is considered functional and reflective than Actionscript should get those features checked, too.  — Preceding unsigned comment added by 80.137.87.36 (talk) 19:26, 1 July 2014 (UTC)
thread_title: ActionScript

message: I find this chart very disorganized and difficult to comprehend despite having a CS degree and being somewhat familiar with most of these languages.  First of all, there are too many columns that are too wide; I have to maximize the window to see all the columns.  But on top of that, the columns are not well defined.  Generally when you have a list inside of a cell that is a good sign that the column is not well defined.
Take for instance "Typing Discipline".  The vast majority of languages listed are "safe", but there is no way to visually determine which these are or more importantly which are not safe.  Is C++ not safe or did the author not know?  The reader has no way to know this.  This causes many errors in this column, for example Java is a type safe language.  Some cells have links for safe/static/etc, some do not -- these should be column headers, so listed once, as links.  Or the "Paradigm" column... is C really the only flow-driven language?  From this table it is impossible to know (nevermind the legitimacy of that particular categorization).
Overall I would have to say this table contains about as much wrong information as correct.  Break the columns out into their own tables.  Yes this makes the article longer, but when you are comparing 25+ languages it should be long.
:STRONGLY agreed here. Half the entries aren't languages at all, but dialects (BASIC vs Visual Basic for example, or scheme vs LISP). Most of the listed "influences" aren't listed themselves. Where is the distinction between "X is a language influenced by Y" and "X is a dialect of Y"? The selection/claim of "widely used" appears at best anecdotal (and in strong conflict with my own experience). Some of these are at best marginally to be considered computer languages (like mathematica). "Expressiveness" appears to be introduced for the sole purpose of having some meaningless number that is proclaimed higher for some language than some other language. Does this article convey any actual information??
::There are still similar programs. For instance, Perl is listed as procedural, but other languages (python etc.) are not listed as such, though they are.  Visual Prolog? Bah. And look at APL! What's worse is some of them (C# and F# off of the top of my head) are blatantly mislabeled. "Multi platform" is not a paradigm, and most of the other languages are multi-platform as well. I'm not making big changes (like deleting entire rows), but I'm going to fix up some of the small, pathetic problems on here. It looks like the proponents just stuck their languages on here in hopes of it being recognized, and added as many features to the list as possible. I, personally, wouldn't ever use this as a reference, and that undermines its purpose. Scorchsaber 02:01, 20 June 2007 (UTC)
thread_title: Disorganized and wrong

message: I've added three cleanup tags to this article:
*Tone: This table doesn't appear to be a subsection of any article, but is presented in list form rather than encyclopedic prose.
*Importance: What information does this article provide that cannot be easily found using :Category:Programming languages?
*NPOV: The article represents only a tiny fraction of existing programming languages that the author has asserted (without proof) to be "widely used", ignoring many other widely used languages.
—donhalcon╤ 06:04, 6 March 2006 (UTC)
replies: text: I removed the tone template. Two articles now link to this article, and they'll be more once I fix this article up a bit more. I'm not sure whether you'd consider a "See also" link to this article good enough though. -Barry- 03:21, 2 May 2006 (UTC)
thread_title: Cleanup tags

message: I added languages from the chart at http://www.tiobe.com/tpci.htm except Javascript. Will include Javascript if it's decided it should be included. I think including only languages in that chart on tiobe.com is a decent way to maintain NPOV. Still needs to be completed.
I credited TIOBE as required on http://www.tiobe.com/tpci.htm:
Q: Am I allowed to show the TPC index in my weblog/presentation/publication?
A: This is OK provided that the original source is referred to: www.tiobe.com.
-Barry- 00:47, 2 May 2006 (UTC)
replies: text: You should put absolute ratings (if any) in the table, and also an explanation what exactly it is. This looks like Ruby and D are currently the strongest languages in the world. Samohyl Jan 06:04, 2 May 2006 (UTC)

text: I added a Popularity column for those absolute ratings. Someone tried adding languages that aren't on TIOBE's list. I think that's fine even though some may consider a point of view. It will help expand the chart. The chart will still have the most popular languages (once I finish adding them). Just remember not to mess up my work when you add more languages. Someone deleted useful information just because he didn't want to bother adjusting his edit once I made mine, so I had to revert him. -Barry- 21:29, 2 May 2006 (UTC)
thread_title: Fix Up

message: * Algol
* APL
* SNOBOL
* Ferite
* BASIC
* PL/I
* Pascal
* Prolog
* SML
* OCaml
* Haskell
* elisp
* Turing
* Eiffel
* Curl
* Rexx
:Please sign your comments.
: Remember that there was a NPOV issue, which is one reason I used TIOBE's list of the most popular languages. First we should add SAS, PL/SQL, Visual FoxPro, and VB.NET, which are among the most popular. They're in TIOBE's top chart. Then we can start adding languages from the chart titled Other programming languages, which all have a search engine hit rank (called position on TIOBE's site). Then The Next 50 Programming Languages, and then whatever we'd like to add, which we could rank as >50.
: When adding a language that's listed in the Exceptions and inclusions chart (called Groupings and Exceptions on TIOBE), we could either add the language in left column or any/all of the languages from the corresponding line of the right column when it contains inclusions. If some features that we'd be plotting were different among the languages in the line of the right column, then we should probably add each "included" language seperately and give all of them the search engine hit rank of their "parent" language listed in the left column. -Barry- 15:06, 5 May 2006 (UTC)
replies: text: We should also add to the table a note if there is an ANSI standard and cite it. -Mark 11:01, 20 Sep 2006 (UTC)
thread_title:  Other languages that should be covered 

message: Could someone please ad Lucid to this list?DiagonalArg (talk) 06:28, 30 June 2009 (UTC)
thread_title:  DataFlow Languages - Only One Listed.  Lucid? 

message: Should Template:Type_system_cross_reference_list be linked to or included in full in this article? Should safe/unsafe be in a separate column from strong/weak as it is in the template? -Barry- 00:56, 18 May 2006 (UTC)
thread_title:  How should Template:Type_system_cross_reference_list be used in this article 

message: Someone added red, yellow, and green colors to the benchmark table. I think red means lose, yellow means it's close, and green means win. To do this accurately, I think that for each row of each language's table, we should add the four numbers, which will be the total number of tests performed in determining the speed, memory, or size (depending on the row), and divide by three (call this the first result). I think said total number of tests will average about 64, so lets use that for this example. The first result would then be 21.4. Imagine a line that spans 21.4 units in the positive and 21.4 additional units in the negative, and divide it into three sections, kind of like:
NEGATIVE -------------- -------0------- -------------- POSITIVE
Then we subtract the sum of the two numbers in the right column from the sum of the two numbers in the left column, and if that difference equals a number in the first third of the line above, then the Perl cell for that line gets colored red. If the difference falls within the second third, then yellow. And for the third third, green.
There are probably terms and formulas for this, so if anyone knows how to explain this conventionally or wants to correct something, please do.
I haven't determined yet whether the color codes that were added conform to the above algorithm. -Barry- 14:08, 3 June 2006 (UTC)
thread_title:  Color codes in benchmark table 

message: "There are thousands or PL". This has to be confirmed. I don't know so many languages. Acaciz 18:05, 3 June 2006 (UTC)
replies: text: There's a footnote next to that. Click it and you'll see a reference that links to a site where you can find a list of languages. -Barry- 18:22, 3 June 2006 (UTC)
thread_title: Thousands

message: Why dont yuo compare the ability to have unicode in source code or in identifiers? —The preceding unsigned comment was added by 213.41.137.29 (talk • contribs) .
: That's tricky, as it could vary from compiler to compiler. Most actively updated languages do tend to support that these days, however. --Craig Stuntz 20:01, 15 June 2006 (UTC)
replies: text:  What? My impression is the contrary, that languages tend to have precise definitions of permissible octets in source and identifiers, that they can never update, as that would redefine the language. E.g. you can't have unicode identifiers in C/C++, and you can't have unicode anywhere in python2 without that silly comment at the top. They had to invent a new language, python3, to fix that. Another apparently unfixable issue is the definition of whitespace: in Bash, Windows line endings are not whitespace, but a command, leading to the dreaded "'\r': command not found" that every Bash user on Windows must face. --84.209.119.158 (talk) 22:22, 7 July 2015 (UTC)
thread_title:  Unicode in source and identifiers. 

message: Where's BASIC, instead of the psuedo-BASIC Visual Basic?  I'd like to see Liberty BASIC, for one. - MSTCrow 00:51, 7 July 2006 (UTC)
thread_title:  BASIC? 

message: In the column listing supported programming paradigms, Ruby has "concurrent" listed.  I'm not familiar with Ruby, but looking around a bit fail to see anything that gives Ruby more language features for concurrent programming from most other languages.  Is listing Ruby as a concurrent language misinformation?  Can someone enlighten me?  Slartoff 17:40, 5 August 2006 (UTC)
thread_title:  Ruby is a concurrent language? 

message: I may well have my definitions mixed up here, but doesnt c++ have both strong and weak typing through static_cast<type>(var) and the older c-style cast (type)var? It is only labelled as weak in the table.
:Technically if you use only the newer casts and features it would be strong AFAIK and the C++ creator considers it strong typing, I believe. However, you are right in that if you use old features then it would likely be both kinds of typing... RN 09:40, 28 August 2006 (UTC)
replies: text: Looks to me like dynamic_cast gives run-time casting between specific static types. A very restricted blurring of the dynamic typing term. You would misinform if people went away thinking C++ is a dynamically typed language from your change; they would be better left thinking that C++ is not dynamically typed - but has some means to change types at runtime. --Paddy (talk) 03:21, 13 October 2008 (UTC)
thread_title:  Weak Typing in c++? 

message: i was going to create a new article called comparisions of computer langauges, basically because this list is limited to most common "programming languages" i propose a list of comparasion of all common "programming and scripting langauges" e.g. html/bat/c, ect, because it is impossible to compare all langauges.. 
just a stupid suggestion of mine.. Sokal 01:46, 21 September 2006 (UTC)
thread_title:  incomplete 

message: Attempting to upgrade this article to more than just 'superficial comparison' status. Doing so will require a 'series' ... let the games begin! dr.ef.tymac 01:28, 31 October 2006 (UTC)
thread_title:  ;; the beginning of the great and mighty series 

message: I know it is tempting to put various influences into influence, but please, if you do, try to push your POV (even referenced) at the page about the language first. The pages about respective languages are monitored by more experts, and also for consistency. This page should be (mostly) summary of other data found in Wikipedia. Thanks. Samohyl Jan 19:01, 15 November 2006 (UTC)
replies: text: I don't think this is a question of 'who influenced who'. I do believe that C# strongly influenced Java (and will continue to do so), and C# was obviously influenced by Java. But perhaps the column should state 'initial influences' instead? - 82.161.89.103 22:13, 18 November 2006 (UTC)
replies: text:  That's not my point. If you want to argue about that, please do so at Java (programming language) first. Samohyl Jan 00:44, 19 November 2006 (UTC)
replies: text:  Yes, point taken. It's just that it isn't (or wasn't) the only thing that was mentioned here first, combined with your liberal use of the 'POV' acronym, that made me reply here first. Anyway, the Java page now includes the changes, let's see if they stick. - 82.161.89.103 23:58, 20 November 2006 (UTC)
thread_title:  who influenced who (Java vs. C#) 

message: Anyone willing to add pascal to this? Hopquick 03:10, 25 November 2006 (UTC)
replies: text: Yep.  It was a glaring omission. LachlanA 22:55, 10 April 2007 (UTC)
thread_title:  Pascal 

message: Link to The hundred-year language by Paul Graham. Keynote from PyCon2003 was removed from  Python page - maybe for a reason, but I hope it can stay here on comparison page. It is nice article about how languages evolve and what features we may expect in the future. (we will have CPU cycles to spare - how to burn them with positive result?)
migh bring us —The preceding unsigned comment was added by 128.36.29.71 (talk) 13:49, 8 December 2006 (UTC)
thread_title:  The hundred-year language by Paul Graham 

message: This section needs to define "statements", define "lines". It needs to tell you what the hell the "statements ratio" means. That table is useless without defining terms. Fresheneesz 01:17, 15 March 2007 (UTC)
replies: text:  I believe we should remove the "Expressiveness" section as it is very misleading and confusing Dmitriid (talk) 11:28, 17 November 2007 (UTC)
thread_title:  Expressiveness 

message: Does Wikipedia have a list/category for interactive languages?
I was hoping interactive computation and/or interactivity would list some.
WikiWikiWeb:FirstTimeLanguage and WikiWikiWeb:TelescopeRule recommend an "interactive" language as a first programming language.
Several programming languages ( BASIC, Pascal, Python, etc. -- in general, interactive languages ) were specifically designed to be taught to students that had never programmed before.
Other languages (Assembly language, C++, Arc, etc.) were designed assuming that people already knew some other programming language first, or at least with no regard to how difficult beginners might find it.
People who have never programmed might come to this article looking for some clue as to which programming language they should learn first.
What can we do to help those people?
--68.0.120.35 20:22, 2 May 2007 (UTC)
thread_title:  programming languages for new programmers 

message: Someone has added Ruby as an influence on C#. The comment says yield and lambda expressions, but that was borrowed by Ruby from the Python camp, so I've changed this reference into Python.
::Can somebody knowledgable review the above and this   edit? —Gaff ταλκ 18:53, 13 May 2007 (UTC)
replies: text:  The first stable version of Python with generators (version 2.2) is from end of 2001. According to this , Ruby was at version 1.6 then, but I don't know if they supported generators then (probably not). So it is quite possible that C# 2.0 was really influenced by Python. Actually, I think it is _obvious_ that recent changes to Java 5.0 and C# 2.0 are aimed to compete with Python (or Ruby), but I doubt Sun or Microsoft will ever admit this openly. 86.49.39.85 06:13, 14 May 2007 (UTC)
replies: text:  False. Ruby did not invent lambda or yield, they are popular constructs from Lisp and Scheme. --206.191.28.13 21:55, 6 August 2007 (UTC)
thread_title:  Ruby did not influence C#  

message: Apologies if you see this message more than once - I am crossposting it to various relevant talk pages.
I have opened a debate on the use of examples in Wikipedia articles (mainly focusing on source code and mathematical formulas, proofs, etc.). It seems to me that many examples currently in Wikipedia violate Wikipedia policy, so I believe we need to either clarify or change the situation. Depending on the result of the discussion, this may result in a number of examples being summarily removed from articles!
Please reply there, not here, if you wish to contribute.—greenrd 11:26, 18 May 2007 (UTC)
thread_title:  POLICY DEBATE: Use of source code and other examples in articles 

message: What about RPG? (Report Program Generator Language) This page fails to mention a very popular programming language used by many IBM servers and has been in existance nearly as long as COBOL.. .  —Preceding unsigned comment added by 216.231.31.123 (talk) 00:26, 26 October 2007 (UTC)
thread_title:  RPG? 

message: Where is PL/1?  PL/1 is a Cobol Derivative language used by IBM mainframes.
: More of ALGOL derivative, though it had bit of everything. Jmath666 (talk) 10:57, 8 July 2008 (UTC)
thread_title:  PL/1?     

message: Also missing from this comparison is a number of Control Programming Languages.. JCL (Job Control Language) used in mainframe environments,  OCL (Operation Control Language) used on IBM 3x series systems.  CL (Control Language) used in IBM system/38, AS/400, iSeries etc. CL is a full fledged language.   Unix Shell scripts.. Control language used in UNIX, Linix based systems.  —Preceding unsigned comment added by 216.231.31.123 (talk) 00:44, 26 October 2007 (UTC)
thread_title:  Unix Shell?  JCL? OCL? CL? 

message: I don't think just having a big alphabetically sorted table really gives as much information than if it were divided into multiple hierarchies based on semantic (and syntactic) closeness. For e.g Lisp Family (Lisp, Scheme, Common Lisp), Algol family ( Algol, Pascal, Modula, Simula, Oberon, Delphi), C family (BCPL, B, C, ObjectiveC, C++, D, C99) and so on, with a tree structure  —Preceding unsigned comment added by Rep movsd (talk • contribs) 08:39, 3 December 2007 (UTC)
thread_title:  How about categorization? 

message: At least as notable as Mathematica, so it should be included in the comparison tables.  I'd do it myself, but I don't know the necessary details about type safety, etc. Oren0 (talk) 06:33, 5 December 2007 (UTC)
thread_title:  Add [[Matlab]]? 

message: I want to throw out an idea for general discussion. In the article we have a list about 100+ notable programming languages. The links are very important if someone is studying different syntactic and semantic differences between languages. I would like to limit the list to example 100. The question is: which languages should be on the list? We currently have Pascal and Object Pascal, should they be combined? I would like to hear everyone's opinion on the matter of what belongs and what doesn't. - DevinCook (talk) 03:59, 17 December 2007 (UTC)
replies: text: I moved it here. Mike92591 (talk) 20:02, 18 December 2007 (UTC)
thread_title: Notable Programming Languages

message: I do not think that the intended use of python and ruby is "Good Web
Support", which is quite subjective.  -- Ty8inf (talk) 19:12, 3 February 2008 (UTC)
thread_title: Intended Use

message: I have to say that this article *is* terrible, and really needs a complete rewrite! (Sorry Guys!)! Philcluff (talk) 18:34, 15 February 2008 (UTC)
thread_title: Bad Article

message: Is this really a programming language paradigm (like functional, object-oriented, etc.)? Or is it just a general programming paradigm that is possible with (almost?) all programming languages? What language feature does make Groovy, Python and Ruby "aspect-oriented"? Is it just external (3rd party?) modules and libraries? Ghettoblaster (talk) 19:44, 6 June 2008 (UTC)
replies: text: It is possible with any language. It is a programming way as OO or genericity. Acaciz (talk) 15:37, 16 February 2009 (UTC)
thread_title:  [[Aspect-oriented programming]] 

message: What exactly does that mean? Mike92591 (talk) 03:19, 5 July 2008 (UTC)
thread_title:  Meaning of "safe (but unsafe allowed)" 

message: That's their extension right? If that's the case then we could definitely add a footnote. Mike92591 (talk) 01:53, 11 July 2008 (UTC)
thread_title:  About JS in Mono (moved from [[User_talk:Slippyd]]) 

message: The distinction between strongly typed and weakly typed is unclear. I propose to remove the column.  —Preceding unsigned comment added by 87.10.172.60 (talk) 15:16, 21 July 2008 (UTC)
thread_title:  Type strength 

message: Doesn't Perl6 warrant an entry? It has a lot of differences from perl5 and there are a lot of docs on it.
12.41.204.3 (talk) 21:30, 8 August 2008 (UTC)
thread_title:  Perl6? 

message: The intro currently says 
:many professional programmers use dozens of different languages during their career
Technically, the statement is probably true, many do, but I would hazard a guess that most don't.  I'm going to change it.  Regards, Ben Aveling
:"many" does not make sense. Acaciz (talk) 15:38, 16 February 2009 (UTC)
thread_title:  many professional programmers use dozens of different languages during their career. 

message: Someone should probably include all the Array slicing examples into the Programming Language Comparison series. I'm not bold enough to do this. Ghettoblaster (talk) 18:04, 7 October 2008 (UTC)
thread_title:  Array slicing 

message: Comparing the languages and comparing the speed of execution are two different things. In the second case we are comparing the compilers or the interpreters, and not the languages. I propose to remove the benchmark section and the links related to "speed" of languages!!! Acaciz (talk) 16:19, 16 February 2009 (UTC)
thread_title:  What are we comparing? 

message: I propose clarifying the Type Safety under Type Systems to be a little more accurate.  I noticed that C# was listed as unsafe with a footer note about being almost-safe.  Generally, I don't think this is a good way to interpret type safety, since a lot of these languages are considered to be type safe, but can support unsafe code in very specific instances (For example, enabling unsafe code in the compiler and using unsafe {} sections).  If there are no objections, I'd like to start changing 'unsafe' to 'safe' and adding an additional footer note for languages that are normally type-safe, but support unsafe code.  As I'm not familiar with all the languages on the list with the footer note, help would be appreciated.
SaguratuS (talk) 13:44, 27 March 2009 (UTC)
replies: text: Agreed; it seems more reasonable to categorize C# as being "safe" and having a footnote about the unsafe code blocks that it allows. Note that these are strictly separated from other code using the unsafe construct, and that it can only be enabled using a compiler switch. I'm also not sure how things like Java's JNI factor into this; certainly JNI is much more "unsafe" than the interoperability C# offers with unsafe and externals. However, one may not consider it strictly part of the language. – Chip Zero 18:14, 27 March 2009 (UTC)

text: I disagree. In order to be safe, the language needs to lack any unsafe features. Even if you need to jump through a bunch of loops to use unsafe features, it still is unsafe. Also, JNI isn't really part of Java but, it might be worth noting. Mike92591 (talk) 22:37, 27 March 2009 (UTC)
replies: text:  Well Mike, apart from academic languages like the original Pascal and something very special - like the language used in my FX-602P -  all languages would be unsave under your definition. Because for any language to be of general use there would be some loop somewhere. And even it it is by linking a module written in another language. We need a practical definition and not one which fills the whole column with "unsave" --Krischik T 16:33, 29 March 2009 (UTC)

text: Although a lot of them may be unsafe under my definition, I don't see how having most of them categorized as "unsafe1" would be any worse than most of them being "safe". Mike92591 (talk) 19:04, 29 March 2009 (UTC)

text:  And another thing Mike, if you think that "JNI isn't really part of Java" then I consider "Unchecked_Conversion" not really be part of Ada. It's a generic module. It's all about where you draw the line. --Krischik T 17:07, 29 March 2009 (UTC)

text: The reason I think JNI isn't really part of Java is that it is a de facto extension. For example, a Java implementation is able to not support JNI and still be a Java implementation. That's my understanding at least. I honestly don't know much about Ada so, I trust your judgment. Where would you draw the line instead? Mike92591 (talk) 19:04, 29 March 2009 (UTC)

text: I've gone ahead and made the changes.  The only language I'm really familiar with is C#, and I know for a fact it is type-safe outside of using the unsafe code blocks and the compiler switch.  If anyone else is confident other languages are also type safe in a similar manner, please change them. SaguratuS (talk) 08:07, 7 June 2009 (UTC)

text: Note that the cited paper is from 1997. The problem it describes was actually fixed not much later in Java 1.2. I updated the article page accordingly. – Chip Zero 22:12, 19 June 2009 (UTC)

text: If it is "almost save" then it should be save1 and not unsave1 - The word used should represent the normal case and the footnote explain the exceptions - and not the other way around. --Krischik T 06:44, 8 June 2009 (UTC)

text: Mike, I honestly think listing type-safe languages as unsafe1 is really misleading.  This is about educating people, and debating whether a language could technically be unsafe under very specific declared instances contradicts the principles of the language.  It's available to those who need it as a feature, and only by taking extreme measures.  In addition to requiring the unsafe blocks, you must explicitly enable the unsafe flag in the compiler.  I think this is sufficiently clarified that this practice is not normal or advised in any way. SaguratuS (talk) 08:17, 7 June 2009 (UTC)
replies: text: Well, I'm not trying to list languages that are type safe as "unsafe1". I'm trying to list languages that are almost type safe as "unsafe1".  I'm not trying to nitpick here but, deviating from the type safety article would likely cause slightly more confusion. The only difference between unsafe and a middle option is essentially convention. However, the difference with safe is actual type safety. So, I consider "unsafe1" clearer than "safe1". Mike92591 (talk) 21:55, 7 June 2009 (UTC)

text: I can't agree with how you qualify something as unsafe.  Everyone who works in C# will tell you it is a type safe language.  Microsoft even says it's a type safe language - Please See: MSDN: Visual C# Language
Listing it as unsafe1 to me is absurd because it's misleading to anyone who doesn't actually know the language.  Unsafe code in C# is a feature only going to be used by a very select few who know exactly what they're getting into, and categorizing an entire language as "almost-safe" because of a feature unseen and unused by most is ridiculous.  I've read the type-safe article and I don't believe this would cause any confusion whatsoever.  Unsafe blocks are clearly identified as such, and I think there will be far more confusion by creating an undefined "almost-safe" term.  For languages like Java, this is of course the case because while in principle, it is type safe, but it has issues enforcing type safety in all circumstances.
However, since there are evidently different views on how strictly defined type-safety should be, instead I propose we use the following:
Safe - Strictly safe languages
Unsafe - Strictly unsafe languages
Partially Safe1 or Almost Safe1 - Safe in principle, such as Java
Both2 - Languages which are designed type-safe, but support unsafe code as a feature under special circumstances, such as C#
1 Type safe in principle, but is not type-safe under certain conditions.
2 Languages that are type-safe, but can support unsafe code as a feature.
Would you agree with this approach? --  SaguratuS (talk) 05:52, 8 June 2009 (UTC)

text: Again I like to stress the fact that there are no "Safe" general propose languages under the strict definition - Just found a nice example on how to do PEEK and POKE in Visual Basic. Apart from that I agree with you in principle. Just the wording is not smooth - It should be clearer without looking at the footnotes.
I don't agree with using "both" since it doesn't really make sense. That aside, there are still issues. First, this is my understanding:
           	type safe in theory	type safe in practice	unsafe code is well isolated
Safe       	                   	                     	
Both       	                   	                     	
Almost Safe	                   	                     	
Unsafe     	                   	                     	
If 2 languages are both unsafe in theory but equally type safe in practice then, are their type safeties really different? If they are, why isn't "unsafe" split? Mike92591 (talk) 23:47, 9 June 2009 (UTC)

text: The isolations point is indent important and thinking of it - how about "Yes|Isolated|Almost Save|Unsave" as categories? Of course we are now dangerously close to original research. --Krischik T 13:15, 10 June 2009 (UTC)
replies: text:  We wouldn't really be much closer; The original middle option was already shaky to begin with but, I think a middle option is workable. However, I'm still not convinced that the isolation has much to do with type safety. Mike92591 (talk) 21:42, 10 June 2009 (UTC)
thread_title:  Type Safety 

message: I just read http://www.cis.upenn.edu/~bcpierce/courses/629/papers/Saraswat-javabug.html and as an Ada advocate I could express a little Schadenfreude and I did for a very brief period. But then I thought: Isn't this taking it to far? How many programmers design there own class loaders. Is this definition - as I said before - so academic that only academic programming languages will fulfil them and as such of no practical use. May be we need a three step logic here. "save", "save for practical use", "unsave". Maybe a native english speaker has a better word for the middle part. --Krischik T 19:21, 31 March 2009 (UTC)
replies: text: Note that the cited paper is from 1997. The problem it describes was actually fixed not much later in Java 1.2. I updated the article page accordingly. – Chip Zero 22:12, 19 June 2009 (UTC)

text: If it is "almost save" then it should be save1 and not unsave1 - The word used should represent the normal case and the footnote explain the exceptions - and not the other way around. --Krischik T 06:44, 8 June 2009 (UTC)

text: Mike, I honestly think listing type-safe languages as unsafe1 is really misleading.  This is about educating people, and debating whether a language could technically be unsafe under very specific declared instances contradicts the principles of the language.  It's available to those who need it as a feature, and only by taking extreme measures.  In addition to requiring the unsafe blocks, you must explicitly enable the unsafe flag in the compiler.  I think this is sufficiently clarified that this practice is not normal or advised in any way. SaguratuS (talk) 08:17, 7 June 2009 (UTC)
replies: text: Well, I'm not trying to list languages that are type safe as "unsafe1". I'm trying to list languages that are almost type safe as "unsafe1".  I'm not trying to nitpick here but, deviating from the type safety article would likely cause slightly more confusion. The only difference between unsafe and a middle option is essentially convention. However, the difference with safe is actual type safety. So, I consider "unsafe1" clearer than "safe1". Mike92591 (talk) 21:55, 7 June 2009 (UTC)

text: I can't agree with how you qualify something as unsafe.  Everyone who works in C# will tell you it is a type safe language.  Microsoft even says it's a type safe language - Please See: MSDN: Visual C# Language
Listing it as unsafe1 to me is absurd because it's misleading to anyone who doesn't actually know the language.  Unsafe code in C# is a feature only going to be used by a very select few who know exactly what they're getting into, and categorizing an entire language as "almost-safe" because of a feature unseen and unused by most is ridiculous.  I've read the type-safe article and I don't believe this would cause any confusion whatsoever.  Unsafe blocks are clearly identified as such, and I think there will be far more confusion by creating an undefined "almost-safe" term.  For languages like Java, this is of course the case because while in principle, it is type safe, but it has issues enforcing type safety in all circumstances.
However, since there are evidently different views on how strictly defined type-safety should be, instead I propose we use the following:
Safe - Strictly safe languages
Unsafe - Strictly unsafe languages
Partially Safe1 or Almost Safe1 - Safe in principle, such as Java
Both2 - Languages which are designed type-safe, but support unsafe code as a feature under special circumstances, such as C#
1 Type safe in principle, but is not type-safe under certain conditions.
2 Languages that are type-safe, but can support unsafe code as a feature.
Would you agree with this approach? --  SaguratuS (talk) 05:52, 8 June 2009 (UTC)

text: Again I like to stress the fact that there are no "Safe" general propose languages under the strict definition - Just found a nice example on how to do PEEK and POKE in Visual Basic. Apart from that I agree with you in principle. Just the wording is not smooth - It should be clearer without looking at the footnotes.
I don't agree with using "both" since it doesn't really make sense. That aside, there are still issues. First, this is my understanding:
           	type safe in theory	type safe in practice	unsafe code is well isolated
Safe       	                   	                     	
Both       	                   	                     	
Almost Safe	                   	                     	
Unsafe     	                   	                     	
If 2 languages are both unsafe in theory but equally type safe in practice then, are their type safeties really different? If they are, why isn't "unsafe" split? Mike92591 (talk) 23:47, 9 June 2009 (UTC)

text: The isolations point is indent important and thinking of it - how about "Yes|Isolated|Almost Save|Unsave" as categories? Of course we are now dangerously close to original research. --Krischik T 13:15, 10 June 2009 (UTC)
replies: text:  We wouldn't really be much closer; The original middle option was already shaky to begin with but, I think a middle option is workable. However, I'm still not convinced that the isolation has much to do with type safety. Mike92591 (talk) 21:42, 10 June 2009 (UTC)
thread_title:  Saraswat 

message: Isolation means the programmer knows what he is doing. I vividly remember that bug I was hunting down two day flat. It the end it turned out an signed& -> unsiged& conversion for which which one compiler used a temporary variable (MS-C++) and the other did not (IBM-C++). With one compiler to code worked with the other not.
That would not have happened in Ada. Not that you could not do it - Ada is a system programming language after all. But you would need both an instance of the generic Unchecked_Conversion function (3 lines of code in standard code layout) and the use of Unchecked_Access attribute - both would have been clear sign something doggy is going on. Apart from the fact the the original programmer (which was me 6 month earlier) never wanted a conversion in the first place.
Of course this is still the same point we rotate around: the theoretical and practical implication of type safety - and the fact that no general purpose programming language can be type save as required by the theoretical approach. To general purpose you need to interface with other languages, interface with hardware components, call operating system functions all of which include potential type unsafe operations.
I don't think more the two three languages would could still be considered save after a close scrutiny.
Isolation is one way out of this by saying that a language is type save as long as non of the isolated function are used.
--Krischik T 09:03, 11 June 2009 (UTC)
thread_title:  Isolation

message: Could somebody explain several different BASIC dialects listed. Should a article comparing BASIC language dialects be created. mokendall (talk) 01:58, 9 April 2010 (UTC)
thread_title:  BASIC, Gambas, REALbasic, Visual Basic, Visual Basic .NET 

message: I think this article should define what standard, if you will, it has for standardization. I find it a little surprising that Java is listed as not being standardized even though the article mentions the The Java Language Specification. 
Glue33 (talk) 19:05, 18 September 2010 (UTC)
thread_title:  How does this article define standardization? 

message: Failsafe I/O and system calls sections seems too much like Exception handling.
If nobody opposes I am going to change it to Exception handling.  —Preceding unsigned comment added by 195.235.227.10 (talk) 15:59, 9 December 2010 (UTC)
replies: text: Not so specific. Something more like "Implicit early return on unhandled errors". My vague understanding of the text is that "fail-safe" is the goal, and "unhandled errors" is the context. Hence, I/O and syscalls are just examples of things that can fail, exception handling is an implementation detail, and the printing of error messages is not the defining (safety) feature. The criterion should be whether lack of error handling (programmer sloppiness) gets wired by the programming language into an early exit from the subroutine or whole program (as an exception would do). --84.209.119.158 (talk) 21:22, 7 July 2015 (UTC)
thread_title:  Failsafe I/O and system calls 

message: 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)
thread_title:  Other considerations for language comparision tables 

message: 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)
thread_title:  Date 

message: 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)
thread_title:  Some updates to C# and PHP 

message: 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)
replies: text: Because no one has added it yet. Be bold! peterl (talk) 01:21, 4 January 2012 (UTC)
thread_title:  R 

message: 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)
thread_title:  Java Concurrent? 

message: 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)
thread_title:  Better platform? 

message: 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. 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)
replies: text: I have just changed the entry for Python. --188.23.237.186 (talk) 08:18, 1 June 2013 (UTC)
thread_title:  Standardization of Python (and Java) 

message: 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)
replies: text: 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)

text: 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)
thread_title:  Paradigm Column - Make it an (Un)sparse Matrix? 

message: 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)
thread_title:  Fotran and Functional programming 

message: 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)
replies: text: 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)
thread_title:  JS not a Event-driven langnguage 

message: Hello fellow Wikipedians,
I have just modified one external link on Comparison of programming languages. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
*Added archive https://web.archive.org/web/20110220044217/http://hopl.murdoch.edu.au/ to http://hopl.murdoch.edu.au/
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
Cheers.—InternetArchiveBot (Report bug) 17:36, 11 August 2017 (UTC)
thread_title:  External links modified 

message: "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)
thread_title:  About Dmoz 

message: 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)
thread_title:  Python not Generic??? 

message: I miss TypeScript. -2003:70:D29:BA7F:1CEB:54EA:35EF:59F4 (talk) 11:38, 24 December 2018 (UTC)
thread_title:  TypeScript 

message: 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)
thread_title:  Missing languages in section Failsafe I/O 

message: 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)
thread_title:  Missing Column Headings 

message: 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)
replies: text: I'm curious what designates a functional language in your mind. DaveJWhitten (talk) 21:10, 8 June 2021 (UTC)
thread_title:  Functional? 

message: 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)
thread_title:  Procedural column should be removed 

message: 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)
replies: text: 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)
thread_title:  Event driven column should be removed 

message: 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)
thread_title:  OpenLisp standard 

message: 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)
thread_title:  AMPL