Talk:C Sharp (programming language)/Archive 3

From Wikipedia, the free encyclopedia

Archive This is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page.
Archive 2 |
Archive 3
| Archive 4


Contents

"C Pound"

  • This # is a pound sign. Every person I talk to says C Pound. Can we please change this?--God of War 18:51, 3 January 2006 (UTC)

It sounds like you'd like something in the article to change regarding the way to pronounce the name of the language, but I don't understand whether you want to change the article to agree with your acquaintences' pronunciation or to warn people like your acquaintences to say "C Sharp" instead of "C Pound". If you want the former, the place to take up your argument is with the ECMA, the owners of language specification, as they say it's pronounced "C Sharp". If you want the latter, that's already in the Language name section. The Rod 20:47, 3 January 2006 (UTC)

Change your friends? That's your job! Tell them to stop pronouncing "C++" as "C increment" while you're at it. :-) Deco 02:24, 6 January 2006 (UTC)

The pronunciation of "Sharp" comes from music, where saying "A#" would be a change from the 'A' note. http://en.wikipedia.org/wiki/Sharp might explain it a little better.Mr.hotkeys 04:47, 26 April 2006 (UTC)

# sign

Why are article titles not allowed to have the # sign?? Georgia guy 19:31, 15 January 2006 (UTC)

Because HTML URLs reserve it to separate a page name from an anchor name created by the A REF tag. Deco 20:04, 15 January 2006 (UTC)
Click on a link in a table of contents, and see how it is used in the URL.--Max Talk (add)Contribs 00:59, 7 February 2006 (UTC)

Confusing

This edit added {{confusing}} to the article without any discussion on the talk page. What is confusing about this article? The Rod 22:14, 14 February 2006 (UTC)

I agree, I don't see anything confuding in the article. Trifon Triantafillidis 11:16, 15 February 2006 (UTC)


Java as a proprietary language

I removed the reference to Java as a proprietary language in the Politics section. Given that Java has a community process which directs its progress as a language (The Java Community Process; see also http://www.jcp.org/en/home/index), it either deserves mentioning or we should choose more clearly proprietary languages as examples. No need to introduce needless controversy. :) Taft 22:36, 6 March 2006 (UTC)

Dates

Some dates, such as when the language was first released, would be nice. Dan100 (Talk) 18:08, 27 March 2006 (UTC)

Contradictions Between Articles

There's a significant and obvious contradiction between the C# vs Java article and the main C# article, specifically, about garbage-collection. The main article states, "A common misbelief is that they are garbage-collected, though they are not; they are true value-types and are stack allocated (with an exception for System.Object, and due to interning, System.String)." while this article begins, "As two modern garbage-collected runtime-compiled languages derived from C and C++, Java and C# are very similar."

I'm not familiar enough with the lanugage to fix this myself, but wanted to note it for others to take a look at.

Cross-posted to the Comparison of Java and C# talk page. —The preceding unsigned comment was added by 65.100.221.52 (talk • contribs) 2006-04-10 05:28:23 (UTC)

There is no contradiction betwen those two correct statements. Like Java, C# implements garbage-collection for objects allocated from the heap. The local value type variables to which the C# article refers need no such heap allocation since they are kept on the stack. The compiler takes advantage of the limited lifetime of those value variables and still uses garbage collection for the heap-allocated objects to which any reference variables refer (although the stack-based references themselves are freed when the method returns). The Rod (☎ Smith) 05:40, 13 April 2006 (UTC)
And like C# Java uses stack allocation for local varables. (Side note: Stack for local varables has been around forever.... cobal didn't and fortran did... of course newer versions of these language do.) Hogan 00:09, 29 April 2006 (UTC)
To be precise, the compilers of those languages use stack allocation for local variables. Obviously a compiler (for whatever language) can store variables anywhere it wants as long as the results are the same, and not all architectures have a stack as a natural part of memory (the CLR and the JVM do, obviously). Even global variables à la COBOL and Fortran could be allocated on the stack if the compiler detected the variables are live only within function calls (rather than across), but this would be difficult and error-prone and requires a closed-world assumption. 194.151.6.67 14:05, 12 May 2006 (UTC)

HTML comment near the beginning of the source says...

...per ECMA, the name is C# (C sharp,) not C box, C square (however you pronounce the character.) What does that mean?? Georgia guy 00:47, 24 April 2006 (UTC)

Issues with "Language features" section

The following text is confusing and misleading (and possibly outright wrong):

"Most of C#'s intrinsic types correspond to value-types implemented by the CLI framework. A common misbelief is that they are garbage-collected, though they are not; they are true value-types and are stack allocated (with an exception for System.Object, and due to interning, System.String)."
  • Instead of garbage-collected, I believe that the phrase should be heap-allocated. The issue is not how they are finalized (manual/reference-counted/garbage collected), but where they are allocated (stack or heap). Value-types are generally placed on the stack, but can be automatically boxed and placed on the heap (and therefore garbage collected).
  • Since (almost) all types—even value types—technically inherit from System.Object, I think the mentioning of System.Object is awkard
  • I don't see how interning causes System.String to not be stack-allocated. System.String is heap allocated because it is a reference type instead of a value type. Interning means that the compiler/runtime will try to share instances for equal strings (string x = "Foo"; string y = "Foo"; //x and y reference the same object because of interning). It has nothing to do with stack allocation or garbage collection. Perhaps what is meant is that interned strings may not ever be garbage collected, which may very well be true, but seeing as many strings are not interned, I think this may be irrelevant.
  • Also, there's a difference between primitive types and value types in the CLI, and the primitive types are not the same as C#'s intrinsic types, either. For example, System.IntPtr is a primitive type to the CLI, but there's no intrinsic type for it in C# (it's treated like any other struct, although the compiler may do some optimizations). On the other hand, System.Decimal is not a primitive in the CLI, but C# treats decimal as if it were, to the point of allowing "const decimal" where the runtime doesn't directly support it. Whether or not strings are primitive types in the CLI escapes me at the moment. I believe that they are simply classes with a lot of special-case handling by the runtime and C# compiler, and the only special IL instruction for strings is related to loading them from the assembly.

TheMuuj Talk 09:14, 20 May 2006 (UTC)

Other parts of this article need an overhaul as well. There are many incorrect statements. For example, it is both stated and implied that C#, unlike Java, is just-in-time compiled to native code. Java has had JIT-compilation since JRE 1.2. In addition, while most (if not all) implementations of C# compile to CIL and most implementations of the CLI use a just-in-time compiler, this is not always the case. Mono provides a CIL interpreter in addition to several JIT-compilers for various architectures. Saying that C# is always JIT-compiled is like saying that C/C++ is always compiled to native code. Technically, GCC compiles to RTL, which is then converted to machine assembly. There are also C/C++ interpreters. So we need to be careful when talking about C# that we're talking about the language and not the platform which most C# code runs on. —TheMuuj Talk 09:08, 21 May 2006 (UTC)
You're right about all this. I'm not sure what the editor who added that statement was thinking. There is something of a temptation to speak of things that apply only to the primary platform, especially since there's not another article on Microsoft's implementation, but we should be careful to distinguish. Deco 19:40, 29 May 2006 (UTC)

Something more should be done (what?) to the Language features section, it says

Compared to C and C++, the language ... etc.

then comes an enumeration of features, among others:

True support for pointers ...

???

Yeah! C# supports pointers. But C and C++ are reknowned for their dare-devilish gymnastically free manipulation of pointers. So there's no difference there. Some PL comparison that was there, has been lost presumably!? /

Quaþ cowardly Anonymous Mr X, AKA tomas.kindahl@comhem.se.

Claim regarding RAD-ness seems questionable.

The article states that "C# was designed to fit both demands for a concise syntax (C++) and 'unlimited' rapid development (versus the 'limited' RAD of Visual Basic)."

Several assertions are packed into this short sentence:

1) C++ syntax is concise. (it supports concise expressions, but the overall syntax is arguably non-concise). 2) There is such a thing as "unlimited" RAD. (what would that mean?) 3) Visual Basic only supports "limited" RAD. 4) C# had RAD support as a design goal. (I doubt it.)

I'd like to remove the entire sentence. Any objections?

I agree. There is nothing concise about C++ syntax (it contains a great deal of redundant elements). It's evident they were thinking in comparison to VB - BASIC has always been verbose, using complete words for most of its elements. The other stuff just doesn't make sense. Deco 19:35, 29 May 2006 (UTC)

Memory management corrections

I corrected some mistakes.

1) ref counting is NOT used to detect objects eligable to GC. Other methods are used. 2) Dispose does NOT make the referring object object eligable for GC. Dispose informs an object that it should release its unmanaged resources. That's it. Leotohill 18:35, 31 May 2006 (UTC)

Wrong tone and questionable content

When combined with Windows and Web Forms and Visual Studio, it provides a scripting language with the power and performance of C++ with the ease of use and user interface design of Visual Basic for Windows and Web ASP.NET clients. It is designed to be safer, more productive, and easier to use than C++, somewhat like dull school scissors compared to sharp scissors. It is commonly deployed only in Windows environments with the large CLR runtime installed. Most sample code on the Internet is either C# or VB.NET. There is also a managed version of C++ which some have adopted for porting C++ programs such as 3D games, but source samples are scarce. If you want to develop new applications for Windows on PCs, and you have a bachelors degree in computer science, and you don't need to port to other platforms, and accept some memory and performance penalties in exchange for increased productivity, then C# is the language of choice.

I'm going to clip this paragraph out because it doesn't seem encyclopedic. If somebody wants to add it back or revert then go ahead, but the tone needs to change if stays. —TheMuuj Talk 22:18, 31 May 2006 (UTC)

Tell me about it. This is a ridiculously biased paragraph with virtually no information content, just colorful metaphors and bold unsupported claims. Thanks for cutting it out. Deco 23:39, 31 May 2006 (UTC)
I agree. Leotohill 00:00, 1 June 2006 (UTC)
I second that. -- Szvest 12:36, 5 June 2006 (UTC) Wiki me up™


C# vs VB

Based on some discussion in the VB talk, I created a new topic for comparing C# and VB. It needs significant work, but I think it will be a valuable topic. Have at it. Gaijin42 20:02, 5 June 2006 (UTC)

Gtk#... a language?

This statement claims that Gtk# is a language:

The "sharp" suffix has been used by a number of other .NET languages that are variants of existing languages, including J# (Microsoft's implementation of Java), A# (from Ada), F# (presumably from System F, the type system used by the ML family), and Gtk# (a .NET wrapper for GTK+).

While I know that is not the intent, it is still a little awkward as it is. I've pondered how to reword it but I can't seem to come up with anything that doesn't read worse (although being more clear). Anyone else want to take a shot? --Chris (talk) 19:40, 11 June 2006 (UTC)

The Programmers joke is boring

I didn't like the section with the programmer's joke, and now its been revised to something even more convoluted and contrived. I'd like to delete it. Comments? Leotohill 03:21, 14 June 2006 (UTC)

I rewrote and shortened it. It could still use a source, though. What do you think? Deco 02:35, 14 June 2006 (UTC)
It's better. Thanks. Leotohill 03:21, 14 June 2006 (UTC)

Politics: Don't confuse C# with the .NET framework.

I've removed a couple of sentences from the section.

"The relevant patents covering the .NET implementation were released for public use. "

I'm not sure that this is true or correctly phrased. "Released for public use" is not the right language for a patent. Can anyone provide a reference to this claim about patents?

"However, the standard library provided with C#, including the extensive GUI library, is not open or completely documented, so an independant implementation which can run all programs written for Microsoft's C# would be difficult and of questionable legal basis "

C# is a specification. No library is provided with it. This statement confuses C# with the .NET framework. C#, the specification, does not require the framework. It does not even require the CLR (CLI).

We need to divide this topic into two parts, or separate topics. One is C#, the specification. This would describe the characteristics of the language free of .NET framework context. The second topic would be "Microsoft C#". This would describe Microsoft's implementation of the spec, and could freely use .NET framework elements in the examples and other text.

Leotohill 21:32, 14 June 2006 (UTC)

Also, I believe the correct name for Microsoft's implementation is "Microsoft Visual C#." Even the commandline compiler (csc.exe) refers to itself in this way. —TheMuuj Talk 21:55, 14 June 2006 (UTC)
The correct wording would be "licensed freely for public use", or something like that. Yes, parts of the article referring to Microsoft's specific implementation should be qualified as such. Deco 00:23, 15 June 2006 (UTC)

New article "Microsoft Visual C#"

Ok, I've gone and done it, that which we discussed. I've created Microsoft Visual C_Sharp. Let's work on moving all content that is specific to Visual C# to that article. LeoTohill June 17 2006

I've added a "design goals" section. It's taken verbatim from the ECMA standard. I'd usually try to avoid direct copies but a) I couldn't find any rephrasing, trimming, or expansion that would improve it and b) it's not copyrighted. Leotohill 21:29, 18 June 2006 (UTC)

In retrospect, there really is very little or nothing in this article that needs to be moved to Microsoft Visual C_Sharp. That article will probably remain quite short, just describing the distinction between this and that. But I think it's useful, and should not be merged.—The preceding unsigned comment was added by Leotohill (talkcontribs) .

Well, other than being completely incorrect, that is. "Visual C#" isn't an implementation of the ECMA spec. Visual C#, in fact, uses the compiler implementation found in the Microsoft .NET Framework — the same C# implementation used in Borland Delphi, SharpDevelop, and other IDEs. Visual C# is an IDE, not a compiler implementation. It's really something of a misnomer since the product is actually named Visual Studio, but as Microsoft themselves use the name it's OK to have it here. I scarcely know where to begin with that article. --Craig Stuntz 16:28, 5 July 2006 (UTC)
Except that when you run the C# compiler that comes with the .NET Framework, it identifies itself as "Microsoft (R) Visual C# .NET Compiler." So the .NET Framework comes with the free Visual C# compiler (even though the name "Visual" is dubious), and various Visual C#/Studio products (Express, Standard, Professional) come with IDEs for running the compiler. I do fully intend to contribute to both this and the Microsoft Visual C# articles in the future, and having to re-split the information will be a huge pain. I'd say that if anything Visual C# should be merged with Microsoft Visual Studio, but then the information would be harder to find. —TheMuuj Talk 19:23, 5 July 2006 (UTC)
MS's utter self-confusing regarding the names of ".NET"-branded products are a matter of public record. But it's clear from the MS link I give above what MS means when they talk about "Visual C#" in general. I agree that merging VC# and MSVS makes sense. The correct place to discuss MS's compiler, in my opinion, is in Microsoft .NET Framework, since the framework is the only place to get it, with or without VS. Oh, and some original research: I have it from sources I trust that a number of people involved with Visual Studio never really considered the fact that other people would make an IDE for .NET. This actually explains quite a bit, like the fact that the WinForms designer comes with the framework, but the designer for WinForms on Compact Framework does not. --Craig Stuntz 20:20, 5 July 2006 (UTC)
Craig, the url you provided has a lot of content. Can you be more specific about what part of it supports your opinion? I see only statements for the opposite, such as this at http://msdn.microsoft.com/vcsharp/learning/default.aspx
"  Before you can get started writing any code at all, you are going to need some software. Generally speaking you need two things:
   * The Visual C# compiler to turn your programs into running applications. This is available as part of the .NET Framework SDK (a free download)
   * Some form of editor or IDE (Integrated Development Environment) in which to write your code."
They seem to be clear about it: Visual C# is NOT the IDE.
Leotohill 21:49, 5 July 2006 (UTC)
Also, Craig, I think that you are incorrect on another point. The .NET framework does not include the C# compiler. The content of the framework is clearly defined in .NET Framework, and can be verified at http://msdn.microsoft.com/netframework/gettingstarted/default.aspx . The C# compiler is included in the framework Software Development Kit (SDK).
Leotohill 22:07, 5 July 2006 (UTC)
I'm almost certain that you get the C# and VB compilers when installing just the .NET Framework. I don't install the SDK on most machines, and often rely on being able to use notepad and csc.exe in a pinch. With .NET 2.0, I believe MSBuild comes with the framework, whether or not it is actually a "part" of it (it's in the Microsoft namespace instead of System, for starters). —TheMuuj Talk 22:30, 5 July 2006 (UTC)
That may be true - I'll have to test that on a clean machine. But in any case, since the MS doc is very clear about the definition of the fw, and that definition does not include the compiler(s), I don't think the fw topic should include MSVS.
Leotohill 00:12, 6 July 2006 (UTC)
I actually intended to say the SDK when I said "framework," although I believe TheMuuj is correct that it's included with both. As for links from that page supporting what I say, well, [1]. But yes the SDK is where nearly all IDEs supporting C# on Windows get the compiler, including Visual Studio. --Craig Stuntz 00:24, 6 July 2006 (UTC)

Reverted Removal of "C Pound"

I reverted the changes by 70.17.32.75 that removed a sub-section about how C# is sometimes pronounced (see C_Sharp#Language_name). I don't think the edit was vandalism, but I don't think it should be removed without discussion, either. Feel free to remove it again, but include an explanation of why it should be removed. I have heard people refer to the language by the names mentioned, so it is not a factual error. However, if the information is not encylopedic or otherwise violates policy, then by all means re-remove it. —TheMuuj Talk 05:48, 20 June 2006 (UTC)

I think it should be removed. It's trivial and distracting. (perhaps move it to a "Trivia" section?) Also, I never heard the symbol referred to as "gate". Maybe it is, but not enough to cause confusion. Leotohill 11:56, 20 June 2006 (UTC)
Trivia sections are the garbage pile of Wikipedia. Since its inception, C# was always defined (and publicized) as being pronouced "c-sharp". Any other pronounciation as always been done after-the-fact and jokingly. --Spookfish 02:47, 20 July 2006 (UTC)

System.Console is not technically an Object

The Hello world example section states:

Console is a system object, representing a command-line console where a program can input and output text.

This may be a bit pedantic of me, but technically Console is a static class, and therefore there is never an "object" of that type. This is different from Java, where System is the static class and Console() returns an object, but in .NET, Console mostly consists of helper methods that call methods on Console.In and Console.Out. It's probably helpful to think of it as an object, and the design is a simpler way to implement the singleton pattern (rather than something like Console.Instance.WriteLine). But is it correct to call it an object? I don't know how to change it without making it confusing, so I'll leave it as is. —TheMuuj Talk 21:50, 21 June 2006 (UTC)

Speaking of "pedanticity," there is no System.Console() method in Java. There are three fields of System: in, out, and err (which can be reassigned to redirect output/input/error). --Chris (talk) 23:10, 21 June 2006 (UTC)
Actually, there is (or will be) a System.console() method, but it appears to be still in draft. (See JDK 1.6 Spec). I did get the capitalization wrong, but that was out of habit. —TheMuuj Talk 23:24, 21 June 2006 (UTC)
Why are you comparing currently released .NET aspects with yet-to-be-finalized aspects of a still-under-development Java? Secondly, static class methods can be thought of as methods of a singleton (global instance) object of that class. The concept of "object" doesn't just apply to class instances... a Java "Class" instance is proof of that since there can only be one instance of it per class definition. --Spookfish 02:31, 20 July 2006 (UTC)
I'd be ok with changing it to "Console is a system class, ..." Leotohill 03:48, 22 June 2006 (UTC)

I don't think this will ever happen, but...

What if someone creates a language called C Flat?? What would the symbol be?? Georgia guy 23:26, 7 July 2006 (UTC)

Any serious computer language takes a lot of effort to develop. No serious developer(s) would go to that trouble to only then call it some joke/pun-on-words name. It would certainly result in no one taking it seriously enough to do any major development with. --Spookfish 02:52, 20 July 2006 (UTC)
I would imagine "Cb." Or "B" if you wanted to be really clever. —TheMuuj Talk 02:08, 8 July 2006 (UTC)
Ah, but there already was a B. Deco 02:36, 8 July 2006 (UTC)
So C-flat would be a .NET implementation of Bell Labs B? —TheMuuj Talk 02:55, 8 July 2006 (UTC)

Inclusion of C# Online.NET in external links - consensus?

User User talk:71.252.197.197 has spent the last five days inserting this link [2] in the C# and Microsoft .NET Framework pages. He argues that his website is more relevant than the other thousands of C# websites out there. I don't have a problem with that, but someone other than him/her must also agree that the site is encyclopedic and relevant enough to be included in the list of external links. Any takers? -- klaus

That's any unfair characterization of my argument. It's not that it's more relevant than all the other sites, simply that it is relevant.--70.104.16.183 17:24, 18 October 2006 (UTC)
I should add that the site is not even indexed by Google [3] -- klaus
Not so, Klaus. --70.104.16.183 17:20, 18 October 2006 (UTC)

The site does not appear "commercial" at first glance (no ads, etc, though it may be used to advertise certain books). To be honest, I'm on the fence about this one. It's probably something I would use once the site has more content. It seems to properly distinguish between C# and Visual C#, so it is a candidate for this article. But really I don't know. (It's worth mentioning that the site doesn't use a free license on the content -- they reserve all of the content under their copyright. This isn't relevant to inclusion, just something interesting to point out.) --Chris (talk) 19:05, 27 July 2006 (UTC)

It's a bit of a two edged sword, Chris. No links, no traffic, no content--for a wiki-based site. Besides, you must be used to vast sites. I think almost 1,300 pages in a few months is pretty good and fast growing. --70.104.16.183 17:20, 18 October 2006 (UTC)

Would someone explain to me why this link does not meet the criteria

why this link does not meet the criteria for external links:

  • C# Online.NET - free, wiki-based C# and .NET encyclopedia and forums

but these do:

--70.104.16.183 17:20, 18 October 2006 (UTC)

Personally, I'd say that neither is sufficiently relevant. I don't think we need more than one "community" link anyway, and that one should preferrably be the most prominent C# community site. Those are often wikis, true (consider CLiki), but apparently not in this case (yet, anyway). Considering how fast wikis tend to grow, it would get some leeway in my opinion if it were a true wiki, but it's neither Free (copyright to all contributions is assigned to creators of that page, and they explicitly reserve the right to deny access to information to anyone they please, and use it for any purpose, including commercial) nor ad-free (plenty of Google text ads). So, my say would still be no. And remove the other two links as well, unless someone gives a convincing reason for why they are there. -- int19h 05:23, 20 December 2006 (UTC)

Possibility of weak typing

It is obvious C# is normally strongly typed, but doesn't it allow for weak typing using the implicit type casts a programmer can specify? Shouldn't we note that in the Typing discipline part of the box at the top of the page? --85.145.148.191 02:46, 30 July 2006 (UTC)

I thought that it was generally accepted practice for implicit casts to only be used for widening conversions, which really doesn't make C# any more weakly typed. Most strongly-typed languages allow for widening conversions, because there's less potential for bugs to spring up. There is the possibility of writing a Variant-like class that's like a tagged union and can be implicitly cast to any of the primitive types, but I still don't think that would make C# weakly typed, because you'd still be explicitly specifying the casting behavior somewhere in code. So the weak type behavior would still be limited to classes that are designed that way, and not any classes/types. —TheMuuj Talk 04:45, 30 July 2006 (UTC)

Actually, it's quite possible to do (limited) tagged variants with implicit casting in C#, by defining implicit conversion operators. Consider this code:

struct Variant
{
  private object value;
  
  // int
  
  private Variant(int value)
  {
    this.value = value;
  }
  
  public static implicit operator Variant(int value)
  {
    return new Variant(value);
  }
  
  public static implicit operator int(Variant v)
  {
    return (int)v.value;
  }
  
  // string
  
  private Variant(string value)
  {
    this.value = value;
  }
  
  public static implicit operator Variant(string value)
  {
    return new Variant(value);
  }
  
  public static implicit operator string(Variant v)
  {
    return (string)v.value;
  }

  // ...
}

So it can certainly be done for a finite set of types (i.e. all primitive types). Unfortunately, since there's no way to define generic conversion operators, you cannot do something like boost::variant in C#, nor can you make a variant type which could be implicitly converted to/from any other C# type. -- int19h 07:35, 15 October 2006 (UTC)

"The public static void portion is a subject for a slightly more advanced discussion."

Then either link to one, or provide an external link! Loganberry (Talk) 03:15, 9 September 2006 (UTC)

Microsoft's implementation

We say both:

This article describes the language as defined in the ECMA and ISO standards, and avoids description of Microsoft's implementation. For a description of Microsoft's implementation, see Microsoft Visual C#

and

the Microsoft implementation of C# is by far the predominant one, and this article describes its characteristics and behavior, unless noted otherwise

This is confusing, and somewhat contradictory. — Matt Crypto 11:38, 25 September 2006 (UTC)

I tried to make the article focus more on the ECMA standard and less on MS quirks in the recent cleanup edit, so I've removed the "this article describes its [Microsoft's implementation] characteristics and behavior, unless noted otherwise" statement and "contradictory" tag for now. But I'll appreciate if someone takes another look and checks if nothing of a kind has managed to slip past. -- int19h 12:33, 28 September 2006 (UTC)
Thanks for looking at that, cheers. — Matt Crypto 19:39, 28 September 2006 (UTC)

XML Documentation?

Should this page mention the XML documentation mechanism? What is that called, anyway? I don't think that the XML documentation is specific to Visual Studio, either; it was mentioned in an appendix of the C sharp standard, as a recommendation, I think or something like that. 68.198.48.49 03:21, 14 October 2006 (UTC)

Yes, it is part of the standard, so it should probably go in here as well as the Java/C# comparison page. I'll try to come up with something. -- int19h 07:19, 15 October 2006 (UTC)
I've done it. The section is pretty minimalistic as it is. Does something like this deserve its own article? Javadoc has an article. 68.198.48.49 18:37, 23 October 2006 (UTC)
I've expanded it a bit with info about standardization. Even so, it's pretty short (which is perfectly okay - we're not describing the language in detail here), so I don't think a separate article is worth the bother. Not sure why Javadoc has one, actually - it looks like it would be better placed in the main Java article. -- int19h 07:28, 24 October 2006 (UTC)
There's also the question of whether or not linking to other documenters, even by way of an example (I'm thinking of NDoc here), might not also be a good idea. NDoc, in my humble experience, is a pretty popular way of doing code documentation and adds a few tags to the "standard" which one can find in sample code occasionally. Whether it's popular enough to be characterized as a de facto 'standard' is another matter. Does it matter if one points to examples where NDoc tags seemed which were not implemented in .NET Framework v1.1 seem to have been embraced in v2.0 & later? ross613 19:40, 25 January 2007 (UTC)

"He can be cited in interviews"

Does anyone else find this wording strange: "He can be cited in interviews and technical papers as stating flaws in most major programming languages". Is there a better way to say this? I can't think of one off the top of my head though. Timbatron 04:59, 23 October 2006 (UTC)

Factual Error

"EMCA" and "ISO" standards are unadopted standards. C# is a Microsoft product; any other variations can not be considered C#.

What, are you next going to replace the Microsoft Windows article with an article about WINE and then put 'Microsoft's implementation' in a different article? —The preceding unsigned comment was added by 137.45.72.17 (talk) 02:11, 13 February 2007 (UTC).

I don't understand what you are trying to say here, or what you mean by "unadopted standards". Leotohill 02:31, 13 February 2007 (UTC)
C# is a language standardized by ISO and ECMA. Microsoft product is called Visual C#, and it fully implements those standards. Other implementations of the standards are Rotor by Microsoft, and Mono and DotGNU by third parties. With four widely known implementations in existence, I fail to see how the standards are in any way "unadopted". -- int19h 06:26, 13 February 2007 (UTC)

C# - play on words?

The term C# is a play on words similar to the language name C++: the expression C++ in the language C means C incremented by one, and the author of C++ named the language C++ in reference to its incremental improvement over C, while the sharp in 'C#' implies that it is a 'step up' from C. A sharp symbol can be broken apart into four plus signs, so the name C# might be rendered as C++++, and the meaning being that it is C++ incremented by one.

There's no source for this. Is this original research? - furrykef (Talk at me) 19:42, 12 March 2007 (UTC)

Good for you, for removing it. All these theories about the meaning of the name are just speculation, afaikt. Here's another one: "The name is meant to suggest 'see sharp(ly)', as in having acute vision or knowledge." I just made that up, but it's as good as the others. Wait, here's another: "The name is a double pun on 'The sea is flat'" . It means that C# is the language for navigating seas that are not flat (i.e., are sharp)." Wait, here's another... oh, never mind. Leotohill 01:18, 13 March 2007 (UTC)

The fact that two themes of logic come together in this way does not have to be original research. Too quick to delete is the privaledge of the not so bright. I would be happy to ready sharp (ly) and the 'sea is flat' but doing it in discussion RoddyYoung 09:16, 31 March 2007 (UTC)

This section keeps being re-added with sources that are not reliable. All of the sources I have seen are tutorials making speculation along the "someone once said..." lines. This is not an appropriate citation. We have an email from Microsoft, the authority on this subject, stating definitively where the name of the language comes from -- this is a primary source. I will continue to remove content that claims that "#" is made up of "++++" unless there is a proper citation. --Chris (talk) 16:18, 6 May 2007 (UTC)

C# is actually a recycled project name at Microsoft. There was a language development project at Microsoft from 1988 to 1990 or so that used this name, headed by Scott Randell and Charles Simonyi, that was canceled. So any history of the name that doesn't come from a member of the original C# team is not authoritative. Charles can be reached at intentsoft.com for verification (I suggest someone write him, and if he responds, placing the response on a web site where it can be cited). Having said that, it was recognized within Microsoft at the time that the octothorp was made of four plus signs. Since the name came into use at Microsoft before the establishment of Unicode, there wasn't the distinction between the sharp symbol and the octothorp in the characters available at the time. 209.221.185.146 11:24, 27 September 2007 (UTC)

Coding style

The recent edits have, among other things, changed the coding style to Java-like "braces on same line as statement", with edit description of "consistent with the most common style". I would argue that it is by no means the most common style for C# - Microsoft's coding style is doubtlessly the most prevalent, being described in MSDN, used in all their examples and demo programs, and enforced by default in Visual Studio - and it does put braces on separate lines. So I think that's what we should do here as well. -- int19h 08:18, 23 April 2007 (UTC)

I'm not sure how you got the impression it is Microsoft's or MSDN's style to use "braces on separate lines". AFAIK nearly all of their examples, including those in the Visual Studio documentation and online (random example), use the more compact style. About the Visual Studio setting, I'm not sure about that, and can't really confirm it without a reinstall. But in the end that's just a setting. For small code samples like this though, the "brace on same line" style imho prevents the examples from cluttering the article. (The readability of the examples themselves is entirely subjective.) – Chip Zero 09:20, 23 April 2007 (UTC)
It looks like they're changing it then. In my copy of MSDN that came with VS2005, I cannot find a single example written in such style. I just tried looking for "examples (C#)" in the Index, and then going through them one by one - same thing, they all show a very consistent style, with braces as in ANSI C style, separate lines. Here is the "official" collection of Microsoft samples for C# - how about looking there for guidelines on the style? I'll do it myself as well, as soon as I have a little bit more time. -- int19h 17:18, 23 April 2007 (UTC)
Looks like they aren't as consistent as I thought then; never really noticed they also have examples in "brace on separate line" style. All the examples in the main API help section – basically any non-trivial method has one - seem to be "brace on same line". – Chip Zero 19:38, 23 April 2007 (UTC)