Jump to content

Talk:Comparison of programming languages

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Markhobley (talk | contribs) at 22:10, 26 March 2011 (considerations for language comparision tables). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Flash, SWF

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 (talkcontribs) 10:38, 5 March 2009 (UTC)[reply]

LabVIEW

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)[reply]

MatLab

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)[reply]

*Very* biased

There are dozens of features in programming languages (see, for example, the size of a book on programming languages concepts); however, one of these features is clearly overemphasized in the chart (contracts), while others are totally missing. I suggest only those features that are *truly* accepted by the majority of programmers as "very important" be included in the chart. Otherwise, a chart like this would be another option:

http://www.prowiki.org/wiki4d/wiki.cgi?LanguagesVersusD —Preceding unsigned comment added by 201.37.141.93 (talk) 12:46, 9 December 2007 (UTC)[reply]

I agree. If no one has arguments to why contracts has such a great emphasis I think it should be removed. Reading into the Contracts wikipedia article, it states that C++ does not support contracts unless you use 3rd Party extensions, but in this article it is stated that C++ supports it. Well, if 3rd party extensions count all languages could potentially support this, making the comparison useless. Even C is said to support it here. If C, such a low-level language, supports it I can't image what wouldn't.
Contracts could be substituted with something more useful, like if the language is standardized by ISO, or simply removed. --Felipe Monteiro de Carvalho (talk) 16:44, 17 December 2007 (UTC)[reply]

I don't think the contracts column is really any more emphasize than the rest. Anyway, the reason this small feature is in a general over view is because I was trying to reorganize it. What I was hoping to make a new general comparison (containing: paradigms, designed use, design goals, and maybe when it was made) and a type system section. Unfortunately, I really screwed up with the usage section (very indefinite). The reasons why other features are missing is mostly because no one put them there. Also, abstraction from common hardware has little to do with the ability to have contracts (all you need is some sort of type system). Mike92591 (talk) 22:24, 17 December 2007 (UTC)[reply]

I removed contracts because it's a too small feature and substituted it by "Standarized?", which should show if there are many implementations of the language from which to choose from (vendor inpendenency) and also overall industry support. There is probably much more to improve, or maybe someone comes up with a better idea, but this should be a good start. --Felipe Monteiro de Carvalho (talk) 17:22, 20 December 2007 (UTC)[reply]

MA: I think the "Standardised" column is very misleading and biased - it doesn't take account of de-facto standards, for example those provided by freely available open source reference implementations. On the other hand it defines C# as "standard" which is technically true but irrelevant as the .NET platofrm required to run C# is certainly not standardized..... I've tried editing a few of these to make less biased but on the whole I think the entire column is pretty misleading.... —Preceding unsigned comment added by 86.2.245.140 (talk) 16:50, 11 February 2011 (UTC)[reply]

Type

There should be a column saying which are open source and which are propriety and who controls the propriety ones.

Lua

I'm suprised Lua wasn't included, I'm quite fond of it.

  • Lua should be included. You shall go to the ball.

ActionScript

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.

Disorganized and wrong

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)[reply]

Cleanup tags

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)[reply]

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)[reply]

Fix Up

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)[reply]

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)[reply]
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)[reply]

What specifically should go into the paradigm column? There are some that are very obvious (like structured programming) that do not need to be listed because all current production languages follow that paradigm, but some that are near obvious that's normally taken for granted but is not necessarily the case. I left that in C but would it be better to just remove it, considering the only event-driven language on the list is Visual Basic? Ekarderif 17:29, 3 May 2006 (UTC)[reply]

TIOBE

I propose eliminating the TIOBE data, as there is no citation that Google hits translates into actual popularity. At the very least a term other than "popularity" should be used. But I would prefer that the comparison stick to verifiable data such as typing.

And on that note, since when is C# dynamically typed?--Craig Stuntz 14:50, 4 May 2006 (UTC)[reply]

There's Wikipedia:Search engine test. Under idiosyncratic usage it says "A series of searches for different forms of a name reveals some approximation of their relative popularity."
The TIOBE data has been around for a long time and is regularly updated. At [1], where it says "The definition of the TPC index can be found here" you can click "here" to see an explanation. I don't think it's a good explanation, especially for laymen, but it provides some details that might matter to some people.
Here's a discussion that might be of interest.
About C# being dynamically typed, I got that from the infobox on the top right of C#. I don't know. Here it just says "C# is strongly types and provides extensive compile-time and run-time checking; unlike Java, C# supports C-style unsafe pointers, but only within specially designate code sections." Nothing about being other than strongly typed. -Barry- 16:00, 4 May 2006 (UTC)[reply]
The "idiosyncratic usage" section refers to different forms of the same term. Not comparing entirely different products. To my mind the most useful thing about the "Google test" is demonstrating when something has no popularity whatsoever, not comparing several very popular things. Aside from the fact that there is no formal demonstration that TIOBE numbers accurately reflect popularity, there are better things we could do with the space. Listing supported platforms, for example. I think the bit at the C# article regarding support for dynamic typing is just wrong. I've seen a presentation by Anders Hejlsberg where he mentions that he's interested in dynamic languages as the inspiration for features in yet-to-be-invented releases of C#, and discusses mixins in some detail. Being runtime type checked is an argument for strong typing but not for dynamic typing. --Craig Stuntz 18:08, 4 May 2006 (UTC)[reply]
I think people are informed enough about where the numbers come from and they can take the information FWIW. I guess we can change "Popularity" to "Web popularity" but keeping the details in footnotes seems enough.
Lets not worry about space. We could create a continuation chart below the current one, listing the same languages and different features. In addition to showing supported platforms, some possible additions could be official websites, discussion (message boards, chat rooms, newsgroups, mailing lists, etc., or maybe give each a separate column), license type, support (vendor or community only, free or paid, etc.), and maybe some of the sections here and here. -Barry- 18:32, 4 May 2006 (UTC)[reply]
I'm not suggesting that readers in general are too dumb to figure out that the numbers in the "popularity" column don't actually mean popularity. I'm saying that a Wikipedia article which claims they do is violating Wikipedia's standards for verifiability. If you really want to track search engine results, call the column "Search engine results," but I just don't see that it's relevant to much of anything. I'll change the column name for now.--Craig Stuntz 20:39, 4 May 2006 (UTC)[reply]

Other languages that should be covered

  • 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)[reply]
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)

If Matlab and Mathematica are in here, SQL definitely needs to be listed as a language! talk 16:19, 21 Feb 2009 (UTC)

others

and more...


Software AG's NATURAL is included in the "Hello World" page, but missing here. A 1979 4GL replacement for COBOL that is still going strong AND is platform independent! I believe it should be in the list. A. Blakey


DataFlow Languages - Only One Listed. Lucid?

Could someone please ad Lucid to this list?DiagonalArg (talk) 06:28, 30 June 2009 (UTC)[reply]

How should Template:Type_system_cross_reference_list be used in this article

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)[reply]

TIOBE (again)

We're relying heavily on TIOBE data here, and yet they are a commecial company whose bias has been seriously questioned in the past, and which relies on search engine results for their numbers. Is this really something Wikipedia should be perpetuating? -Harmil 17:31, 22 May 2006 (UTC)[reply]

I wouldn't say we're relying heavily on TIOBE. The vast majority of the TIOBE stuff is just to clarify what the actual data is about. If a reader skips the long quote in the footnote, they'll actually be more skeptical of the data because they'll still know it's from a search engine and won't know of the extra effort made to get relevant results.
I don't think TIOBE has been accused of bias. They were questioned about the sudden drop in rank of one of the languages and they explained it was a change in the search engine. TIOBE added more checks to reduce such events.
Their data has been said by some Wikipedia editors to be inaccurate (mostly editors from another article whos language didn't come out looking too good), so this article now uses overly cautionary wording and doesn't even say that it's an approximation of popularity (a phrase I admit I'd try putting back if you ever lost interest in this article.)
One compromise would be to move the TIOBE data from the main chart to a separate section, but that would take up more space, and I really don't think the TIOBE data is hurting anyone. If more columns eventually get added and the top chart has to be split in two, the TIOBE data would go in the continuation chart under the first part of the chart.
I added this warning to the footnote section "The relevance of the TIOBE data is disputed for anything other than estimating how much internet coverage there is of certain programming languages. It's only included here because of its relation to the subject matter of this article. No value to those seeking a popular programming language is implied by the data's inclusion." -Barry- 23:46, 22 May 2006 (UTC)[reply]
Ahem. Please assume good faith. I mostly program in C# and Delphi, both of which do rather well by TIOBE "standards," and I still think it's irrelevant. I don't know that TIOBE is biased per se but I would say it uses a biased methodology. I can live with the "SERP" description since that's an accurate assessment of what TIOBE does. I honestly can't imagine why you'd want to revert to a description like "popularity" which cannot be cited. (My personal opinion is that it can't be cited because it isn't true. But that's beside the point. It can't be cited regardless of the reason.) --Craig Stuntz 17:54, 23 May 2006 (UTC)[reply]

Craig: with this edit you completely removed my reasoning for including the data, so I know you saw it, yet you're questioning the data's relevance to the article. It's very simple. I said "It's only included here because of its relation to the subject matter of this article." The removal of that line isn't so bad because it should be obvious that the data was included for that reason, but unfortunately it isn't to some people. The SERP results aren't bad statistics based on bad techniques. In fact, they're probably perfect. As long as there's no misrepresentation of what they are. -Barry- 02:15, 25 May 2006 (UTC)[reply]

I removed the reasoning because it wasn't cited and was circular logic as expressed. Asserting relevance does not make it relevant. I see no point in arguing over whether or not SERPs correspond to popularity because the standard for Wikipedia is not truth, it's verifiable truth. Unless and until you can cite verifiable sources for the claim you've made here on talk and in older versions of the article it needs to stay out of article space. --Craig Stuntz 02:53, 25 May 2006 (UTC)[reply]
Do y'all think its time to remove the TIOBE columns? The others are relevent to the comparison of computer languages and should remain; however, there seems to be consensus between several editors that the TIOBE data is suspect. Steve p 21:05, 26 May 2006 (UTC)[reply]
I think it's time to remove them not so much because several editors consider them suspect, but because the single editor who supports them has provided no reason to consider the results verifiable. --Craig Stuntz 17:05, 1 August 2006 (UTC)[reply]
I have in several places. I think they're verifyable in every imaginable way. I quoted pages from Google Scholar that use the data to indicate popularity. But I won't revert if you remove it. Wikipedia sucks. -Barry- 00:39, 3 August 2006 (UTC)[reply]
If that's the argument in favor (your personal opinion, your imagination, and whatever turns up on Google), it doesn't begin to meet WP:V, and should go. --Craig Stuntz 00:49, 3 August 2006 (UTC)[reply]
It's not my personal opinion or imagination or whatever turns up on Google. Google Scholar isn't the standard Google search engine. This is one of the places where I link to the scholarly material that uses TIOBE. It's obvious that search engine results are verifyable. It doesn't have to indicate popularity to be in this article anyway. Statistical data about some aspect of programming languages, especially when it comes from a popular website, fits here. -Barry- 02:00, 3 August 2006 (UTC)[reply]
The question isn't whether those sources that quote the TIOBE index are scholarly, its whether TIOBE itself meets WP:V. Steve p 05:41, 3 August 2006 (UTC)[reply]
Neither TIOBE itself nor the "scholarly" (I use the term loosely; not everything published in academia is in fact scholarly!) material you quoted in Talk:Perl is a verifiable case for TIOBE having significance with regards to actual popularity. The paper you quoted simply passes on the assertion, just as you do. Regarding the "verifiability" of search engine results, nobody is claiming that TIOBE is fudging the Google hits; the verifiability question is the implication that they mean something. --Craig Stuntz 12:46, 3 August 2006 (UTC)[reply]
Just delete it then. There's no dispute resolution worth a darn around here, and I won't waste my time with these things anymore. -Barry- 14:12, 3 August 2006 (UTC)[reply]

Just came across this page. The TIOBE column is weird, hard to understand, and I am a programmer. I believe it should go. Comparison doesn't mean ranking, so I see little point in keeping the information. -- cmh 02:22, 2 June 2006 (UTC)[reply]

You can compare the ranks. I think programmers are used to things that are hard to understand, but feel free to reword things. -Barry- 04:11, 2 June 2006 (UTC)[reply]

SERP data is an absoltue and utter misrepresentation of how good a language is. While it is not intended to be a measure of language goodness, it can be erroneously but frequently construed as serving that goal, and it therefore needs to be deleted once and for all. Where the SERP data comes from is irrelevant. --Amit 17:40, 7 August 2006 (UTC)[reply]

Benchmark results

Please review Talk:Perl for the history of the benchmark results that User:-Barry- tried to inject here. His edits were removed from Perl by three different editors, and he's been revert warring endlessly there, so he seems to have decided to bring his edits here.... -Harmil 05:33, 23 May 2006 (UTC)[reply]

Someone in the Perl discussion claimed to have made Perl's benchmark script faster. He didn't claim it would be enough to win any more tests. He wouldn't use a web based diff tool that I pointed him to that would have allowed me to see his changes in the context of the full script (it's the easiest to use diff tool there is and the results get saved automatically). Still, I was able to see that he failed to follow some best practices for programmers by using default variable names that don't describe the data. I admitted it was allowed, but you can't say a benchmark is flawed just because it's not written using bad programming practice and therefore runs slower. If it did win another test, that would be one extra out of about 32, and then to be fair, we'd need an expert in the other languages that Perl's compared to to try to optimize the other benchmark scripts.
I provide disclaimers, as always. If you want them strengthened, go ahead, but don't delete data that some people rightly believe is meaningful. -Barry- 05:52, 23 May 2006 (UTC)[reply]
I don't want the disclaimers strengthened at all. Disclaiming bad results doesn't make the encyclopedic. They are bad results. The search engine lookups are bad statistics based on bad techniques. The Benchmarks are fairly reasonable statistics based on poor code. I and other editors have pointed this out to you over, and over again. You're not listening. Please, remove your bias from this article in whatever way you like before others do it for you.
For those not paying attention, User:-Barry- is a self-professed anti-perl advocate who has been pushing Python-centric bias on Perl for a month or so. His failures there lead him to this article, which he apparently feels he can inject the exact same flawed numbers into with impunity. I'm a great lover of Python, but I have to say that it seems to attract and energize exactly the worst kind of advocate. I have no idea why that is the case, but it hurts an otherwise nice language. Shame. -Harmil 04:38, 24 May 2006 (UTC)[reply]
Please make your point without resorting to personal attacks. It hurts your case; it does not help it. I would like to suggest that you remove your last paragraph and the last sentence of the first paragraph as they violate WP:AGF and take away from the very reasonable point, I think, in the first paragraph. Thanks for listening. --Craig Stuntz 13:12, 24 May 2006 (UTC)[reply]
Let me re-state. I think I was being quite reasonable, and have long been the "good cop" in situations involving -Barry-. I've been, in fact, the only one who has tried to reason with him to get him to contribute rather than advocating.
To be clear, User:-Barry- is a self-professed anti-perl advocate who has been pushing Python-centric bias on Perl for a month or so. That much is currently the topic of a mediation page, on which I have documented his behavior extensively. He came to this page, after his attempt to place an "alternative langauges" section in the Perl article (listing Python), which he has said in edit summaries on the Perl article, is "better than Perl". He has injected into this page, the exact same flawed benchmarks and flawed Web popularity search results that he was told were flawed by many editors on Talk:Perl. I even went so far as to re-write one of the benchmark tests to demonstrate this to him, and he dismissed the result without consideration as too small a sample to demonstrate anything.
Please, help me to understand how to say that in a way that does not sound like a personal attack. I know that I'm saying, "-Barry- is a biased anti-perl advocate." I mean exactly that. I don't mean "he's a bad person." I don't mean "he will never change." I do mean that he is a disruptive editor who has been pushing his own agenda to make a point. -Harmil 14:19, 24 May 2006 (UTC)[reply]

I think you stated your point quite well in your first few sentences:

I don't want the disclaimers strengthened at all. Disclaiming bad results doesn't make the encyclopedic. They are bad results. The search engine lookups are bad statistics based on bad techniques. The Benchmarks are fairly reasonable statistics based on poor code. I and other editors have pointed this out to you over, and over again. You're not listening.

That by itself seems fine to me. It doesn't matter why -Barry- posted this stuff; what matters is the relevance, or lack thereof, to the article. --Craig Stuntz 15:29, 24 May 2006 (UTC)[reply]

With this edit, Pudgenet removed information about Perl's benchmark module from a section about Perl benchmarks. He thinks a quote from an expert is unallowed because it's his point of view. I say it belongs. -Barry- 02:23, 25 May 2006 (UTC)[reply]

Not everything any expert says is necessarily encyclopedic content. I personally find the "sux" comment to be not substantive, whereas the presentation itself goes into some detail about what he thinks the flaws are and how to avoid them. Note that the flaws he identifies have as much to do with how the benchmark is used as the benchmark itself. He also gives an example of how to use it correctly. This is a very common theme in misunderstandings of benchmarking — I'd venture to say that benchmarking is misunderstood by more people than it's understood by. It's certainly not what comes to mind when you read the single word "sux." With that in mind, I'd say that a one-word quote like that is not a fair representation of the presentation's point regarding that module. --Craig Stuntz 03:05, 25 May 2006 (UTC)[reply]
Yes, Craig, and this all was gone over before with -Barry-. He lost the battle for the very reasons you cite on Perl. He just doesn't care, and figured maybe he would have a better chance including it over here. Pudge 21:16, 25 May 2006 (UTC)[reply]
The benchmarks should be in Perl's article too. The benchmark chart and the "sux" comment are separate issues. In Perl, nobody wanted the chart OR the text.
The arguments in your edit summaries are very different from Craig's argument above. Your argument was "Removed Barry's non-NPOV and unencyclopedic commentary that has been removed for same reasons elsewhere." I still say that a quote from a Perl expert who co-authors Perl books isn't unencyclopedic even if he uses the word "sux" but rephrasing it would have been fine with me. Quoting his "sux" comment is in the same category as quoting the other slide that he got from the benchmark site, which seemed to be acceptable. How do we know his second hand advice is a NPOV? We don't, but we allow it because he's a notable expert. We just need to try to prevent misleading people when we include it, but we don't omit it. -Barry- 21:48, 25 May 2006 (UTC)[reply]
No, the benchmarks should not be in Perl's article, for two reasons. First, they are, in fact, meaningless. Second, the consensus says they should not be included. As to your thinking "sux" is relevant: that is a great example of why you are having so many problems here. It simply is not relevant. The fact that someone said something "sux" means nothing without context, which was not provided. You meant it to imply there was actually a problem that the person who said it himself did not mean to imply. Stick to facts, not trying to impugn a language you dislike with out-of context quotes. Oh, and while I'm at it, you could also stop lying about Scaripa being a vandal. I know Wikipedia's Golden Rule is to assume good intentions, but you clearly are operating with ill intentions, and Wikipedia would be a lot better off if you simply went away. Pudge 06:03, 27 May 2006 (UTC)[reply]
I believe all the Perl benchmark data adds WP:POV The data shown is exceptionally limited in scope. There is not enough information on how the interpreted languages were built, such as C compilers used, versions, optimization flags used, configuration flags, etc. The benchmarks are limited in terms of CPU types and operating systems. Without much more information, it is imposible to determine whether there was intentional or unintentional bias added to the results, even in cases where it shows that Perl performed better. Steve p 01:05, 28 May 2006 (UTC)[reply]

Harmil's comments about the Python community

Sorry if this is off topic, but it's in reply to something Harmil wrote in the Benchmark discussion. If his comment is allowed to remain, I must reply.

Harmil wrote "I'm a great lover of Python, but I have to say that it seems to attract and energize exactly the worst kind of advocate. I have no idea why that is the case, but it hurts an otherwise nice language. Shame." I've heard the exact opposite from many sources. Larry Wall, father of Perl, even tried justifying the behavior of the Perl community by saying "Perl is postmodern, so Perl advocates are allowed to employ logical fallacies, cheerleading, dramatic swings of opinion, fence-straddling, evangelism, and finger pointing as needed in order to defend their position." which was quoted in a critique that was reverted by Scarpia. #perl on Freenode (IRC) is full of profanity and when I questioned it, I got even more and someone was bragging about #perl being the most "colorful" channel on Freenode for that reason. In a Perl newsgroup discussion, I heard the Python community being criticized for being artificially polite (forgot the exact words). Someone alluded to this known difference between the Perl and Python community just a day or two ago in Wikipedia's chat room on Freenode when I went there for advice on how to handle the bias here. So, if Harmil isn't lying, he must be thinking about all of the justified criticism of the behavior of the Perl community. Oh, and one of Shlomi Fish's editorials that was reverted makes reference to the problem with the Perl community as well. And don't get me started on all of the members who left Perlmonks because of this problem. I was the only one considered a troll. -Barry- 03:15, 25 May 2006 (UTC)[reply]

Larry Wall never said what you attribute to him. Here's what he did say. The quote you attribute to him is in fact from the critique you cite. Now, the author of the critique is certainly entitled to his opinions on what Larry Wall says, but the author's opinions should be attributed to the author, not presented as a Larry Wall quote.
You know how I keep asking you to cite sources? This is a good example of why.
I'll say to you what I said to Harmil elsewhere: Two wrongs don't make a right. I think Harmil unfairly questioned your good faith in an edit summary to this article. Now I think you're doing the same thing to him here in this discussion. Please stay cool and stick to the facts. Thank you! --Craig Stuntz 13:22, 25 May 2006 (UTC)[reply]
I think I recall someone mentioning citing sources. It probably didn't make an impression on me because I do. I did above too. If I had said the above in the actual article, you would be correct for clarifying it (not deleting it). I wouldn't object to a disclaimer in the article that clarifies that the bulleted list in the editorial doesn't contain exact quotes.
I don't think the edit summary "User:-Barry- has been taking heat for injecting these flawed benchmark results in Perl, so he's come here. Good faith credulity is strained" was unfair. It's ok to draw attention to the perceived lack of an editors credibility, especially if you don't like many of his edits. -Barry- 20:40, 25 May 2006 (UTC)[reply]
I honestly can't believe that referring to an edit which removes a link on a different page to a quote on this page misattributed to someone who never said it counts as "citing sources." Citing sources, to me, means that direct quotes should in pretty much every case be followed by a footnote with a direct link to the quote in full context. To be clear, I'm talking about the claims made here, on this page. I haven't the time or energy to follow the Perl article. --Craig Stuntz 20:24, 26 May 2006 (UTC)[reply]

Color codes in benchmark table

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)[reply]

Perl benchmark awkward and superfluous

The whole section just reads really weird. The main table addresses a couple dozen languages, but the "benchmark" section is specific to Perl (albeit comparing it to a half-dozen other randomly chosen contrasts). Moreover, there is all this extraneous detail about specific architecture and stuff, but the "results" are this very hard to quantify "number of tests won"...without any specifics of what the tests are. Maybe we can just give a general pointer to http://shootout.alioth.debian.org/, and let readers generate the comparisons they want (from all the thousands of permutations that site allows). LotLE×talk 17:45, 3 June 2006 (UTC)[reply]

I intend for there to be a subsection for many languages. Perl is just the first one because I already had it done. I'll add more myself eventually if the table sticks around.
Links to two pages (one for each operating system tested) are provided, and they provide a way to see what the tests are and what the individual results are for each test. You currently have to use a form to select the language you're interested in, but I could add a direct links to the specific page for each language and make it clear that individual tests and results are shown there.
But if you want to remove it, go ahead, because I'd rather not spend my time making similar charts for other languages if they'll all be reverted sometime in the future. I might do so anyway, for another website, but not in the near future.
I think my days of epic contributions to Wikipedia are over because of lack of support from inclusionists. Maybe Wikipedia needs an Adopt a section program in which administrators decide that a certain section can be best maintained by one editor and that author is given exclusive editing rights. -Barry- 18:22, 3 June 2006 (UTC)[reply]
Wikipedia actually has the opposite rule. See WP:OWN. This is Wikipedia official policy. --Craig Stuntz 02:46, 4 June 2006 (UTC)[reply]

Thousands

"There are thousands or PL". This has to be confirmed. I don't know so many languages. Acaciz 18:05, 3 June 2006 (UTC)[reply]

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)[reply]

Lulu: you broke the article in IE

Look at the expressiveness section in Internet Explorer. At this time it's broken. The formatting was there for a reason, and some that you've removed had comments indicating what it does. Default isn't always good, and this time it's horrible. -Barry- 18:27, 3 June 2006 (UTC)[reply]

I don't own IE; but all the weird page-layout HTML cruft made the whole article look simply horrendous in the several browsers I tried. Please think of Wiki readership: articles aren't about custom visual layout in some sort of page-layout art-house thing. WP doesn't tweak for specific OS, browser version, display resolution, ad naseaum to get some visual specifics... the right way is to use strictly Wiki codes, and let any issues in rendering get addressed by the MediaWiki developers site-wide. LotLE×talk 18:34, 3 June 2006 (UTC)[reply]
Why is it better to have all that whitespace next to the Contents rather than having the intro in that space? Why are footnotes for a particular section better at the bottom of the entire article than at the bottom of the section. The Benchmark section isn't flush left now, and the Expressiveness table is between two sections. -Barry- 18:41, 3 June 2006 (UTC)[reply]
None of the characteristics you describe as desirable actually render the way you say outside of the specific browswer, OS, version, display res, font choice, CSS, etc. that you apparently use. I never saw those things you mention, for example. This was certainly the most crufty page I've ever encountered markup-wise, it seemed to entirely eschew Wiki markup, and be thick with HTML. Yuck! Remember, WP is about content, not about page composition. LotLE×talk 18:46, 3 June 2006 (UTC)[reply]
I tested it in IE and Firefox and it was identical. Now it's broken in IE. And what in the name of all that's holy was wrong with leaving the language groupings in a table, where all the included and excluded languages are aligned to the left of a column? I could understand not bothering to create a table, but why bother to make it worse by removing it? -Barry- 18:49, 3 June 2006 (UTC)[reply]
Just because it looked absolutely terrible and was not tabular data. LotLE×talk 18:51, 3 June 2006 (UTC)[reply]
Btw. What is "broken" in IE? It may be that I missed some more markup cruft that is doing something odd. Of course, you'll have to say what exact IE version, OS version, font size, display resolution, Windows patch level, CSS settings, etc. that you have that makes it "broken". Moreover, I suspect that 99% of the pages on WP are similarly "broken" if you are aiming for some oddly specific visual layout. LotLE×talk 18:54, 3 June 2006 (UTC)[reply]
It was tabular data at least as I know it, but not so much now that you removed the column headings.
I'm using IE 6. Didn't check it in Firefox. Can't talk more now. I'm going to my happy place. -Barry- 19:00, 3 June 2006 (UTC)[reply]

OK, I admit I lied slightly above. I actually do have Win XP Professional SP1 installed in a Parallels virtual machine on my Macbook Pro. This apparently has IE 6.0.2800.1106.xpsp1.020828-1920 on it. With all this version specifics, I cannot see anything wrong with the page rendering... well, other than the fact IE or Windows chooses an ugly default font, but I could probably change that. 70.109.234.149 19:12, 3 June 2006 (UTC)[reply]

Unicode in source and identifiers.

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 (talkcontribs) .

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)[reply]

BASIC?

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)[reply]

Ruby is a concurrent language?

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)[reply]

Weak Typing in c++?

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)[reply]

Updated C++ to indicate optional dynamic typing -- referring to dynamic_cast and typeid operations Gerardw (talk) 00:47, 13 October 2008 (UTC)[reply]

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)[reply]

Well, you can not only cast between types but also check to see if something is of a specific type (or superclass). And C++ (like C) does include the void pointer, which can point point to any type. But we're beyond the level of detail appropriate for an overview article. Gerardw (talk) 01:46, 10 November 2008 (UTC)[reply]

incomplete

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)[reply]

Expressiveness

What the heck is it? I've searched the whole wikipedia (ended up mostly in gene expression) and even used some of Google search and this page is the closest I've come to it (specifically, the graph). But, In Computer Science, what exactly is expressiveness? There doesn't seem to be a page on this wiki. Should I make a request? 128.122.253.196 18:47, 28 September 2006 (UTC)[reply]

;; the beginning of the great and mighty series

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)[reply]

who influenced who (Java vs. C#)

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)[reply]

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)[reply]
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)[reply]
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)[reply]

Pascal

Anyone willing to add pascal to this? Hopquick 03:10, 25 November 2006 (UTC)[reply]

Yep. It was a glaring omission. LachlanA 22:55, 10 April 2007 (UTC)[reply]


The hundred-year language by Paul Graham

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).[reply]

Expressiveness

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)[reply]

I think "expressiveness" is trying to describe what Paul Graham is talking about when he talks about Blub or talks about power.

(I should probably note that some people disagree with Paul Graham.)

I believe we should remove the "Expressiveness" section as it is very misleading and confusing Dmitriid (talk) 11:28, 17 November 2007 (UTC)[reply]

programming languages for new programmers

Does Wikipedia have a list/category for interactive languages? I was hoping interactive computation and/or interactivity would list some.

Wiki:FirstTimeLanguage and Wiki: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)[reply]

It would be great if someone could add information about the usage of these languages. I unfortunately don't know anything about programming (I was taught Turbo Pascal in school, but that happened at a time I was literally unable to use computers AT ALL), and I thought it might not be bad at all to learn the basics of programming. Therefore, I'd like to know which languages are used in creating Windows and Linux software, and which languages might be best to learn with...

80.128.201.133 (talk) 09:26, 8 July 2008 (UTC)[reply]

Ruby did not influence C#

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 [2] edit? Gaff ταλκ 18:53, 13 May 2007 (UTC)[reply]
The first stable version of Python with generators (version 2.2) is from end of 2001. According to this [3], 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)[reply]
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)[reply]

POLICY DEBATE: Use of source code and other examples in articles

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)[reply]

Visual Basic 6 has as much a right to be called OO as any other language which lacks some aspects of OO.

1. The tag "Component Oriented" applies to an implementation approach that relies on an OO, language agnostic paradigm. VB is not any more or less Component Oriented than any other language which can use and/or create a component. (The linked page adequately makes these points.)

2. OO is a programming paradigm, not a language feature, although some languages make it a lot easier than others.

3. VB6 supports abstraction, encapsulation, and polymorphism via interfaces, (i.e., implementation inheritance) and is obviously intended to allow developers to construct clearly OO architectures. No, it does not support inheritance, but that seems like a very arbitrary line to draw when...

       a. The main purpose of inheritance is an elegant way to implement polymorphism, not code reuse.
       [Code reuse can readily be implemented with modular (aka structured) code, which is no more violative
       of encapsulation than inheritance is, and even the prevailing paradigm of patterns (as proposed by the GoF) stresses the use of interfaces over inheritance to achieve polymorphism.]
       b. The definition of OOP itself is infamously subject to debate.
        (probably because so many "OO" languages "deviate" in various ways from what was intended
        conceptual approach, not a specification)
       c. The same scrutiny could be applied unfavorably to other, less "controversial" languages.
       [Perhaps we could say that Java and C++ are not a OO language because they have primitive types
       (a violation of abstraction & encapsulation of the variables themselves), or because it is 
       possible to construct procedural programs in C++, or because Java
        requires interfaces to ape multiple inheritance (how can a language claim to support 
        inheritance if it requires code level reimplementation to support inheritance from more than
        one line of ancestors?] The reason this is not done is because...
           a. many of the affected languages are less susceptible to the sort of cheap shot, 
              "I hate MS" derision, and...
           b. such scrutiny would render the set of "true" OO languages into a very small and               
              somewhat lonely club of languages that have yet to win a sizeable following. 
             (Smalltalk, Ruby, maybe Python?)  Where does this scrutiny start & stop and who are
              the high priests who get to decide?  —Preceding unsigned comment added by 208.115.200.62 (talk) 16:20, August 26, 2007 (UTC) 

RPG?

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)[reply]

PL/1?

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)[reply]

PL/I is the name! Not PL/1. It is a roman numeral! Also, it should listed as reflective and probably not object oriented in the chart. talk (talk) 16:10, 21 February 2009 (UTC)[reply]

Assembly Language?

What about the MOTHER of all Programming languages (Assembly). No comparison of programming languages would be complete without it, as all programming languages are derrived from it.

Unix Shell? JCL? OCL? CL?

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)[reply]

C# and Visual Basic. NET are given very different profiles in this list...

... yet barring differences in syntax, the two are largely very similar. Certainly if C# is Imperative, so is Visual Basic .NET. And if Visual Basic .NET is Event Driven, then so is C#.

How about categorization?

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 (talkcontribs) 08:39, 3 December 2007 (UTC)[reply]

Add Matlab?

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)[reply]

It's really alright if you don't know something, someone can always add stuff. Mike92591 (talk) 20:44, 5 December 2007 (UTC)[reply]

Notable Programming Languages

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)[reply]


I originally wanted only to include languages that were on infobox "major programming languages", but it has been apparently deleted in the meantime, so I don't really know. But I agree that only languages/dialects with significant body of code should be included. Samohyl Jan (talk) 18:01, 18 December 2007 (UTC)[reply]

I moved it here. Mike92591 (talk) 20:02, 18 December 2007 (UTC)[reply]

SNOBOL was a ground breaking, landmark language that deserves to be listed. talk (talk) 16:21, 21 Feb 2009 (UTC)

Standardized Python?

Python is listed as being standardized on the basis that there is a policy in place for adding language features. To me that hardly makes it standardized as I am sure nearly every other language listed on this page has a policy regarding changes to the language. The "yes" should be changed to "no", keeping the footnote. —Preceding unsigned comment added by Ty8inf (talkcontribs) 03:52, 25 January 2008 (UTC)[reply]

It has defined syntax, a reference implementation, and extensive test suite. It may not be an IEEE standard, but then an IEEE standard language may not have all of the above. What do you think is missing? --Paddy (talk) 09:50, 25 January 2008 (UTC)[reply]
A standard is missing. --Cubbi (talk) 13:56, 25 January 2008 (UTC)[reply]
I suspect many, if not all, of the other languages on this list have these attributes as well. But that does not mean that they are standardized. Moreover, the footnote implies that language features start with a PEP and goes from there. But this does not appear to be the case. For example, the python 2.4 release notes contains:

- PEP-0318, Function Decorators have been added to the language. These are
  implemented using the Java-style @decorator syntax, like so::
    @staticmethod
    def foo(bar):
  (The PEP needs to be updated to reflect the current state)

In other words, the PEP is being rewritten to conform to the "reference implementation". Ty8inf (talk) 15:20, 25 January 2008 (UTC)[reply]
The | Python 2.4 Language Reference section on decorators would be a better source of information on decorators and their syntax rather than a 'Whats new in ...' document. You fail to mention what constitutes 'standardized' by the way.
Several Python implementations such as IronPython and Jython refer to a version of the Language Reference and the test suite when stating what version of Python they support. --Paddy (talk) 16:49, 25 January 2008 (UTC)[reply]
This has nothing to do with the kind of standards listed in this table for other languages. I suppose one could make a third category -- "yes", "no", and "propriatery", and python would be an example of the third one.. but then would there be *any* language listed as "no"? --Cubbi (talk) 17:18, 25 January 2008 (UTC)[reply]


Cubbi, Ty8inf; I suggest you both read the article Standardization which is linked to as the column header in question. Certainly under that definition Pythons standardization easily fits. You both have refused to give reasons why Pythons standardization is inadequate, or meaningful rebuttals of my arguments. Cubbi, what is proprietary about Pythons standard when compared to others such as C~, F#, jscript, in the context of the article on standardization. If you know of why Python is not standardized then convinceus with reason otherwise your edit is mere vandalism --Paddy (talk) 07:05, 26 January 2008 (UTC)[reply]
The choice of article for column header is poor, it should be Standard (technical), or even Open standard, to distinguish from proprietary. Consider this example: C++ has a language standard (ratified in 1998 and amended in 2003), and Java has not. In fact, what Java has looks a lot like what Python has - a proprietary formal procedure for modifying the current reference implementation. They consciously chose NOT to standardize the language. Actually, read that last link ([4]) completely - it will explain a bit more about the meaning of the phrase "standardizing" in relation to a programming language. Note that Sun's formal "community process" procedure, reference implementations, and test suites are all listed as the OPPOSITE of "standardization". --Cubbi (talk) 22:55, 25 January 2008 (UTC)[reply]
So Cubbi, do you admit to reading in to the column title more than what is actually given, and so your edits; in the light of your new understanding of the column title were wrong to exclude Python?
On your reading matter: Standard (technical) is inclusive of Python. Open standard includes Python. Python is an open-source language that thrives due to its community which write and consider PEPs and create the language revisions. Any ownership rests with the community. You might need to look up the meaning of proprietary or further explain what you mean when you use the term, as most of my references to the term stress excusivity and ownership by the few for such a term.
You seem to conflate Python with Java. Python is not Java. Given the length of your Java reference, having read its abstract, your curious use of the word proprietary, and the articles single language- non Python - focus from its abstract; I choose to dismiss it as irrelevant at this stage. (It also seems odd that when called to defend your change to Python you attack Java, then hope to magically export your confusion of the two)?
Again, in the light of you yourself having accepting that the header is not what you first thought, I ask you to revert your edit. Anyone can make mistakes. --Paddy (talk) 07:05, 26 January 2008 (UTC)[reply]
I brought Java up as a better known example of a language that opposes standardization in a way very similar to how Python opposes standardization. Granted, it's been 12 years since I've taken standardization in college, but I still can call out something as blatant as this. Python has not been standardized. (and yes, wiki lacks a proper page on standards in context of programming languages) --Cubbi (talk) 20:18, 26 January 2008 (UTC)[reply]
Again Cubbi, Python is not Java. Python has a standard as defined by the Column heading. You have not argued against that. I suggest you read the article linked to in the column heading and point out Pythons deficiencies or allow the statement that in the context of the table and its headings, Python is standardized. --Paddy (talk) 00:19, 27 January 2008 (UTC)[reply]
Ty8inf, Your original objection seemed to be with reference only to the footnote. the footnote was not sufficient to describe the Python languages standards and has been expanded, but read the article on standardization then argue your point with that in mind.--Paddy (talk) 20:19, 25 January 2008 (UTC)[reply]
I see nothing in the python development process that suggests any standardization that is at the level of that of other standardized languages in this table. I refer you to [5], which specifies how features are integrated into the language. The way I read it, there is an informal voting process akin to a straw poll, and while GvR may defer to others for a decision, he is the person who ultimately gives a thumbs up or down to a new language feature.
Finally, you will find the following paragraph in the introduction of the reference document that you quoted earler:
 While I am trying to be as precise as possible, I chose to use
 English rather than formal specifications for everything except
 syntax and lexical analysis. This should make the document more
 understandable to the average reader, but will leave room for
 ambiguities. Consequently, if you were coming from Mars and tried to
 re-implement Python from this document alone, you might have to
 guess things and in fact you would probably end up implementing
 quite a different language. On the other hand, if you are using
 Python and wonder what the precise rules about a particular area of
 the language are, you should definitely be able to find them here.
 If you would like to see a more formal definition of the language,
 maybe you could volunteer your time -- or invent a cloning machine
 :-).
-- Ty8inf (talk) 22:15, 26 January 2008 (UTC)[reply]
Ty8inf, You will note that the extended reference to this table entry mentioned much more than the language reference as defining the language standard. I mentioned the extensive test suite and the reference implementation too, which you choose to ignore. The argument is not how Pythons standardization compares to other languages but, given the definition of standardization as linked to in the column header, can Pythons standardization be ruled out? You (and Cubbi), have given no such reason, instead, when pressed, choose to evade the question or state that standardization as you know it is more than the given definition and that your unwritten definition would exclude Python so lets exclude Python. If your idea of standardization is so concrete and worthy then state it here and argue for it to be used as the column heading, and change the entries to fit rather than arbitrarily picking on a language that fits the current idea of standardization as used in the column heading, and throwing it out because of your bias.
Ty8inf, Cubbi its simple: Is Python standardized according to the column header? Yes! So why do you not allow that entry, spite?
  • Python is is not standardized - You don't need an official publication from a standards body to have a precise reference definition. In this case, the language's author and his associates perform all of the functions of the standards body. I am responding here to the request for a third opinion. I have watchlisted the article and will be following the discussion. MilesAgain (talk) 05:48, 27 January 2008 (UTC)[reply]
Looking further, I see there is a need to make a third category for informally standardized languages, such as Java, Python, Tcl, etc. MilesAgain (talk) 11:28, 27 January 2008 (UTC)[reply]
I am changing my mind. The reason programming languages are standardized is that so the semantics definition is independent of the implementation. I see that Python, Java, Tcl do not have that. Sun could, theoretically, come out with something that is not backwards compatible and call it Java, as van Rossum could with Python. There is no independent formal specification for either. MilesAgain (talk) 11:43, 27 January 2008 (UTC)[reply]
And yet you have IronPython and Jython that implement the Python standard for .NET and the JVM (as well as PyPy), all making use of the Python standard to do new implementations. Later Python standards have been modified to be less cantered on the implementation in C and so more widely applicable. Milesagain, if you are going to re-interpret the meaning of the column then someone should alter both the column heading and its entries as, as it stands, the table is wrong to exclude Python. --Paddy (talk) 17:00, 27 January 2008 (UTC)[reply]
I disagree, based on the Chairman of the ANSI C committee's remarks about the characterization of semantics independent of the implementation.[6] There needs to be an established authority other than the people writing the language code to say what the language specification is. MilesAgain (talk) 17:06, 27 January 2008 (UTC)[reply]
Milesagain, what do you disagree with?
  • Do you disagree with the statement that Python is standardized in the context of standardization as defined by the column heading?
  • Do you disagree with the table entries needing to be true to the headings?
  • Or do you believe that the table needs a new column heading, are unwilling to make the change, but have decided to change Pythons entry anyway?
It would be good to get an answer to my questions rather than giving yet more examples of other definitions of standardization in which you think Python does not fit. Straight Yes/No answers followed by your reason would make things clear. If you have a strong case then it should stand up to testing. --Paddy (talk) 00:18, 28 January 2008 (UTC)[reply]
Yes, no, and no: Python is not standardized in the context of standardization as defined by the column heading. From Standardization: "To preserve the word 'standard' as the domain of relatively disinterested bodies such as ISO, the W3C, for example, publishes 'Recommendations', and the IETF publishes 'Requests for Comments' (RFCs). These publications are often informally referred to as being standards." This clearly indicates that, in the context of software, a true standard is not published by the body producing the subject of the specification. MilesAgain (talk) 00:12, 29 January 2008 (UTC)[reply]
Hi Milesagain, I can now see your point. Python does not satisfy the tables definition of being standardized. Thanks for your mediation/extra point of view. --Paddy (talk) 11:49, 29 January 2008 (UTC)[reply]
Wow, Paddy3118, you've changed your opinion as a result of an online argument! I am impressed. --Cubbi (talk) 22:08, 30 January 2008 (UTC)[reply]
If you chip in with "Actually, you were right all along..." I'm gonna scream!  :-) --Paddy (talk) 06:20, 31 January 2008 (UTC)[reply]

Intended Use

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)[reply]

I agree. Mike92591 (talk) 03:01, 4 February 2008 (UTC)[reply]

Bad Article

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)[reply]

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)[reply]

It is possible with any language. It is a programming way as OO or genericity. Acaciz (talk) 15:37, 16 February 2009 (UTC)[reply]

Meaning of "safe (but unsafe allowed)"

What exactly does that mean? Mike92591 (talk) 03:19, 5 July 2008 (UTC)[reply]

About JS in Mono (moved from User_talk:Slippyd)

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)[reply]

Sound like a good idea to me. AFAIK, JS, C#, and Boo in Mono optionally can have explicit typing, but there may be others and this may not be true explicit typing rather classified as a form of "Compatibility" or "Type checking". Mono (software) doesn't mention anything about its typing, so I'm not sure. Slippyd (talk) 17:14, 13 July 2008 (UTC)[reply]

Type strength

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) Gerardw (talk) 01:31, 10 November 2008 (UTC)It's pretty apparent to folks who have worked with the languages. While a more formal definition might be in order, removing the column might be overkill.[reply]

Perl6?

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)[reply]

Distributed Ada

According to the article, Erlang and Ada support distributed programming. For Erlang, this is clear. But in which manner does Ada support it? I've just searched for it but not found some quick information about it. --217.232.61.126 (talk) 10:03, 29 August 2008 (UTC)[reply]

Read >Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems

many professional programmers use dozens of different languages during their career.

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)[reply]

Array slicing

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)[reply]

A lot of them seem to be in Comparison_of_programming_languages_(array)#Slicing just go ahead with it. Mike92591 (talk) 19:21, 7 October 2008 (UTC)[reply]

What are we comparing?

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)[reply]

Type Safety

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)[reply]

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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]

Saraswat

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)[reply]

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

Actually, we do. There are 4 possible kinds of Type safety in the table:

    safe – safe in the academic sense
    unsafe1 – actually unsafe but safe in practice, "almost safe"
    unsafe – unsafe even in practice
    N/A – not applicable (used for untyped languages)

Mike92591 (talk) 22:18, 31 March 2009 (UTC)[reply]

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)[reply]
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)[reply]
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)[reply]
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)[reply]

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 Yes Yes
Both No Yes Yes
Almost Safe No Yes No
Unsafe No No Yes/No

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)[reply]

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)[reply]
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)[reply]

Isolation

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)[reply]

To me that has more to do with convention but, I guess it is important and there isn't a better place for it. Mike92591 (talk) 18:19, 11 June 2009 (UTC)[reply]

BASIC, Gambas, REALbasic, Visual Basic, Visual Basic .NET

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)[reply]

How does this article define standardization?

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)[reply]

Failsafe I/O and system calls

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)[reply]

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)[reply]