Talk:C Sharp (programming language)
From Wikipedia, the free encyclopedia
Archives |
[edit] Architectural history needs dates
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)
[edit] 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)
[edit] Article name
See Talk:Microsoft Visual Studio. --Stefán Örvarr Sigmundsson 03:35, 27 October 2007 (UTC)
[edit] 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)
-
[edit] Version 3.0
The latest language specification of C# has already been publish so it's not a "future product" any more, is it? Shouldn't {{future product}} be removed? --Stefán Örvarr Sigmundsson 11:56, 15 November 2007 (UTC)
- Is there any other providers rather than microsoft ? I mean Borland for example A M M A R 22:27, 16 December 2007 (UTC)
-
- No complete implemention, as far as I know. But does that really matter? Not only is the standard published but there is at least one implementation. Angus Lepper(T, C, D) 22:36, 16 December 2007 (UTC)
-
-
- I found this link on Google , Borland C Sharp. I don't think Borland stand on the same standard , as well as Borland C++ . A M M A R 20:31, 17 December 2007 (UTC)
-
[edit] What the hell?
There were pages and pages of discussion about this article, now all gone. Someone revert them back. grr (talk) 00:41, 20 November 2007 (UTC)
- Hasn't the discussion simply been put into the archives? --Stefán Örvarr Sigmundsson (talk) 18:33, 20 November 2007 (UTC)
[edit] Disclaimer distinguishing 'C#' from 'MS Visual C#'
In this edit, User:Warren deleted this text: "This article describes the C# language as defined in the ECMA and ISO standards. For a description of Microsoft's implementation, see Microsoft Visual C#", saying "per WP:SELF, we shouldn't be discussing the article's contents, in the article".
Yet we have these two pieces of text just above: "The correct title of this article is C#. The substitution or omission of a # sign is because of technical restrictions.
This article is about the programming language. For the musical note, see C♯ (music)."
Assuming that we have agreement that the removed text correctly describes the purpose of this article, was it's main failing that it wasn't in italics? Also should it have been at the very top like the others?
I know that snippets like this often get created using WP templates, but I doubt if one exists that explains the difference between ECMA/ISO standards and MS implementations of such standards. I can see nothing but benefit from typing our own where necessary. --Nigelj (talk) 19:50, 17 December 2007 (UTC)
- For what it's worth, in my opinion the text that was deleted was not in violation of WP:SELF. Read the standard. --RenniePet (talk) 21:20, 17 December 2007 (UTC)
- Just my take on it: the disclaimer seemed a bit unnecessary to me. — Matt Crypto 21:33, 17 December 2007 (UTC)
-
- OK, a bit more research and I think I understand it better now. The problem is mirror sites, who use WP articles under our splendid licence terms, but don't want their users bounced over to the real WP when they follow a link. (This doesn't happen with all normal wikilinks, so I don't know why the one in our paragraph would have been any different, but anyway...) So, it's not just being at the top, or being in italics, it's apparently about being a "non-WP-SUBST" template. Template:Selfref seems to be just the job, and seems designed for the case in hand. I tried using Template:Otheruses4, and it would have worked except that we want different text for the MS article than it's actual name (# vs sharp again), and that doesn't seem to be possible with that one. Phew. --Nigelj (talk) 22:52, 17 December 2007 (UTC)
-
-
-
- For what it's worth, I probably would have objected to the edit if there was a solid article on the "differences between the standard and the Microsoft implementation", since most people landing on the article are probably going to be looking for that specific implementation. As it stands, the MS article, or any other article, is not really helpful in that regard... which was probably Matt's point. --Onstar (talk) 08:53, 21 December 2007 (UTC)
-
-
[edit] Criticism-Performance
This paragraph is a bit of a mess. It's a series of "because of this, except this, except this..." etc. In any case it is misdirected, because the performance concerns apply to all .NET languages, not just C#. (and Java as well. ) This is covered pretty well in .NET Framework (the "Disadvantages" section). I propose to replace the existing performance criticism with something resembling the text from the framework article (or just refer to that article.) Leotohill (talk) 03:24, 29 December 2007 (UTC)
I've made the change, I think it's an improvement, but it's been tagged "citation needed". I'd appreciate help on that. I really don't want to descend back into the many details of how a vm/managed architecture is usually slower, but isn't always, with discussions of bounds checking, type safety, machine independence, JITing, pre-JITing, optimizer efficiency, virtual method tables, garbage collection, yadda yadda. I'd like a suitable citation that doesn't require a lot of detail here. Anybody got one? Leotohill (talk) 23:18, 29 December 2007 (UTC)
I see that my claim about "more resources" is not obviously true to some. Perhaps I should have expanded it to say "more resources, including memory and infrastructure". Since .NET apps (as well as Java and most scripting languages) require multi-megabyte installs and environmental configuration, they clearly require more resources than, say, a fully self-contained C program. I also suspect that, for example, a "Hello world" console app in C# would require more runtime memory than the same app in c or, probably, c++. Performance comparisons are trickier, because of the many scenarios and considerations, and the parcity of published results from carefully-controlled tests. However, at a fundamental level it seems to me that a runtime that doesn't do type checking or bounds checking (for example) would allow completion of certain tasks in fewer cpu cycles that one that does.
Can someone suggest a phrasing that would be more acceptable that the one I tried? Leotohill (talk) 18:43, 30 December 2007 (UTC)
- I thought the wording I saw was pretty good, primarily because of the "access more directly". I'd argue that, ipso facto, more direct access requires fewer resources—if its more direct, then no CPU time is needed to resolve indirection and no memory required to store references and suchlike. The question then is whether there is much by way of more direct access (which relies on the optimizations performed by the implementation at hand), and whether that gives any significant or meaningful performance boost. My informed understanding is that it varies, although it is often beaten by particularly well tuned programs written in lower-level languages. (although, equally, it can be easier to write a reasonably well-tuned program in C#—swings and roundabouts). That said, particularly given that it's cited, I think the current wording is okay. Angus Lepper(T, C, D) 00:09, 31 December 2007 (UTC)
I think that this section is not particularly "informing" on the matter: first of all I think that at least the fact that it's jitted it's worth mentioning, as this greatly increases performance compared to a VM language that doesn't use it (Java). Also "access machine resources more directly" means little, as it's not clear if you're speaking of peripherals, OS functions, memory or what. Since not even C is in fact self contained (it does need its library), and C++ has a similar number of jumps needed to access class members, it is reductive to say "it's not compiled into machine code, then it's slower"; in particular it's not objective to compare it to Java, whose performance is notoriously worse, both memory and speed wise. The "computer benchmarks game" link is also misleading in this context, as it shows the performance of the Mono implementation of C#, which is definitely slower than the official one. Overall it seems a slight anti-Microsoft bias in my opinion, or at least poorly certified. 78.13.141.225 (talk) 15:41, 14 May 2008 (UTC)
[edit] Platform criticism
Simple question: who is making that criticism? Because right now we aren't citing anyone making that criticism. If the editors who are insisting on including that criticism can't come up with a reliable source making that criticism, then it needs to come out. From WP:NOR: "...care should be taken to not "go beyond" what is expressed in the sources, nor use them in ways inconsistent with the intent of the source, such as using the information out of context". The only cited source is saying "hey we've created an implementation of c# for another platform" and does not criticise at all. AlistairMcMillan (talk) 16:08, 29 December 2007 (UTC)
- Fantastic, now we are citing Microsoft for the platform criticism. I haven't read the linked article, but somehow I doubt that Microsoft are criticising C# for being Windows-centric. AlistairMcMillan (talk) 16:10, 29 December 2007 (UTC)
- It was me who re-added the removed part. I added a reference to a Microsoft website because I misunderstood the last removal comment. However, the fact that .NET and C# are too strongly tied to MS Windows is really a critic I hear sometimes, and I can't say I don't agree with it. But I also agree with the need of sourcing, so now I linked a critic by Bjarne Stroustrup, which I think is appropriate here. One last thing: I don't know why everybody is so touchy about sourcing everything here, a lot of critics on other languages are not sourced too; I agree they also need to be sourced, but I don't thing people would accept if these critics were removed just because of that (see Criticism of the C programming language for example) Hervegirod (talk) 19:01, 29 December 2007 (UTC)
-
-
- Reliable sourcing is necessary because otherwise we don't know if people are making things up. It's better to say nothing at all than to have bad information in the article. Wikipedia:Verifiability explains this. -/- Warren 14:45, 30 December 2007 (UTC)
-
[edit] edits to Implementations
I cleaned up some incorrect statements about MS products. 1) I don't think that the C# compiler is included with the .NET framework. It comes with the SDK. 2) "Microsoft Visual C#" is the name of the compiler, but "Microsoft Visual C# Express Edition" is the name of a development environment that includes Visual Studio and the compiler. (That's marketing for you!) Leotohill (talk) 03:55, 3 January 2008 (UTC)
- I think the compilers (the CLI compiler
csc.exe
) do come with the framework.csc.exe
is in the \Windows\Microsoft.NET\Framework\v<version number>\ folder. And Visual C# is not just the compiler but associated language services that help integrate it with the VStudio IDE. The compiler comes with .net fx but the language services with vstudio. Go figure. --soum talk 04:57, 3 January 2008 (UTC)- Looks like you are correct about the compiler being in the fw. That's a little suprising. But the name of the compiler is "Microsoft (R) Visual C# 2005 Compiler" . That's what comes up when you run it at the command line, which I don't think involves visual studio at all. Leotohill (talk) 05:17, 3 January 2008 (UTC)
- The compiler (the vc# compiler) is independent of visual studio but the components that integrate c# support into the ide is a part of vstudio. Those components are also called vc# (the vc# language services). But I don't think we need to make the waters that muddy, at least not here. --soum talk 05:46, 3 January 2008 (UTC)
- Looks like you are correct about the compiler being in the fw. That's a little suprising. But the name of the compiler is "Microsoft (R) Visual C# 2005 Compiler" . That's what comes up when you run it at the command line, which I don't think involves visual studio at all. Leotohill (talk) 05:17, 3 January 2008 (UTC)
[edit] 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)
[edit] Disambiguation for C sharp
Is there any reason this article can't be moved to C sharp (programming language) or something like that? Given all the musical articles ([C♯ (music), C-sharp major, C-sharp minor), the term "C sharp" desperately needs a disambiguation page. Torc2 (talk) 00:17, 7 January 2008 (UTC)
- This was done on 9 Jan. by Torc2 without further discusion. OK, fair enough, but I think we now have a minor problem with the line that says:
-
- The correct title of this article is C#. The substitution or omission of a # sign is because of technical restrictions.
- It should say,
-
- The correct name of the programming language is C#. The substitution or omission of a # sign is because of technical restrictions.
- Or am I being too picky? (Nerd behavior?)
- I was thinking of changing that line myself, but it's generated by a template, and that template is apparently fairly deeply integrated into Wikipedia's presentation processing. I'm thinking that correct procedure would be to request creation of a new, more general template to take care of our problem. But is it worth the effort? --RenniePet (talk) 06:28, 27 January 2008 (UTC)
-
-
- User:Elliskev fixed this 28 January 2008 - thanks. --RenniePet (talk) 18:09, 8 February 2008 (UTC)
-
[edit] 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)
[edit] history section needs expanding
Some helpful links here.
- http://www.jameskovacs.com/blog/CNETHistoryLesson.aspx
- http://www.oreilly.com/catalog/csharpnut/chapter/ch01.html
- google news timeline
- http://www.pcworld.com/article/id,17425-c,software/article.html
- cnet news timeline
- [1]
- Anders Hejlsberg on Creation of C#
- [http://books.google.com/books?id=btlM21ivisMC&printsec=frontcover&dq=The+C%23+Programming+Language&sig=ni3q1jfUnSyyW96AQoWpjUHUwEo&hl=en#PPR13,M1 The C# Programming Language - By Anders Hejlsberg (preface contains a bit of history)
I'll see if I can help a bit. MahangaTalk 04:26, 27 January 2008 (UTC)
[edit] C# error code standardization ???
It could sounds difficult, does it? If Microsoft developed this language and MS have had culture of MS error coding, would Microsoft please kindly provide the C# error database??? —Preceding unsigned comment added by 64.62.138.95 (talk) 10:17, 23 February 2008 (UTC)
Currently, MS have a complier error db ranging from 0001 to 9999. What about application errors based on C#, although it is industrial specific. Could error db be generated on the application of OS written by C# ???
[edit] Standard validation issue...
Fortunately, Northernhenge has also modified the standardization section to C# specification only. Otherwise, people will questioning the validation report of the ISO standard —Preceding unsigned comment added by 64.62.138.94 (talk) 05:12, 24 February 2008 (UTC)
[edit] Appending to the validation of the standard issue...
Since ISO people are now playing game with me, I will request for the citation of the validation report on ISO/IEC 23270:2006 - Information technology -- Programming languages -- C#
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=42926
Since the standard is not free of charge, I downloaded TOC from
http://webstore.iec.ch/preview/info_isoiec23270%7Bed2.0%7Den.pdf
whether it is accurate or not, it's another matter.
In section 8.7.3 Methods which is under 8.7 Classes —Preceding unsigned comment added by 64.62.138.95 (talk) 07:14, 24 February 2008 (UTC)
Shouldn't it be validated? Wherever there is a method, it should be validated no matter what. Usually, people is unable to validate rules which can usually be request for justification, but this is not applicable to methods which is not justified but can always be revised and validated in some ways
I suggest that ISO people need to distinguish the rule- or method- based standards clearly (different coding) so that people will be reviewing the standards for either justification or validation —Preceding unsigned comment added by 64.62.138.95 (talk) 08:47, 24 February 2008 (UTC)
With regard to method based standards, the nature shows that objectivity is more than subjectivity —Preceding unsigned comment added by 65.49.2.96 (talk) 03:55, 25 February 2008 (UTC) It is more transparent (95%, I would say) -- which means the power balance among the entities are 95% of scientific and democratic power, while only 5% of administrative power
With regarding to rule based standards, there are always power broking out there and the nature shows that subjectivity is more superior than objectivity. Another part of nature is that there is always some sort degree of confidentiality associated with, regardless whether it is the process of bill passing or veto in parliament or congress, software releasing, and univerisity degree offering. The drawback of voting system is that vote without necessarily providing reason. Among the three systems, the best practice, I personally consider, is the degree offering with which at least five examingers have to provide independent reports with the reason provided for examinees to seek higer degrees