Talk:C Sharp (programming language)/Archive 2

Richard Stallman's patent claims
richard stallman's rant about C# where he apparently confused the C# programming language with the .NET environment has been mentioned in the criticism section. I think that's fairly legitimate, and I agree that it isn't wikipedia's place to pass judgment or to assert OR on the subject, but in the context of wikipedia's mention of his claim, the fact that he didn't provide any research, supporting information, references of his own, explanation, etc.. is definitely pertinent here, especially given that he's simply wrong according to a wealth of well referenced material in wikipedia. I mean, the fact that his claims are A) not presented with supporting evidence, and B) in conflict with facts stated elsewhere in wikipedia, is relevant, and not a matter of POV or OR. also, is richard stallman even qualified to comment? he wrote a lot of C code that's used in GNU-based systems, and he played a major political role in defining the free software movement, but is that relevant expertise in C#? I mean, why is his incorrect and baseless rant any more encyclopedic than the opinion of any other relatively famous programmer whose body of work pre-dates the existence of the C# language? -无 名 氏-   18:58, 3 July 2009 (UTC)


 * Stallman has earned the right to comment on the interactions between various kinds of licensed and/or patented software - he's been on the forefront of the public discussion for almost 25 years now. He's also entitled to be wrong and to be seen in public to be so.  You're correct that this is merely an opinion, albeit one from a major figure in the world of software rights and ownership.  The article should treat it in that fashion, not as an assumed truth. But it also shouldn't attempt to prove him wrong - articles aren't supposed to debate themselves or their sources. RossPatterson (talk) 19:18, 3 July 2009 (UTC)


 * as you said, it's not assumed truth in this context, and the article therefore wouldn't be debating itself to frame his comments with references to conflicting accepted facts in wikipedia. also, this isn't a matter of opinion, it's not as if he said that C# is too connected to Microsoft for his liking, and he feels it's worth avoiding. he made specific factual claims that explicitly conflict with referenced material in wikipedia, no better than if he had said "you have to pay license fees to microsoft if you program in c#." mentioning the applicable facts in this context, in addition to their main encyclopedic locations, is not POV or OR, any more than mentioning the referenced facts in their appropriate informative context was POV in the first place. -无 名 氏-   20:00, 3 July 2009 (UTC)


 * Stallman essentially did say that C# is too connected to Microsoft for his liking and should be avoided : "The danger is that Microsoft is probably planning to force all free C# implementations underground some day using software patents. ... This is a serious danger, and only fools would ignore it until the day it actually happens." He's stating his own speculative opinion on the future actions of another.  He doesn't make any factual claims, he merely states his own belief that Microsoft will do something bad some day.  As the founder of the Free Software Foundation and the League for Programming Freedom and one of the early and frequent commentators on, and critics of, software patents, his opinion has encyclopedic value.  But it shouldn't be presented as anything more than the opinion of someone who has a little more basis for an opinion than most of the rest of us.  RossPatterson (talk) 20:43, 3 July 2009 (UTC)


 * I see your point. more so on the subject of the importance of his opinion than the idea that accompanying it with related facts would be inherently POV, but I agree that he is entitled to his opinion, it is relevant, and that it isn't being misrepresented as a claim of fact in this context. -无 名 氏-   00:06, 4 July 2009 (UTC)


 * Relevant to this discussion: Microsoft issues patent promise, dispels Mono legal concerns 124.214.131.55 (talk) 16:06, 7 July 2009 (UTC)

Criticisms revert
My last edits were reverted under the corresponding edit summary:
 * I/O etc.. were mentioned in explaining the CLI .vs NET, patents include some non-standard formats (XAML etc..), fixing false claim that there are definitely non-released patents (again), and undoing needlessly broken english).

The new text is now:'' provides a variety of non-standardized classes (extended I/O, GUI, web services, etc). All of the major standards and formats used in the .NET framework are included in Microsoft's Open Specification Promise which releases patent rights to the public, but there is some concern and debate as to whether there are additional aspects patented by Microsoft which are not covered, which may deter independent implementations of the full framework.''.
 * I partially reverted the sentence All of the major standards and formats used in the .NET framework are included in Microsoft's Open Specification Promise by The major standards used in the .NET framework are included in Microsoft's Open Specification Promise, because Microsoft's Open Specification Promise does not say specifically anything about including All formats included in .NET. I agree that it includes some of the formats included in .NET, but to write more is a Point of View.
 * Also my edit did not say that there was definitely  non-released patents, but I wrote there is some concern and debate as of additional aspects patented by Microsoft, which may not been covered and deter independent implementations of the full framework. De Icaza himself said in 2008 (OK that was about Moonlight):here: "There is a patent covenant for anyone that downloads [Moonlight] from Novell,; as to extending the patents to third parties -- you have to talk to Microsoft".
 * I really don't know where was the false claim about "definitely non released patents ? On the contrary, the current wording is a bit false, because (even if we don't know if they are patented or not), a lot of technologies in .NET are NOT in the covenant. Plus the Microsoft-Novell agreement is clearly about "patent-protection". Hervegirod (talk) 20:42, 5 July 2009 (UTC)


 * I agree that it includes some of the formats included in .NET, but to write more is a Point of View. - it's not a POV issue, but it is a claim of fact that isn't currently referenced. -无 名 氏-   21:17, 5 July 2009 (UTC)
 * The Open Specification promise does not mention anywhere that All of the major standards and formats used in the .NET framework are included in the OSP, it gives a list of technologies that are covered, saying that all of .NET technologies (or C#) are covered by this list is making an assumption that is not backed by the document. Hervegirod (talk) 23:24, 6 July 2009 (UTC)
 * well first, only certain portions of .NET have applicable microsoft patents, and obviously no other portions would be subject to coverage. also, in their Interoperability Principles, which is the current reference for the claim, microsoft promises to document all cases where a microsoft patent applies to third party implementations of .NET and to make those patents available under RAND terms. they also promise to document all of their APIs and to make that documentation available for anonymous browsing at no cost. they also promise not to define and use hidden/proprietary APIs. they also promise not to sue open source developers for non-profit activity under any circumstances. -无 名 氏-   00:44, 7 July 2009 (UTC)
 * This promise is NOT the covenant and has no legal value. The terms are so broad that you can even think that Microsoft promise not to sue on any High volume product used in Vista. What about the FAT32 case ? The document which has a legal value is the covenant itself, which I referred to, is referred in a lot of wikipedia articles, and is very clear about which specific protocols and formats are included in the covenant. Hervegirod (talk) 21:58, 7 July 2009 (UTC)
 * either way, you suggested that every part of .NET should be explicitly released, but there's nothing to release as far as most of it goes, because only certain components are covered by patents. also, again, there are more agreements and promises than their open specification promise. also, again, all of this has about as much to do with the C# programming language as X11 licensing has to do with the C programming language. that is, it's completely moot and unrelated. -无 名 氏-   23:21, 7 July 2009 (UTC)
 * X11 / C ? Hervegirod (talk) 01:02, 8 July 2009 (UTC)
 * criticizing X11 licensing and calling it criticism of the C programming language would be criticizing a particular system that is written in C and/or provides APIs for C programmers, but claiming it's a problem with the C language itself. many aggressively proprietary things have been written in a variety of languages, such as C, C++, Java, python, etc.. but objections to a given proprietary component have nothing to do with the language it happens to be written in. referencing unproven and generalized FUD about a proprietary class library that happens to be written in C# in the context of criticism of the ISO/Ecma C# programming language is similarly misleading and irrelevant. .NET patent issues belong in the .NET article, not in the C# programming language article. -无 名 氏-   02:11, 8 July 2009 (UTC)


 * Also my edit did not say that there was definitely  non-released patents, but I wrote there is some concern and debate as of additional aspects patented by Microsoft, which may not been covered and deter independent implementations of the full framework - it refers to "additional aspects patented by Microsoft," which implies the statement that there definitely are additional aspects patented by Microsoft. whether or not there are more applicable patents is the matter of speculation and debate, more than the question of whether additional patents with no release would hinder independent implementations, because they definitely would. this is called begging the question, like saying "the fact that pigs fly could interfere with air traffic" when you mean "if pigs were to fly, that could interfere with air traffic." -无 名 氏-   21:17, 5 July 2009 (UTC)
 * OK, we can change it to there is some concern and debate as of Microsoft patents on technologies which may not been covered by the OSP and deter independent implementations of the full framework Hervegirod (talk) 23:24, 6 July 2009 (UTC)
 * the english is broken and confusing in that version as well, and it's a somewhat ambiguous version of the previous loaded statement that implied such patents definitely exist. other than trying to phrase it as if there is no doubt that there are non-released patents, I don't see what you could be trying to do, or what your objection might be. can you elaborate? -无 名 氏-   00:44, 7 July 2009 (UTC)
 * you obviously see what you want to see here. And about broken English (I'm French), what is a loaded statement ? ;) Hervegirod (talk) 21:58, 7 July 2009 (UTC)
 * again, can you be specific about your objection to the current statement, and what you're trying to do? -无 名 氏-   23:21, 7 July 2009 (UTC)
 * OK, what is broken in my previous English sentence ? Hervegirod (talk) 01:02, 8 July 2009 (UTC)
 * there is some concern and debate as of Microsoft patents on technologies which may not been covered by the OSP and deter independent implementations of the full framework -无 名 氏-   02:11, 8 July 2009 (UTC)


 * OK that was about Moonlight - yes it was, and the fact that aspects of Silverlight (A/V decoding if nothing else) depend on non-released MS patents is not in dispute here, or at all that I know of. -无 名 氏-   21:17, 5 July 2009 (UTC)
 * This was just an example, but there are (numerous I think) other references about this (I'm not judging the validity of what they say, I'm just saying that there are such concerns by some reliable sources). For example here (but again it's only an example, googling mono patents returns 1 million hits). Hervegirod (talk) 23:24, 6 July 2009 (UTC)
 * well for starters, novell claims that mono doesn't infringe any microsoft patents, which is a commitment that could be held against them in court, and is presumably based on analysis by their legal team, which is probably the most credible authority on the subject, given that novell wrote and maintains mono. also, microsoft has a specific covenant with novell that covers mono and silverlight, though with some limitations. so the question of whether microsoft's terms as applied to mono would actually qualify as RAND is somewhat moot, but also, I think you would be very hard pressed to try to prove that microsoft's terms can't be described as RAND, given that RAND is a somewhat subjective and broad term, and is a complicated legal term. also, please keep in mind that all of this is completely moot and should be deleted or moved to an article about .NET or mono, because this is the article about the C# programming language, to which none of this applies, whatsoever. -无 名 氏-   00:44, 7 July 2009 (UTC)
 * Yes they claim that they don't infringe any patent, and we are perfectly right to cite them, but some reliable sources are not sure about it, so we should cite them too and don't try to "judge" their validity by ourselves. We should not make our own analysis here, but we should try to cite reliable sources and present these different sides. I agree that it's difficult in Microsoft-related articles because there is always a lot of "heat" in debates on Microsoft-related subjects, be it on one side or another. Hervegirod (talk) 21:58, 7 July 2009 (UTC)
 * I don't know of any specific allegation that mono infringes a microsoft patent, and novell's policy is also to work around or remove patented portions. -无 名 氏-   23:21, 7 July 2009 (UTC)
 * OK, some examples (they are numerous):  . The second one is rather funny: Microsoft and Novell have agreed to disagree on whether certain open source offerings infringe Microsoft patents and whether certain Microsoft offerings infringe Novell patents. Of course, it's impossible to know if Mono is specifically in the list for specific patents. But of course Microsoft patented some technologies used in .NET . Or here: :

''The distrust exists because Microsoft's track record on facilitating unencumbered interoperability with Linux has traditionally been poor. Microsoft has consistently said that it will not collaborate directly with Linux distributors on interoperability issues unless the distributors agree to patent agreements that are hostile to the principle of freely redistributable software. Another source of concern among Linux users is Redmond's unsubstantiated allegation that Linux infringes on its patents.'' These issues have made it difficult for some Linux enthusiasts to feel comfortable with Mono. Hervegirod (talk) 01:02, 8 July 2009 (UTC)
 * I think stallman's statements cover the generalized anti-microsoft FUD adequately, and we don't need an exhaustive list of every note on the internet where someone speculated that microsoft is evil so .NET is probably dangerous. especially given that the point is about .NET, not the C# programming language, which is the subject of this article. -无 名 氏-   02:11, 8 July 2009 (UTC)
 * My point was that you wrote: "I don't know of any specific allegation that mono infringes a microsoft patent". But some people (more than only Stallman) think that it can be the case. As for you word FUD concerning Stallman, it clearly shows that you take a side here. You should better stick to the facts. Hervegirod (talk) 22:52, 9 July 2009 (UTC)
 * stallman didn't make a specific allegation. his comments were vague, speculative, and unqualified. a specific allegation would name a microsoft patent and a part of mono that infringes it. my opinion is that stallman's patent claims are simply inaccurate, and that they easily qualify as an effort to cast Fear, Uncertainty, and Doubt without a clear and specific basis in fact. I think the basic point that microsoft intends to use .NET to control software development is accurate, but he's wrong that the strategy is based on patents. also, everyone has opinions, and everyone should stick to the facts. -无 名 氏-   23:57, 9 July 2009 (UTC)
 * Please, no WP:OR !!!! Hervegirod (talk) 00:17, 10 July 2009 (UTC)


 * On the contrary, the current wording is a bit false, because (even if we don't know if they are patented or not), a lot of technologies in .NET are NOT in the covenant. - yes, the claim could use a reference or reduction, but making an equally unreferenced loaded statement that refers to "additional aspects patented by Microsoft" as if such aspects are known to exist is not an improvement. <span style="border:thick dotted #c8cad8;background:#405060;color:#b0ada8;font:x-small light;text-decoration:none;">-无 名 氏-    21:17, 5 July 2009 (UTC)
 * see my comments above Hervegirod (talk) 23:24, 6 July 2009 (UTC)


 * Plus the Microsoft-Novell agreement is clearly about "patent-protection". - I'm not sure what that means. <span style="border:thick dotted #c8cad8;background:#405060;color:#b0ada8;font:x-small light;text-decoration:none;">-无 名 氏-   21:17, 5 July 2009 (UTC)
 * THe Microsoft-Novell agreement is presented on the Microsoft Website (for example) as a Patent Cooperation Agreement
 * but what's your point? <span style="border:thick dotted #c8cad8;background:#405060;color:#b0ada8;font:x-small light;text-decoration:none;">-无 名 氏-   00:44, 7 July 2009 (UTC)
 * Patent-protection means that Microsoft will not try to enforce their patents against Novell on what is covered by the deal (and it's the same on the other side). So Novell say they don't infringe any patent but they make a deal with Microsoft which would protect them on any legal action from Microsoft concerning patents. Remember that Microsoft issued various threats to enforce their patents against other Linux distros, and that they even did not revealed what these patents were. Hervegirod (talk) 21:58, 7 July 2009 (UTC)
 * it's both: the agreement isn't relevant because the mono project doesn't infringe patents, but the agreement would apply to mono if there were patent issues. they also have a specific agreement about silverlight, which, unlike .NET, definitely does require microsoft patents that aren't covered under their OSP or microsoft's interoperability principles. <span style="border:thick dotted #c8cad8;background:#405060;color:#b0ada8;font:x-small light;text-decoration:none;">-无 名 氏-   23:21, 7 July 2009 (UTC)
 * It's late and I don't have time to discuss more now, but: ''the agreement isn't relevant because the mono project doesn't infringe patents: NO, Novell SAY they don't infringe patents, that's all. Hervegirod (talk) 01:02, 8 July 2009 (UTC)
 * well in spite of the overwhelming credibility of novell and microsoft as experts on this subject, richard stallman's baseless speculation to the contrary is also listed. therefore, the subject has balanced coverage here, no one viewpoint is being thrust upon the reader. <span style="border:thick dotted #c8cad8;background:#405060;color:#b0ada8;font:x-small light;text-decoration:none;">-无 名 氏-   02:11, 8 July 2009 (UTC)


 * "There is a patent covenant for anyone that downloads [Moonlight] from Novell,; as to extending the patents to third parties -- you have to talk to Microsoft" - the article presents this fact accurately. <span style="border:thick dotted #c8cad8;background:#405060;color:#b0ada8;font:x-small light;text-decoration:none;">-无 名 氏-   21:20, 5 July 2009 (UTC)
 * It 's the case now, but for the record not at the time of my remark. Hervegirod (talk) 23:24, 6 July 2009 (UTC)

Architecture history
Architectural history needs dates. When did C sharp hit the market? Mathiastck 01:48, 14 June 2007 (UTC)


 * It needs more than dates, but much more content. The history of C# itself is deeply entwined with the Sun v. Microsoft Java lawsuit (1997 October to 2001 January), so much so that it can probably be said that had it not been for that lawsuit, C# would not exist, or at least not under the name known today.  It is quite remarkable, if not amazing, that none of this is mentioned, even in passing, at this article.  mdf 14:39, 15 August 2007 (UTC)


 * Maybe this will interest you? http://www.ecma-international.org/publications/files/ECMA-ST/Ecma%20PATENT/ECMA-334%20&%20335/2001ga-123%20&%202002ga-003.pdf --DotnetCarpenter (talk) 15:11, 15 October 2009 (UTC)

C Sharp version history
This article is huge, don't you think that it could be useful to create a new C Sharp version history article for 3.0 and 4.0 specific features ? Hervegirod (talk) 20:21, 26 April 2009 (UTC)


 * Yes, it's 54KB. I've seen worse; and the Java (programming language) page is 50KB, which is comparable. Looking at that Java page (and Java has been through more versions than C#, many of them before WP started) it's interesting that the language is described in more functional sections, like Applet, Servlet, JSP etc. The present plan here of listing the new features in each release (but omitting v1!) may have made more sense historically than it does now. I think it reads quite well, though, and removing all the interesting detail into one history article, or into a series like C Sharp 2.0, C Sharp 3.0 etc would make it more difficult to see what C# is really about. We certainly shouldn't let any section get much bigger and must start looking to split detailed discussion of any specific point out using  tags.  But on the whole, I think my vote FWIW would be that it's OK at the moment although we should split out what we can into small, specific articles asap. --Nigelj (talk) 21:02, 26 April 2009 (UTC)


 * I think we're getting to that point, yeah. What I'd like to see happen is that this article would contain an explanation of the entire language without regard to the version history, and then have a separate history article that tracks the history of the language's development both in terms of social stuff, i.e. quotes from Hejlsberg, as well as some examples of the new language constructs.  For example, I don't think it's really important in this article to note that nullable types were a late addition in the C# 2.0 development process.  This isn't useful information for someone who just wants to learn about C#.


 * More generally, I have a pretty major disagreement with the notion that a programming language should be explained in chronological order of its development, if we aren't going to explain the entirety of the first version first. The 2.0 section, for example, talks about how "anonymous delegates" were introduced... shouldn't the existence of "delegates" as a general construct be described first?


 * Wikipedia has articles like Perl control structures and PHP syntax and semantics which could give us some idea of how to proceed. <span style="color:#1018ff;font-family:Zapfino,Monotype Corsiva;"> Warren -talk- 22:32, 26 April 2009 (UTC)
 * I agree with both of you. Do you agree to (but consider it only as a proposal, I don't want to promote my own POV on the structure of the article) :

Maybe we will be able to "see clearer" after that change and be able to explain more in depths some features of the language without destroying the unity of this article (such as for example delegates having their specific article; it's odd that no specific article on C# delegates exist, even if it is an important feature of C# IMHO). Hervegirod (talk) 20:53, 27 April 2009 (UTC)
 * rewrite (or reword) a part the article (more a change of wording I think, but I'm maybe too optimistic about the amount of work needed to do that) such as to present the language without explaining each feature as an addition of a specific version.
 * create a new article with a link from the main article for the C# version history.

I have split off the version history into 3 seperate pages; I may however consider merging those 3 to one and link to it from here. This managed to cut down the size of this article considerably, without removing value. Jwoodger (talk) 02:24, 22 July 2009 (UTC)

Version history is WRONG
C# 3.5 - released November 2007?? There is no such thing as version 3.5! There is a version 3.5 .NET framework version, but that's another story. I'm updating the version part to the truth. --DotnetCarpenter (talk) 14:32, 15 October 2009 (UTC)

A Little Ironic?
I Noticed A Pronounceing Error. (pronounced "C Sharp") Is Now Changed To (pronounced "See Sharp"). That Is A Highly Illogical Saying Of The Phrase And Should Have Been Corrected Ages Ago. --Lyoko2198 (talk) 16:37, 6 November 2009 (UTC)

C# comments sections
Since all the detailed |code examples were moved out of this article by User:Jwoodger last summer, it seems that in what we have left, the sections 'Code comments' and 'XML documentation system' now take up about a quarter of the remaining article. Having both of these sections in what is now a much shorter article adds a preponderance of comment examples to it. Could we conceive of a C article with all this material moved over? Would it be better just to trim the material right down, but leave it here, in a form more suitable to a top-level overview article like this? It seems seriously out of place in a WP:HOWTO kind of way as it is.
 * I agree with the point about comments. I found it odd that there are 4 examples of document comments, 3 of which are not in the most commonly encountered style!  I also found the comments section to be confusing, this sentence "Multi-line documentation comments, while defined in the version 1.0 language specification, were not supported until the .NET 1.1 release" is then immediately preceded by 3 examples of multi line comments!  It gives the impression that multi line comments are no longer supported (after 1.0), when infact they are (althought I do not know the exact versions in which they are now supported).  I believe this needs clarification. --Matt 10:17 14 July 2010

The 'Boxing and unboxing' section also seems curiously detailed and now out of place here. Does anyone know what version of C# that was introduced in, so it can be moved to the relevant version-specific article: C Sharp 2.0, C Sharp 3.0 or C Sharp 4.0 along with all the other specific examples.
 * Boxing and unboxing has been in since 1.0. --Matt 10:17 14 July 2010

Maybe all the Comment stuff should be used as the basis to create C Sharp 1.0, assuming comments and XML doc comments existed from the start? --Nigelj (talk) 20:16, 14 November 2009 (UTC)

Page Title
The C Sharp note now has the symbol in its title - why not the programming language? Can only one page have the symbol? —Preceding unsigned comment added by 86.143.148.217 (talk) 12:42, 25 October 2007 (UTC)


 * The article for the musical note is at C♯ - i.e. that is a "sharp sign" in the title name. However, for C# the language we'd have to use the plain "#" symbol, since that is the official spelling for it, and "#" is still not allowed in article names for technical reasons. -- int19h 19:45, 25 October 2007 (UTC)


 * I believe you're mistaken. As I glance at the icon that Visual Studio 2008 uses for a .cs file created for C♯, it uses the musical sharp (♯) sign, not a pound (#) sign. I propose we move it to C♯ (programming language). Bob the Wikipedian (talk • contribs) 02:12, 6 June 2009 (UTC)


 * Extremely strongly I oppose the move. For the following reasons:
 * The icon is just equivalent of a visual logo, and the designers have a lot of artistic freedom to modify the visual representation. Doesn't mean that affects how the product is referred to in writing.
 * See anywhere, in text it is exclusively represented by the # (pound) sign. Even in Visual Studio as well as the ECMA C# Language spec. Ignoring the spec and reading from the icon is OR at worst. Even WP:NAME would suggest C#.
 * Most importantly, the musical sign (♯) isn't easily typable on a regular English keyboard. Which makes it very hard to link to the article directly when hand-editing wikitext. While C# would be great for writing, sharp doesn't pose too much of a problem either. Plus, the article well linked to, there is no reason to upset the properly working links. Even if a redirect were present at this article, most hand-links would be to that. Making it the most common reference. Plus redirects tend to cause problems with article statistics and/or other operations that sift through db dumps. --soumtalk 02:44, 6 June 2009 (UTC)


 * To emphasis the above comment, according to page 11 of the C# standard (ECMA-334): "The name C# is pronounced “C Sharp”. The name C# is written as the LATIN CAPITAL LETTER C (U+0043) followed by the NUMBER SIGN # (U+0023)." The ♯ sign is MUSIC SHARP SIGN (U+266F), clearly a different character, and hence inappropriate. Bendono (talk) 10:07, 6 June 2009 (UTC)


 * Correct. I cannot even type the "♯" character, despite using the macro. It simply types this: "o" alt+(dec)9839/(hex)266F. But I can type # by using alt+(dec)35/(hex)0023. Maybe I'm doing it wrong, but I doubt readers would enjoy fighting with Unicode macros to get to the article. It is also true that the official "typing" way is to use the pound ("#"). As the article clearly states, the "♯" character is really used in artistic representations, just like the icons you mention. Believe me, I think it would be lovely if the official way was the "♯" character, but we simply don't have an easy way to type it and it can cause encoding problems. Note: It DOES type in Word/Wordpad, but neither on websites, nor, ironically, Visual Studio itself! :) —Preceding unsigned comment added by 67.142.163.32 (talk) 17:28, 12 January 2010 (UTC)

C#
Can C#, I'm not talking about Microsoft Visual C#, use the system namespace with the Console.ReadLine/WriteLine methods or is it just part of the .NET Framework? --Stefán Örvarr Sigmundsson 23:47, 12 November 2007 (UTC)


 * Every platform that hosts C# programs exposes the System.Console class. In some execution environments (e.g. certain background services or graphical applications), standard input/output may be discarded, but every environment allows you to call the methods of System.Console.  Rod (A. Smith) 08:32, 13 November 2007 (UTC)
 * So you could have Macs produce console output? I think we need an article like Comparison of C# and Microsoft Visual C#. --Stefán Örvarr Sigmundsson 15:15, 14 November 2007 (UTC)


 * You certainly can do that on Mac OS X. Assuming we would have a C# implementation running on classic Mac, the limitations would be the same as for plain C programs - they too have stdin/stdout/stderr regardless of the platform, but there's no guarantee as to where the input comes from and where the output goes. -- int19h 15:54, 14 November 2007 (UTC)


 * I'm definitely up for that C# vs Visual C# article. With Mono now working, and other open-source C# implementations in the works, it could be very interesting. We'll have to pour through the ECMA Standards and documentation, so it wouldn't be easy. But I would register and contribute if an article like this will be done! :) By the way, I have a copy of Mono and a virtual machine running Linux. I've tested a bit of C# on it so far, and all of the Console members work just fine. The reason is because whatever CLR/VM environment runs the C# application and JITs it will link its calls to the equivalent native API members/functions. So if it's (contrived example) writesomething(char[] c) on operating system A, Console.WriteLine will call that. If it's writeword(LPSTR* lp) on operating system B, that is the call made. Think of the JIT as linking the IL code to appropriate native APIs as it compiles, to put it simply. —Preceding unsigned comment added by 67.142.163.32 (talk) 17:37, 12 January 2010 (UTC)

Stuff removed from Boolean data type article
The following section was removed from the article Boolean data type: begin removed text

In C#, Boolean variables are identified through the reserved word , which is an alias for the predefined struct type. It occupies four bytes. No standard conversions exist between  and other types.

Code to output a Boolean could be represented like this:

end removed text Is there a place for this text in the C#-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 00:27, 31 December 2009 (UTC)

"It occupies four bytes."
 * I'm quite sure that is incorrect. A System.Boolean occupies just 1 byte (0 or 1 are only possible *real* values, though we use keywords "true" and "false" instead). I think this misunderstanding come from this:


 * System.Runtime.InteropServices.Marshal.SizeOf(type of(Boolean))
 * It will return 4, because that is the size when marshaled with InteropServices to a native Win32 boolean. Furthermore, I believe when you perform a cast such as "object obj = (object)someBool;", you will get 4 bytes because it is boxed. But in its normal form, it is just 1 byte. Validate this yourself:


 * Console.WriteLine(sizeof(bool));
 * Output: 1


 * Maybe I wrote this for no reason though, since I don't see the claim in the article any longer. Oh well, maybe that will stop it from happening again! :) Regards,

Visual C#
The article doesn't offer anything new (as compared to this one) except that it is the MS impl of C# spec. And considering that C# and Visual C# are virtually the same, I think it would be better if that was just merged into this. What say? --soum talk 10:01, 4 January 2008 (UTC)


 * in MSVS They are the same actully .   A M M A R   12:22, 4 January 2008 (UTC)


 * ok by me. That one should be changed to redirect to here. —Preceding unsigned comment added by Leotohill (talk • contribs) 16:19, 4 January 2008 (UTC)


 * There are actually two things that goes by the name of Visual C#: the compiler and the language services which integrate C# language support into the VS IDE. The former is independent of Visual Studio while the latter is a part of VStudio (in fact, there are two flavors to the latter - one which installs the services into a different Visual Studio Shell AppId, commonly known as Visual C# Express, and another which installs into the Standard/Professional/Team System AppId). With that in mind, I guess a redirect here isn't that good an option. Best redirect to VStudio article and in the Visual C# section mention the different and link to this article. I will wait for a few more comments before performing the redirect. --soum talk 09:39, 7 January 2008 (UTC)

Is it even accurate to differentiate between C# and Visual C#? Microsoft DID create C#...later there was an ECMA standard C#. Willbennett2007 (talk) 02:57, 9 April 2010 (UTC)

Functional?
I don't see how C# can be called a functional language. Delegates are not first class objects and C# isn't used as a functional language in practice (and more than C++ or Java). Outside of some relevant expert testimony, I think "functional" should be removed from the description here and the the Comparision of Programming Languages article. I've looked through the archives and didn't see discussion about this earlier, so I'm going to add citation needed marks to the "functional" claims. The results of the discussion can remove one or both. Da Twink Daddy (talk) 23:30, 12 August 2009 (UTC)

Originally, it was almost exclusively imperative. However, that has changed greatly. "Functional" is indeed a proper descriptor, though it's not a totally functional language. C# even supports flavors of AOP (Aspect Oriented Programming) and plenty of other disciplines. Language Integrated Query is a good example of it in action. I don't see any reason to remove "functional" because it IS correct in the context of usage. 67.142.163.27 (talk) 02:29, 16 January 2010 (UTC)

C# 3.0 new language features?
There's a section entitled "C# 3.0 new language features", but the things described there are all .Net 3.0 added functionality. Nothing to do with the C# language, as far as I know. --RenniePet (talk) 14:56, 26 January 2008 (UTC)
 * No, .NET 3.0 and 3.5 used CLR 2.0 only. It adds nothing else. Everything is done at language level. --soum talk 16:15, 26 January 2008 (UTC)
 * Sorry, I don't understand. What do things like Windows Communication Foundation, Windows Presentation Foundation, Windows Workflow Foundation, and Using CardSpace in the Windows Communication Foundation have to do with the C# language? --RenniePet (talk) 16:28, 26 January 2008 (UTC)
 * Were you referring to this rev? I am sorry I missed the misinformed edit? --soum talk 06:36, 27 January 2008 (UTC)
 * Yes, that's what I was talking about. --RenniePet (talk) 06:40, 27 January 2008 (UTC)
 * I would agree that the new Visual Studio features are NOT new features of the C# programming language and do not belong in the C# discussion. It is important to distinguish between C# and Visual StudioWillbennett2007 (talk) 03:16, 30 April 2010 (UTC)

ECMA 334 4th edition corresponds to C# 2.0
Apparently, ECMA 334 4th edition corresponds to C# 2.0, not to C# 4.0 as stated. Nor does ECMA 334 3rd edition correspond to C# 3.0. In May 2010, there does not seem to be an ECMA standard for C# 3.0 and C# 4.0. But I have not been able to find an authoritative reference for this. ThorbjoernHansen (talk) 20:09, 13 May 2010 (UTC)

Language name
There's a good section on the language name at the VERY END of the article. Surely some bit of it needs to go into the LEAD, which is supposed to summarize the article? Perhaps I did have too much of that in, but it's a fairly important bit of general knowledge about C# that the name is (almost always) not written with a sharp. And perhaps the etymology/naming section needs to go a little earlier in the article, as is proper for just about any subject? S B Harris 04:54, 27 August 2009 (UTC)


 * This appears to have now been implemented. Perhaps it is time to archive some of the older resolved sections from this talk page?  It is confusing to see sections like this that have been completed, but haven't been marked as completed.  —Preceding unsigned comment added by 217.33.47.30 (talk) 09:02, 14 July 2010 (UTC)

influenced by Java claim (rehashed)
i recently noticed that i forgot to purge Java from the list of "influenced by" languages when i purged more explicit versions of the claim after an administrator weighed in with the opinion that we should simply give explicit quotes by experts, rather than stating either claim as assumed fact in our own words and adding footnotes for the opposition

however, when i recently tried to remove Java from the list, two users repeatedly restored it, repeating the old and broken arguments that:

1) there are references for experts supporting the claim that C# was influenced by Java, and for some reason it doesn't matter that there are also references for experts (including the language's creator) stating the opposite, so we should take a side

2) the fact that experts, including the creator of C#, disagree with the claim does have some weight, but that we should present the claim as assumed fact anyway and just add a note suggesting someone credible may disagree

these points were discussed, an admin weighed in, disagreed, said we shouldn't frame this issue with any kind of bias for either side, and we should simply quote experts verbatim

i strongly agree, it's valid to cite experts like Gosling who claim C# is derived from Java, and that's already the case in this article, his opinion is noted and currently without rebuttal

adding Java to the list with a note about dispute is as biased as adding "not Java" to the list with a note, it's original content in our own words with an inherent bias, which is wrong because it's not our place to analyze this and decide which side of the argument bears more weight

the fact is that the experts disagree and we therefore must remain neutral and either document both with equal standing, or omit the subject

my personal opinion is that Java has no original features, it's a collection of existing concepts, and at best you could say that the decisions about what to include in C# were similar to those made for Java, but that doesn't imply influence in the sense of language paradigms

for instance, any language using "message syntax" would be considered to be influenced by smalltalk, not objective C, even if it were obvious that the existence of objective C led to the inclusion of that feature, and even if the language in question included a suspiciously large number of features that objective C also included

but it's not for us to analyze, we must defer to experts, and they disagree with one another

no form of either side of this argument should be weaseled into a position that gives the appearance of support for that side. just quote your expert(s) in the appropriate section, leave it at that, let the reader form their own conclusion about whether Java influenced C#. that's what we were told by an administrator. 24.68.230.247 (talk) 23:50, 13 January 2010 (UTC)


 * I was surprised that Java was not in the "Influenced by" list but, before adding it myself, I thought it would be good to check for discussions. And well, I am happy I did it.  I still think Java and C# have influenced each other thorugh the years, but agree with the reasons for not including it in the list.Gorpik (talk) 14:46, 14 January 2010 (UTC)

It is absurd to suggest that C# was not in any way influenced by Java. If Java had never existed, it is unlikely that C# would ever have been created. That is not to suggest that C# is a clone of Java, or that C# does not have other influences beyond Java. However, there is definitely a strong influence! Do you really think Anders Hejlsberg and other C# designers had never heard of Java or never seen any Java source code when they sat down around 1999/2000 and created C# 1.0 - a language which then had a near-identical syntax (at least superficially) and feature set to Java - which had been on the scene for a good 4-5 years by then? Of course not!

While this controversy may be an interesting topic to mention in the article, it is, in my opinion not appropriate to remove it from the influenced-by list on the basis of one or two dubious claims. Any independent observer comparing the two languages would notice strong similarities. (unsigned comment by Renaissance77, this note added by 24.68.248.169 (talk) 23:11, 9 February 2010 (UTC))

Do you really think Anders Hejlsberg and other C# designers had never heard of Java or never seen any Java source code - of course they had, but do we have to list the probably dozens of languages that Hejlsberg has had exposure to? is that the criterion for influence?

a language which then had a near-identical syntax - you can copy/paste entire C functions or C++ classes and methods into either C# or java, and C++'s oo syntax is actually far from original too, so if you look a little deeper, you'll find that to a large extent, the strong similarity isn't a result of C# being a copy of java, so much as it is a result of both languages sticking closely to existing patterns

it is, in my opinion not appropriate to remove it from the influenced-by list on the basis of one or two dubious claims - there's nothing dubious about a language's designer having explicitly refuted a claim, if anything that is iron clad opposition, establishing that this is a matter of controversy and there is no clear basis to taking a stance. do keep in mind that wikipedia isn't a think tank intended to perform analysis among its users and draw conclusions, it's a referenced encyclopedia that documents facts, and the only circumstances under which wikipedia should assert that "Java influenced C#" is one where there is a clear indication to that effect and no reasonable cause for doubt, such as the language's author having addressed and denied the claim

Any independent observer comparing the two languages would notice strong similarities - i agree, they do have strong similarities, but any two languages based on C and C++ would bear strong similarities, even if they didn't influence one another

also, if you look at cases where java and C++ differ, such as on primitive types, operator overloading, etc.. you'll find that C# consistently looks like C++, not java, which is very telling, and suggests that the cases where java and C++ are the same are also cases where java and C# will be the same, but not due to any influence from java to C#

though, i think it may be true that certain decisions made in the design of java did lead to similar decisions being made in C#, in spite of what the language's designer says, but given that java is really quite unoriginal to begin with, it's at most a matter of what or what not to include/allow, rather than borrowing any kind of original paradigm or pattern, which java doesn't have to offer

i understand this seems to be an emotional issue for you, but please consider that this was discussed ad nauseam previously, administrators weighed in against the stance you feel the article should take, and taking an edit war approach is not constructive 24.68.248.169 (talk) 23:37, 9 February 2010 (UTC)


 * Oh, and they just happened to co-invent a copy of javadoc too? 24.68.248.169, your first edit here was 18 January 2010. What identity were you using when that (now archived) discussion brought on such nausea? You certainly got good at the local jargon re administrators, edit wars, consensus etc in the last couple of weeks. Maybe we can get an admin to run some checks as to previous IDs and/or blocks, or would you like to tell us? In the meantime I propose that we go with the current consensus, which seems to be against you at the moment. --Nigelj (talk) 23:55, 9 February 2010 (UTC)


 * i'm not posing as multiple users or otherwise violating policy, which your statement consensus, which seems to be against you at the moment would seem to affirm, and if this subject is upsetting enough for you that you feel a need to imply threats and personal attacks against me, you should excuse yourself, because that's not a productive way to promote your point of view. also, consensus isn't a question of majority, it's a question of point vs counterpoint and claim vs refute. for instance, 100 users feeling that miley cyrus should be described as the most beautiful and talented person on earth vs 4 users defending policy doesn't mean that consensus has been established by the overwhelming numeric ratio of 25:1. please see the previous discussion on this (above) as the policy on this was made quite clear, and attempts to circumvent it by a number of users don't change anything 24.68.248.169 (talk) 00:43, 10 February 2010 (UTC)


 * I agree with Nigelj. Besides, you does not seem to be very neutral here. Some examples: "it's at most a matter of what or what not to include/allow, rather than borrowing any kind of original paradigm or pattern, which java doesn't have to offer", "given that java is really quite unoriginal to begin with", "C++'s oo syntax is actually far from original too" Hervegirod (talk) 00:03, 10 February 2010 (UTC)


 * in stating that java has no original paradigms or patterns, i'm not making an insult like calling it a stupid language, i'm stating a fact to my knowledge, that every single feature in java existed previously in another language so it is factually impossible to use a "java feature" in a new language. also, saying that C#, java, and C++ are all unoriginal is specifically not biased for any of the three languages. it would appear biased if i had said that java is unoriginal but C# and C++ are both loaded with brilliant new features.


 * though, none of this really matters. as i said, and two administrators said on exactly this subject previously, our personal opinions are irrelevant, and the appropriate process here isn't to conduct our own study and to draw our own conclusion, or to take a user poll and to go with a majority, or to poll articles and to go with a majority, or to otherwise draw a conclusion, it's to document the experts, who disagree with one another, and who therefore leave us with no one true position to claim as assumed fact


 * i mean, i'm not trying to censor anything or to impose a particular view on the article, i'm in opposition to the idea that the article should explicitly state an assumed fact that disagrees with what the language's creator has said, i disagree that 3 random people commenting online through a wikipedia article know better and are entitled to refute him, making wikipedia essentially claim that he's lying or uninformed about his language 24.68.248.169 (talk) 00:43, 10 February 2010 (UTC)

''of course they had, but do we have to list the probably dozens of languages that Hejlsberg has had exposure to? is that the criterion for influence?'' Yes, it is. If any of C#'s features show significant resemblance to other languages which Hejlsberg had been exposed to then of course it would be criteria for influence. Some of these, which have less in common with C# than Java does, are already listed.

i'm in opposition to the idea that the article should explicitly state an assumed fact that disagrees with what the language's creator has said Where exactly can I find a direct and reliable quote from Hejlsberg stating that Java did not in any way influence C#? He has stated that C# is not a clone of Java, a point on which I would agree, but even Hejlsberg seems to agree that Java was one of the inspirations. For example: Deep Inside C#: An Interview with Microsoft Chief Architect Anders Hejlsberg - he states "In the design of C#, we looked at a lot of languages. We looked at C++, we looked at Java, ..." This statement from Hejlsberg directly contradicts your claim.

I would also argue that, since C# was conceived as a direct competitive response to Java, and designed to fulfill the same role, that this alone is criteria for influence, regardless of any technical comparisons. --Renaissance77 (talk) 02:27, 10 February 2010 (UTC)

the other languages have specific and identifiably unique features that are present in C#, such as object pascal properties, that's why they're there, not simply because they're popular languages and odds are that the designers of C# probably knew about them or considered them without necessarily borrowing anything. the rule you're suggesting would mean spamming every programming language article with a list of every popular language with related roots, and it would be equally applicable if java had been developed after C#, because you're not distinguishing between influence and similarity

you're essentially either proposing that java should be given preferential treatment and should be included based on a watered down standard of influence where java doesn't actually have to have contributed any specific feature you can name like operator overloading, properties, lambdas, yield, etc.., (each of which are part of the tangible reasons why the other languages are on the list) or you're proposing that we add many, many languages to the list that look similar or are competitors etc.. but that didn't actually contribute anything specific or original that you can name

the article you mentioned was a key point in the previous discussion and the "we looked at" quote was examined, and in that article, in response to the suggestion that C# is a clone of java, Hejlsberg went on to say "One of the key differences between C# and these other languages, particularly Java, is that we tried to stay much closer to C++ in our design. C# borrows most of its operators, keywords, and statements directly from C++. We have also kept a number of language features that Java dropped. Why are there no enums in Java, for example?"

so yes, they looked at java, but they certainly didn't base C# on java, his assertion is that java was considered but C# is different from java and based on C++, as i said above

as i said, in every case where java and C++ diverge, C# looks like C++, not java, and obviously given that java is very much a C++ inspired language, C# and java do have similarities in the many cases where java is similar to C++, which is consistent with what Hejlsberg said, it's C++ based not java based

also, as he said, many languages were looked at, and again, we can't include every popular language that happens to look similar, there needs to be some clear and specific evidence that C# actually borrows something from that language, such as Hejlsberg saying so instead of saying C# ignores that language and follows C++, or such as a specific feature you can name like properties

and my understanding is that no one who was involved in developing C# says the language exists to replace java, though that motive certainly seems extremely plausible given the set of events that lead up to C#

to summarize:

yes, C#, java, and a variety of other C and C++ inspired languages look very similar, but that alone is not evidence

yes, the designers of C# were aware of java and many other languages and considered them in designing C#, but that too does not imply that anything from a given language actually ended up in C#

yes, C# probably was designed to penetrate java's market, to provide similar solutions, but no one who would know for certain is coming out and admitting that, and there are no specific features you can name as evidence

i mean, the case would be a lot more compelling if you could name a feature that is unique to java, which is impossible because none exist, and you could point to it also being in C#, and also, if Hejlsberg hadn't responded to this theory by saying that many languages were considered but that C# specifically differs from java in favor of C++ designs

and again, i'm only asserting that there is reason to consider this a matter of controversy and not to take a stance, that we should follow the direction of administrators on this subject and simply quote individuals without presenting a conclusion, i'm not proposing that this article is a good vehicle to try to substantiate my personal views about java's lack of impact on programming practices 24.68.248.169 (talk) 03:36, 10 February 2010 (UTC)


 * "looking at" at Java does not necessarily mean that Java "influenced" C#. Such a conclusion is not supported in the reference. It is Renaissance77's opinion, which while valid, is not appropriate for Wikipedia. 180.11.82.194 (talk) 11:27, 10 February 2010 (UTC)

I'm always amazed how touchy the Microsoft people are about this here on WP. And how much time they have to argue just this one point against all the odds and references (except their own of course). --Nigelj (talk) 12:02, 10 February 2010 (UTC)
 * so yes, they looked at java, but they certainly didn't base C# on java, his assertion is that java was considered but C# is different from java and based on C++
 * Once again you are making the mistake of confusing "based on" with "influenced". The question is not whether C# was based on Java, but whether C# was in any way influenced by Java. Sure, C# takes a lot from C++. Maybe you can even argue its more closely related to C++ than Java. But that does not mean it was not influenced by Java. --Renaissance77 (talk) 15:38, 10 February 2010 (UTC)


 * semantics aside, the short of this is that Hejlsberg was asked about this, he said many languages were considered, and C++ patterns were followed but C# specifically diverges from java
 * we don't list the many languages that were considered, which would be an uninformatively long and irrelevant list including everything from COBOL to Ada to Smalltalk, we list the ones with specific features that made it into C#, and you have nothing of that sort to name, you're campaigning for java on some kind of "look and feel" or popularity grounds, not actual programming practice
 * in general, there are no features that java has contributed to programming, it's a conservative language that was intended to combine and reject existing paradigms to form a very safe and reliable language. it wasn't a research language with groundbreaking new features, so it really shouldn't be given credit under any circumstances for having contributed anything original to any language. i mean, i realize it's very popular and that one would expect that such a popular language must have had some real impact, but when it comes to actual paradigms and patterns in programming, java is a very safe, conventional language that didn't rock the boat whatsoever. more than anything else, java is mainly unique in its extreme purism, what it excludes
 * also, your entire point is an unoriginal repeat of the previous discussion, everything you're saying has been addressed, by two administrators, and the result, what we were told, was that experts saying they believe C# looks similar to java can be quoted, but that we can't frame this subject with our own commentary, calling it a fact in wikipedia's words that java influenced C#, or that it didn't. this was a response to exactly what you're saying, and to the specific article you cited as a reference for your personal opinion, which was a central point in the discussion


 * when others made your point before, an administrator said:


 * We are not supposed to take sides. And definitely not use quotes from anywhere for anything but quoting them (absolutely not as evidence for some conclusion).


 * the experts are already quoted, the reader already has the information we're discussing here, and campaigning to push a given conclusion on the user is just a complete waste of time for either side in any real (external) controversy, particularly if your conclusion is about what you feel certainly happened in someone's mind 24.68.248.169 (talk) 20:59, 10 February 2010 (UTC)
 * Stop dragging the admins into this. They have no special editorial or policy interpretation powers; their opinions are advisory at best. Unless you have something from the language creators that categorically says "C# takes nothing from Java", then using the opinions of significant people to help fill out <tt>influenced_by</tt> is perfectly reasonable. --<b style="color:#3773A5;">Cyber</b> cobra (talk) 21:53, 10 February 2010 (UTC)
 * Even if you have something from the language creators, or Microsoft itself, then that would be a self-published, primary source and so can only be used as such - a statement of their opinion or position. WP:SELFPUB --Nigelj (talk) 22:13, 10 February 2010 (UTC)


 * so basically, you're asserting:
 * - it doesn't matter what the designer of C# says
 * - it doesn't matter that C# doesn't actually have any features from java
 * - it doesn't matter what an administrator said the last time this happened
 * all that matters is that the designer of java claims he was plagiarized, and we should blindly present his claim as assumed truth, given the above


 * the creator of C# essentially did say that C# takes nothing from java, that C# differs from java and follows C++, in response to exactly the accusation you're citing as a reference


 * though, in asserting that, i'm doing what you're doing, which is against policy, what an administrator specifically said not to do, i'm interpreting someone's quote to draw a conclusion, rather than simply adding it to the article verbatim where appropriate


 * also, a different administrator had also weighed in on the previous incarnation of this, and said The revert war is not good though. Discussion should be kept here. I'm quite happy to use my admin bit if it continues.


 * so as important as it seems to be to some people that wikipedia clearly state that Gosling's version of events is the absolute truth, and as much as java fans are numerically superior here, please stop reverting my edit until this discussion is resolved, the world isn't going to end because the C# article doesn't say C# was influenced by Java for a couple days, and that position is erring on the side of neutrality on a matter of ongoing dispute, given that my edit didn't involve stating the opposite in any way


 * so given that A) we were directed not to draw conclusions from quotes in the first place, and B) proving which quotes are meaningful and say exactly what is probably impossible, in order to move forward hopefully toward some kind of consensus based on facts, can someone provide a specific syntactic feature that was original in java and that made its way into C#?


 * all of the other languages on the list satisfy that criterion, so that would be a good starting point for factually justifying java's presence on the list 24.68.248.169 (talk) 23:13, 10 February 2010 (UTC)
 * Addressing the bullet points: (1) that was claimed by User:Nigelj; I personally don't entirely agree (2) It's debatable whether to attribute features in languages Java is based on directly to Java (considering it came up with the particular combination and way of combining them) or to the base languages themselves (3) See my previous admin comment. Addressing your paragraph will require some extra time. --<b style="color:#3773A5;">Cyber</b> cobra (talk) 00:17, 11 February 2010 (UTC)
 * the CLI was certainly strongly influenced by the JVM, providing almost exactly the same set of capabilities and concepts in a very similar way, and the decision to adapt C++ syntax to that style of virtual machine was common to both platforms, so in that sense, the java platform did influence C#, but it's as if they drew the line there and didn't consider the details of the actual java programming language at all (though Hejlsberg says it was considered, among many languages), because basically none of the particulars of what to include or exclude, or the styles in the java programming language syntax are represented in C#
 * that is, if Hejlsberg were claiming to have adapted C++ syntax to a JVM-like system on his own, without having looked at the java programming language, there would be no clear proof that he was lying. on the other hand, if the claim was that the CLI wasn't influenced by the JVM, that would be ridiculous. i mean, the note should be about the JVM if anything, not the java programming language, but neither is really consistent with the normal concept of influence in programming language articles, which is usually fairly strictly about specific syntactic features. that was certainly the criterion for naming C# as having influenced java, the fact that there are specific unique C# features that made their way into java, features we can all examine and verify 24.68.248.169 (talk) 02:03, 11 February 2010 (UTC)

I propose a compromise. I suggest we reinstate Java to the influenced_by list, but "demote" its position in the list back behind Object Pascal, C++, and Modula-3. This would acknowledge the majority viewpoint that Java influenced C#, but would not suggest that Java is the primary influencer or a more important influence than other languages. Incidentally, this is also the way the influenced_by list on this page appeared for many years before this current edit-war started. What do you say, 24.68.248.169? --Renaissance77 (talk) 01:28, 11 February 2010 (UTC)
 * Building on this further, I was fine with the Java entry having "(disputed)" next to it. --<b style="color:#3773A5;">Cyber</b> cobra (talk) 01:45, 11 February 2010 (UTC)
 * i say this isn't a vote, the number of users for or against isn't important, and the duration of time an incorrect statement was present isn't relevant. if the statement is known to be true then it should be correctly alphabetized, and if it's in doubt, particularly if it is denied by the designer of C#, then there shouldn't be any formatting or framing in place to give any sort of weight to either side of the subject. what you're fighting for here isn't to have the facts presented to the user, it's for wikipedia to take a side and provide some appearance of support for your views by presenting them in a particular light, rather than in a neutral way where neither side is presented as being the default accepted truth, or as being endorsed by wikipedia. 24.68.248.169 (talk) 02:03, 11 February 2010 (UTC)
 * there shouldn't be any formatting or framing in place to give any sort of weight to either side of the subject [...] it's for wikipedia to take a side and provide some appearance of support for your views by presenting them in a particular light, rather than in a neutral way I'd say the complete exclusion from the list that you're lobbying for is the ultimate way to frame things so as to give extra weight to your side of the subject. To my mind, including "Java (disputed)" is the neutral framing as it explicitly acknowledges the dispute. --<b style="color:#3773A5;">Cyber</b> cobra (talk) 02:29, 11 February 2010 (UTC)
 * not necessarily, there are three possibilities: affirmation, denial, neutrality. in a broader sense, omission from wikipedia only means that something failed to meet a variety of verifiability and notability standards, it's not that something must be affirmed as true or the implication is that wikipedia says it's false. for instance, adding "not java" or a statement somewhere else to that effect would mean taking the available references and presenting a conclusion that my view is definitely correct, a different proposal from simply remaining silent on the subject because it's hard to prove whether "look and feel" is equivalent to language paradigms or what was in Hejlsberg's mind, and the usual standard of hard evidence doesn't exist for this claim. 24.68.248.169 (talk) 03:43, 11 February 2010 (UTC)

What are the sources asserting C# is not influenced by Java? &mdash; Matt Crypto 07:42, 11 February 2010 (UTC)


 * not that proving a negative is required here as no one is arguing to assert in the article that java specifically did not influence C#, but see above, the language's designer (Anders Hejlsberg) is one source. 24.68.248.169 (talk) 09:41, 11 February 2010 (UTC)
 * His comments are a WP:SELFPUB, WP:PRIMARY source. There is "reasonable doubt as to its authenticity" and, on WP, such a position "can be used only to make descriptive statements that can be verified by any educated person". Any developer can see the sad history of MS with regard to J++, and the huge similarities between Java and C#. This is noted in several secondary sources. End of. --Nigelj (talk) 12:28, 11 February 2010 (UTC)
 * I just reverted another one of your edits. it is not normal to cite every word in a sentence when the end of the sentence carries references to reliable, secondary sources. Your editing pattern in the article is starting to look disruptive, as are your arguments here on talk where there is a clear consensus against your position, based as it is on self-serving sources. --Nigelj (talk) 12:44, 11 February 2010 (UTC)
 * the same claim was made the first time around, an administrator weighed in clarifying that a primary source is someone directly contributing to wikipedia or interacting directly with a wikipedia editor, with no reliable medium such as a newspaper in between. it's a question of verifiability of the claim that someone even said what they supposedly did, not of the qualification of the supposed source. see above, the admin explained it well. they also said that Hejlsberg and others who were actually involved in the C# development process are probably ideal sources, rather than people who can only speculate based on the language.
 * also, the same administrator told us to cite specific sources without generalizing, drawing conclusions, paraphrasing, etc.. which is why i added the "who" and "fact" tags, in reference to the policy as stated by an administrator that in this situation, we should be specific
 * also, again, please try to refrain from making personal attacks and/or threats, and from edit warring. there is no dire reason why a fact tag needs to be instantly reverted when the person who added it is actively engaging in talk and is responsive
 * constructive editing in a disagreement is to state your points and the supporting evidence in talk, not to declare yourself to be right due to what you perceive to be majority support for your position (which never matters anyway) or because you just feel very certain that you're right, and to immediately override the talk process by applying your perspective to the article, which is an act of edit warring.
 * in general, discussion about other editors is not productive, especially rationales for forcing your position without resolving the discussion. 24.68.248.169 (talk) 13:40, 11 February 2010 (UTC)
 * I presume you are referring to the "C# is not a clone of Java" quote? To me, that is a statement unrelated to a claim of influence of Java on C#. A language can quite readily be said to be "influenced" by another despite not being a "clone" of it. Given that we appear to have reliable sources, I would suggest there is no difficulty here in including Java in the list. &mdash; Matt Crypto 12:55, 11 February 2010 (UTC)
 * this is a common error when sources disagree, you can have voices on both sides presenting references for the particular experts that agree with them, claiming those references prove their opinion is a fact and should be presented as such in an article, also typically taking them as a reason to try to force the issue rather than discussing it
 * Hejlsberg went into explicit detail about how C# specifically doesn't follow java patterns
 * though, it's really not for us to decide which experts probably thought or meant what, or whether the designer of C# has more weight on this than the designer of java, etc..
 * our position, and this was reiterated by an administrator on this subject previously, is to document the incontrovertible facts, what statements are made in what documents etc..
 * for the (other) influenced_by languages, there is no dispute because those languages were A) designed first, and B) contain original features that also exist in C#, so we have total verifiability there
 * that standard is absolutely not met for java, so we can't assert "feature X was in java first and then appeared in C#" as a supporting fact that no one would be able to dispute in discussions, thus leading to consensus by that route
 * also, while the case is not without merit that java may have influenced C#, or that one or more experts such as the designer of java say so, it's completely moot because there is also compelling evidence to the contrary, such as Hejlsberg's explicit denial of at least Gosling's claim of cloning which has been the main reference for inclusion of java in the list, and there's also his elaboration that C# specifically didn't follow java's patterns
 * i mean, i'm not arguing that your side of this debate is just definitely wrong, i'm arguing that this is clearly a matter of some credible controversy, far more than enough that the article shouldn't present either side as assumed truth
 * and again, that's what an administrator said on this previously, and 0 new references or points have been raised in this reactivated discussion 24.68.248.169 (talk) 13:40, 11 February 2010 (UTC)
 * Remember administrators have no special authority in deciding content, they are just regular editors with access to certain technical features. "What an administrator said" is not of any special importance for this question. (I'm also an admin, for example).
 * You say, "it's really not for us to decide which experts probably thought or meant what". Sure, but we absolutely do have the right to decide which sources say what. And from the sources, it seems clear to me that Hejlsberg was not making any statement contradicting the idea that Java influenced the design of C#, simply that it was not a "clone". Further, here's another quote from Hejlsberg, which I hope should settle the matter:
 * "what lasting legacy has C# brought to Computer development? We all stand on the shoulders of giants here and every language builds on what went before it so we owe a lot to C, C++, Java, Delphi"
 * Computerworld interview &mdash; Matt Crypto 14:12, 11 February 2010 (UTC)
 * i guess it depends on how you define influence. the normal pattern in programming language articles is a matter of language features and paradigms, and applicable to that standard, the fact that 0 features in C# are attributable to java is provable as a hard fact, a fact which i believe Hejlsberg also made clear when he said that C# does not follow java's patterns, instead favoring C++, which he said in his response to the "clone" question
 * though, as i agreed above, it's certainly undeniable that the java platform was a source of great influence in .NET and subsequently C# in many ways, but the question here is specific, it's about language syntax
 * for instance, C++ operator overloading exists in C#, among many other features, so C++ belongs on the list
 * object pascal properties are in C#, so it is on the list
 * or for instance, C# contributed autoboxing, varargs and other features to java 5, and without those concrete contributions, i have no doubt that java would not be on the influenced list
 * it would be nice if someone could name something unique to java that exists in C#, rather than interpreting quotes to justify an exception to the rule in java's case, for political reasons rather than any specific or tangible aspect of language syntax
 * or if the idea is that direct syntactic influence isn't required then this opens the door to adding many, many "giants" to the influenced_by list, from COBOL to fortran to basic, which are each giants that exerted strong influence over programming in general, without contributing any specific feature to C# that you can name
 * for example, the fact is that without COBOL, modern programming would look very different, and i'm sure that would be one of the giants that Hejlsberg was talking about, but do we need to list it? 24.68.248.169 (talk) 15:23, 11 February 2010 (UTC)
 * "It would be nice if someone could name something unique to java that exists in C#". If I wished to persuade you, I would start by suggesting your definition of "influenced" is an unnecessarily restrictive one. You appear to require the copying of a language feature in C# that was completely original to Java; that is not the only meaning of "influence". For example, the general style and flavour of a language, or its choice of features, or what features it omits, could be an influence. But this is largely besides the point, because we resolve content disputes with sources, and we have a pretty clear quote from Hejlsberg where he states that C# "builds on" and "owes a lot to C, C++, Java and Delphi", notwithstanding the other reliable sources people have provided. I believe this is entirely sufficient to support the assertion in the article that Java influenced C#.
 * "i'm sure that [COBOL] would be one of the giants that Hejlsberg was talking about, but do we need to list it?" No, because while you might be sure, Hejlsberg actually did not, in that source, mention COBOL. &mdash; Matt Crypto 16:23, 11 February 2010 (UTC)
 * regardless of what languages that particular quote mentions by name (it is vague and not necessarily an exclusive list of applicable "giants"), there are countless other sources that would validate the claim that COBOL was a massively influential language, one of the undisputed key roots of modern programming, and the reason i mention COBOL is that in programming, that's really not a matter of dispute whatsoever, but the rule of thumb for these lists is almost always about specific language features, that's why they don't contain COBOL and others, not that their influence in programming doesn't go without saying
 * that is, virtually every other language does have to "earn" its place with specific features, that is almost always the case and the rule being given for java in this case is one where you can't point the reader to where your claim exists in reality in spite of the fact that we're talking about programming languages, machines
 * i mean, i can see how, in a general sense, the dictionary definition of "influenced" is met for many, many languages but why don't we have 27 different languages on each of these lists, covering the roots of text-based expressions or the concept of a variable or an object and so on?
 * my point from the start has been that
 * A) java didn't actually contribute any features to C# language syntax, which is a provable fact because programming language syntax is a very objective and provable subject
 * B) in spite of what credit he may give java in a more general way, Hejlsberg does make this clear in his discussion of syntax specifics, where he specifically talked about the fact that C# did not follow java, and instead followed C++
 * and C) these lists are almost always limited to languages that contributed specific features, not giants of industry that had a profound impact on the political landscape and so on
 * none of those points have really been addressed, and i've never denied the opposition, that the java platform is very popular, was considered in developing C#, that Hejlsberg says so, and the designer of java certainly claims to have been plagiarized
 * but again, i ask: did anything from java syntax actually make it into C#? isn't that the criterion that is applied pretty universally in the rest of these lists? why is java getting special treatment? 24.68.248.169 (talk) 22:05, 11 February 2010 (UTC)


 * java didn't actually contribute any features to C# language syntax, which is a provable fact because programming language syntax is a very objective and provable subject: I don't know how it could be more objective / provable than anything else. And wikipedia is not a place where we have to prove anything. Hervegirod (talk) 22:26, 11 February 2010 (UTC)


 * well if i'm wrong, please correct me, what C# features came from java?
 * for instance, properties came from object pascal, operator overloading is from C++, is there anything like that to be named for java?
 * we don't necessarily have to prove anything in every case, but in this case we can, my assertion (which you seem to be saying is wrong) is that it is a fact of the syntax of the two languages that 0 features in C# came from java 24.68.248.169 (talk) 23:28, 11 February 2010 (UTC)


 * Here are just a few examples of C# language features that are similar to Java, and not C/C++:
 * * No global variables or functions. All methods and members must be declared within classes. Just like Java, and unlike C/C++.
 * * strict Boolean datatype, ie no implicit conversions between boolean types and integral types. Just like Java, unlike C/C++.
 * * (Mostly) No direct access to pointers (unsafe blocks are the exception, but these are not typical C# code). Just like Java, unlike C/C++.
 * * Language assumes automatic memory management (garbage collection), and memory can not be explicitly freed. Just like Java, unlike C/C++.
 * * "try/finally" exception handling (in addition to try/catch). Just like Java, unlike C++.
 * * Strong type safety, all type conversions must be guaranteed safe at compile time or checked at runtime. Just like Java, unlike C/C++.
 * * No multiple inheritance. Just like Java, unlike C++.
 * --Renaissance77 (talk) 12:40, 12 February 2010 (UTC)
 * * XML documentation comments just like Javadoc and unlike just about anything else at the time.
 * --Nigelj (talk) 13:30, 12 February 2010 (UTC)
 * Combining structured, imperative, object-oriented programming with garbage collection, exceptions, virtual machine execution, and a C-family syntax. It's more a "flavor" argument, but I believe it was the first to forge together such a combination and C# followed it chronologically and shares all these attributes. --<b style="color:#3773A5;">Cyber</b> cobra (talk) 13:50, 12 February 2010 (UTC)


 * Irrelivent. See WP:NOT.


 * Replying to Renaissance77's bullets above, you could also make the argument those features were taken from Ada instead of Java. Makes sense, considering Java takes a lot from Ada, but uses more familliar C/C++ syntax instead. --Gamerk2 (talk) 15:08, 11 March 2010 (UTC)

Currently the article claims this article as support for Java influencing C#. First all, it nowhere states that Java influenced C#, so the citation must be removed. Further, is not a WP:RS. Also, it is extremly one-sided without any WP:NPV. Personal opinions are irrelivent; there is either a reliable resource or not. No matter of debate such as above will change this. 211.117.140.20 (talk) —Preceding undated comment added 15:36, 13 February 2010 (UTC).
 * CNET is a perfectly reliable source, and yes, that article does claim a relation between C# and Java: "The trite answer is, 'Imitation is the sincerest form of flattery--thank you very much,'" he said this week. "But the other answer is, 'You guys (at Microsoft) still don't get it,' because it's sort of Java with reliability, productivity and security deleted." Also, WP:NPOV applies only to Wikipedia articles, not the sources we use. --<b style="color:#3773A5;">Cyber</b> cobra (talk) 22:04, 13 February 2010 (UTC)


 * Unless you can PROVE, via citation, that the Java-like features in C# were influenced by Java, and not any other language, then Java must be removed as a reference language for C#. The point being: Most of Java's features were taken from Ada (Strong typing, no global variables, etc), while using the more widly used C/C++ syntax. So if most of Java comes from other languages, then couldn't you also make the argument it was those preceeding languages, and not Java, those those same features in C# came from? I could just as easily argue, based on language features, that C# was influenced more by Ada and Smalltalk then by Java. As such, I find this entire argument moot, as many of the "Java like" features that are in debate existed long before Java came along, and no one seems to be able to provide any proof that it was Java, and not one of those preceeding languages, that influenced those same features in C#. In fact, if this argument keeps up, I may need to add Ada to the list of languages that influenced C#... --Gamerk2 (talk) 15:16, 11 March 2010 (UTC)
 * What are the citations that prove the influence of C++, Eiffel, Modula-3 and Object Pascal in C#? This is not clear in the article, since the "Influenced by" in the box is the only place where they're discussed and they don't have references. Diego (talk) 09:26, 12 March 2010 (UTC)
 * Some do. &mdash; Matt Crypto 17:16, 12 March 2010 (UTC)
 * The sources given suffice. If you can provide a reliable source for Ada, then by all means add it (but see WP:POINT). &mdash; Matt Crypto 17:16, 12 March 2010 (UTC)
 * Looking at the citations given (The CNet article in particular), the listing of Java as a parent language should be removed due to lack of verifiable evidence. I see people calling C Sharp "Java Like" in various publications, but any and all evidence of this "Java like" language can just as well be applied to Ada 83/95 (which makes sense, as Ada 83 itself influenced Java).  As such, as the specific features that cause C Sharp to be called "Java like" can not be proven to origionate from Java, you can not prove C Sharps direct linage from Java.  Of course, the reverse argument is also true; you can't prove C Sharps linage from Ada 83/95 for the same exact reason. (Edited to include signature) --Gamerk2 (talk) 14:45, 13 April 2010 (UTC)
 * Why should we take your opinion over that of reliable sources which explicitly state, for example, that "C# has been strongly influenced by Java"? &mdash; Matt Crypto 06:05, 14 April 2010 (UTC)

Describing the common features
I am not an expert. If I'm getting my terminology right, Java and C# are both managed, Object-Oriented languages with generally C derived syntax. If I got the terminology right, that is basically incontrovertible, and belongs in a wikipedia article.

The creator of C# was probably talking about the specific syntax, and basically the "uniqueness" of C#, he was saying, "in the ways C# is unique, they are a branch of C++, and not Java." What the creator of Java was saying, was that fundamentally, they're almost identical, much the way that french and english are very similar, or french and spanish, or italian.

I don't understand why wikipedia doesn't have common sections. For instance, a subsection describing managed programming languages that would appear verbatim in the description of the article describing every managed programming language. So, if you have two articles both on managed, object oriented programming languages, both articles would have the same few paragraphs describing managed languages, and the same few paragraphs describing object oriented programming languates, perhaps with one, or several sections on how the language described in the article is unique, like, "c# is like other managed languages, but purple"173.66.178.90 (talk) 16:06, 13 September 2010 (UTC)
 * We do have such an OO construct here, called templates. Particularly relevant is Help:Template. I've seen these used for tables of data but never for tracts of text, though. It would be confusing if somebody wanted part of the common text to diverge again in the future: most WP editors wouldn't know how to do this without spending time reading up. The normal way to achieve what you suggest is to have a separate, normal, parent article, e.g. Managed programming languages, and link to it from all relevant articles, like WP:SPINOUT in reverse. The hard bit would be deciding the topic of the new parent... Managed, object-oriented languages with C-derived syntax anyone? --Nigelj (talk) 16:45, 13 September 2010 (UTC)
 * This is just a thought, but say someone wants to correct a template, they goto edit, and they don't see the template, they see a link to a page explaining the purpose as a generic template, and and explanation that context edits should be made outside the template in articles, and that the template should be kept generic.164.106.249.254 (talk) 13:29, 14 September 2010 (UTC)