Diskussion:C-Sharp/Archiv

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 4 Jahren von 2003:D5:706:9F12:6408:F57C:C12:B6FE in Abschnitt Plattformunabhängiger Maschinencode?
Zur Navigation springen Zur Suche springen

Dot:GNU, Mono

hier könnten noch die freien Implementationen Dot.GNU und Mono erwähnt werden. --zeno 01:38, 20. Apr 2003 (CEST)

dot.GNU kenne ich leider bislang nicht, Mono wird aber erwähnt (Freiwillige für dot.GNU?). Außerdem gehts hier nicht um .NET sondern C# - näheres dazu im entsprechenden Artikel... TG 22:19, 17. Okt 2003 (CEST)

JIT-Compiler

die just-in-time kompilierung von il (intermediate language) via clr (Common Language Runtime) fehlt vollstaendig. da sollte noch ein c# guru ran. -- kakau 11:02, 17. Okt 2003 (CEST)

Hier fehlt noch einiges... ich habe zwar schon mal angefangen, aber wie heißt es? "Freiwillige vor!" - Übrigens habe ich zur CLR/IL etwas im NET-Artikel geschrieben - wo es hingehört. Allerdings kann auch hier noch wesentlich mehr Inhalt rein. TG 22:19, 17. Okt 2003 (CEST)

goto

Müsste goto nicht unter "Sprünge" stehen? Orpheus 13:36, 6. Mär 2004 (CET)

In C# ist goto ein bedingter Sprung. Inwieweit es aber zulässig ist, ihn ausserhalb von der bedingten Ausführung (z. B. in Schleifen) einzusetzen, kann ich auf die Schnelle auch nicht sagen. Auf jeden Fall sollte man bei dem Befehl anmerken (im Artikel), ihn möglichst sparsam oder gar nicht einzusetzen (Spaghetti-Code a la Basic). TG 14:09, 6. Mär 2004 (CET)

Kein Programmierkurs

Findet ihr nicht, dass der Artikel etwas in Richtung Programmierkurs ausartet? Ein Artikel in einer Enzyklopädie sollte doch etwas allgemeiner die Merkmale einer Programmiersprache beschreiben, und kein Exkurs in C# sein. Ich finde ein solcher Artikel sollte mehr die Geschichte, Stärken und Schwächen, Unterschiede zu anderen Programmiersprachen, Anwendungsgebiete, Philosophie die hinter der Sprache steckt, Betriebssysteme auf denen die Sprache zur Verfügung steht usw. erhalten. Eine Einführung in C# währe dann eher etwas für Wikibooks. Was denkt ihr darüber? -- Daniel 21:42, 1. Jul 2004 (CEST)

Also ein Programmierkurs ist nun etwas ganz anderes. Hier werden die Schlüsselbegriffe exemplarisch behandelt. Und das grenzt beispielsweise die Wikipedia von einem Lexikon ab, wo nur eine Definition oder Aufzählung gegeben werden kann. Die Geschichte von C# wird denke ich sehr ausführlich behandelt, da es nunmal keine lange Geschichte gibt. Der Hintergrund ist vielmehr das .NET-Framework (und das wird ja im entsprechenden Artikel ausführlich behandelt: Entstehung, Gegepol zu Java/J2EE usw.). Anwendungsgebiete und Abgrenzung zu anderen Sprachen ist m. M. heute rein subjektiv und müßig bei der VIelzahl gängiger Sprachen. Sowas gehört vielleicht in einen Artikel Programmiersprachen oder Objektorientierte Programmierung. Ansonsten müsste man eine Abgrenzung zu anderen Sprachen redundant bei jeder Sprache durchführen. Das führt eher zu einem subj. Meinungskrieg von Philosophien (Java <-> NET, VB <-> C#, usw.). Und da C# nunmal ohne .NET nicht auskommt, werden die von DIr angesprochenen Punkte bestens im Artikel zum .NET-Framework behandelt. C# als Sprache kann man nunmal nicht mit "Betriebssysteme auf denen die Sprache zur Verfügung steht" kategorisieren. Wo das .NET Framework zur Verfügung steht und somit die CLR, da läuft auch C#. Höchstens etwas zum csc und dem Einbinden von DLLs, die in anderen Sprachen geschrieben wurden, könnte man zusätzlich erwähnen. Aber da hört dann auch schon die Sprache auf und es fängt das Framework an. TG 16:58, 4. Jul 2004 (CEST)
Muss ich dir zu 100% recht geben. Die so ausführliche Beschreibung klassischster imperativer Kontrollstrukturen, wie if oder while passt in einen allgemeinen Artikel über Kontrollstrukturen oder Programmiersprachen, aber erscheint mir hier unangebracht. Stattdessen gehen die speziellen Sprachkonstrukte und Unterschiede zu zB Java schlichtweg in der Textmenge unter. Der Artikel sollte nicht wiederholen was andere grundlegenere Artikel schon beschrieben haben. Bleibt noch die Frage, wie man den Artikel konkret umorganisieren kann? --Sprezzatura 23:28, 1. Jul 2004 (CEST)
Das sehe ich auch so. Für einen Programmierkurs bietet sich eher Wikibooks an. Aber auch unabhängig davon finde ich den Artikel in der jetztigen Form grottenschlecht. Wie kann man nur auf die wirre Idee kommen, die Beschreibung einer Programmiersprache an Hand der Schlüsselwörter aufzuziehen? Mein Vorschlag zur Umorganisierung: alles nach dem Hello-World-Abschnitt raus! Das wäre schon mal ein Anfang.
Das hört sich zwar ziemlich radikal an, momentan will mir aber auch nichts besseres einfallen. Allerdings sollten dann gleich neue Zwischenüberschriften rein, die den Text von vorneherein neu gliedern, damit nicht wieder jemand auf die Idee kommt einen kleinen Programmierkurs aus dem Artikel zu machen. Einige Ideen dazu siehe mein Beitrag oben. -- Daniel 16:17, 4. Jul 2004 (CEST)
Da bin ich komplett gegen. Ein Programmierkurs ist etwas anderes. Hier wird die Referenz der Sprache anhand ihrer Schlüsselworte aufgezeigt. Sprachkonstrukte (bedingte Ausführung, Schleifen, objektorientierte Sprachelemente und im Gegensatz Datenstrukturen wie Enum usw. sind das primäre Merkmal von C-Sharp. C-Sharp vereint Merkmale aus mehreren Sprachen (klassische prozedurale sowie objektorientierte Merkmale und sogar Aspekte). Und das Bedarf einer Erklärung. TG 16:26, 4. Jul 2004 (CEST)
Eben weil C# bekannte objektorientierte und imperative Sprachkonstrukte aufweist, sollte auf diese verlinkt werden, anstatt sie hier unübersichtlich, unzureichend und redundant wieder aufzüführen. Ich schlage vor alle nicht ganz C# spezifischen Elemente, wie Schleifen oder Klassen durch Links auf passendere Artikel zu ersetzen. In diesen erfährt man dann auch noch etwas zur Historie, Verwendung etc. dieser Konstrukte. Die angesprochene "Erklärung" ist genau das, was man mit seitenlangen Listings simpler Sprachkonstrukte eben nicht erreicht. --Sprezzatura 17:51, 4. Jul 2004 (CEST)
Also so wie der Artikel jetzt dasteht kann ich mir kein Bild machen, wo beispielsweise die Unterschiede zwischen C# und C++ sind. Wenn ich das will muss ich den ganzen Artikel durchlesen, der, wenn er mal fertig gestellt ist, locker zwischen 10 bis 20 Schreibmaschinenseiten füllt.
Ich selbst kenn C# zwar nicht, kann mir aber aufgrund des Artikel auch nur schwer ein Bild der Sprach machen. Viele Element, wie etwa die Kontrollstrukturen scheinen die selben zu sein, wie etwa in C++. Auch in den meisten anderen höheren Programmiersprachen gibt es Kontrollstrukturen die sich hauptsächlich syntaktisch voneinander unterscheiden. Ein herausragendes Merkmal einer Sprache stellen sie aber wohl kaum dar. -- Daniel 17:55, 4. Jul 2004 (CEST)
@ TG: Ein Lexikon ist kein Programmierkurs, und ebensowenig ist es eine Sprachreferenz!! Und wenn du die Sprache erklären willst, dann bitte entlang ihrer Konzepte aber bitte nicht unter Bezugnahme auf bestimmte, für spezielle Zwecke vorgesehene Zeichenkombinationen, die nicht zur freien Verwendung als Variablennamen zur Verfügung stehen.
Der englische Artikel gefällt mir, obwohl wesentlich kürzer oder gerade deswegen, wesentlich besser als die aktuelle deutsche Version. Bleibt nur die Frage, wie man nun fortfahren sollte. Ein Löschen grosser Teile halte ich schlussendlich leider für unausweichlich. --Sprezz 14:30, 8. Jul 2004 (CEST)
Strukturieren, Verbessern. Aber nicht Löschen. TG 20:54, 9. Jul 2004 (CEST)
Irgendwie scheint man sich in dieser Diskussion den Mund fusslig zu reden. Anstatt den Artikel in eine andere Richtung zu lenken fügt du noch weiter Zwischenüberschriften ein. In der Diskussion wurde doch deutlich, dass der Artikel mehr die Unterschiede zu anderen Sprachen aufzeigen und nicht jedes Sprachelement beschreiben soll. Wenn der Artikel so weiter ausgebaut wird hat er am Ende mindestens 20 Schreibmaschinenseiten. Und ich frage mich, wer dass lesen will. Deine Anstrengung in aller Ehren, aber dies ist ein Beitrag für die Wikipedia und nicht von Wikibooks. Dort währen ein solcher Beitrag besser aufgehoben (und eine wirkliche Bereicherung für das Projekts). -- Daniel 21:31, 9. Jul 2004 (CEST)
Ich habe keine Inhalte gelöscht, nur leere Titel, die meiner Meinung nach ohnehin schlechter Stil sind, da sie für den Leser unübersichtlich sind, für tiefe Schachtelung sorgen und potentiell sowieso für immer leer bleiben. Den Abschnitte über Kommentare habe ich nicht gelöscht, sondern in einen eigenen allgemeinen Artikel Kommentar (Informatik) verschoben, wo er auch hin gehört und mehr Leuten etwas bringt. Es haben sich hier Autoren gegen die aktuelle Form ausgesprochen. Beteilige dich bitte konstruktiv an dieser Diskussion. Siehe auch Wikipedia:Was_Wikipedia_nicht_ist. --Sprezz 21:45, 9. Jul 2004 (CEST)

Leere Titel dienen dazu, sie zu füllen (man kann sie im Quelltext auskommentieren). Der Artikel Kommentar (Informatik) ist sicher nett gemeint, aber unnütz bis falsch. Was ist mit Kommentaren in SQL, PHP, JSP, Pascal, Basic, PL/SQL, Modula, Lisp. Kommentare sind Bestandteil einer Sprache uns gehören auch dort hin. Und eine Sprache basiert nun einmal auf Sprachelementen semantischer und syntaktischer Natur. Die Abgrenzung zu anderen Sprachen ist sicherlichfür einige interessant, aber wie will man eine Abgrenzung eingrenzen? Abgrenzung zu was? Es gibt einfach zu viele Programmiersprachen. Außerdem ist C# eine Metasprache. Man kann sicherlich (wie in der Einleitung geschehen) definieren, auf welchen Sprachen C# basiert bzw. an welchen Sprachen es sich orientiert (Java, C++, teilw. VB). Daher ist eine inhaltliche Behandlung des Sprachkonzeptes notwendig. Und unübersichtlich ist der Artikel gerade wegen Gliederung und Überschriften nicht (dafür existiert dieses Stilmittel). Wer nur etwas allgemeines wissen möchte liest die EInleitung, der andere orienitert sich am Inhaltsverzeichnis. Und zum Vorredner? Was spricht gegen 20 Seiten oder Vollständigkeit? Das ist der Vorteil der Wikipedia im Vergleich zu einem normalen Lexikon. Niemand muss den Artikel in seiner Gesamtheit lesen/ausdrucken. Aber jemand der tiefergehende Informationen sucht, der kann sich diese selektiv erschließen. Eine Pauschalisierung wie "wer soll das lesen" ist müßig? Zum Thema Wikipedia:Was_Wikipedia_nicht_ist - dieser Artikel weicht nicht davon ab. Inhaltliche Vollständigkeit ist nicht aufgeführt. TG 22:02, 9. Jul 2004 (CEST)

Die Titel im Artikel sind offensichtlicherweise nicht auskommentiert und erstrecken sich stattdessen teilweise über ganze Seiten. Ich bezweifel stark die Übersichtlichkeit, wenn hier versucht wird eine Sprachreferenz anzugeben, deren Vollständigkeit sowieso utopisch ist. Das C# eine Metasprache sein soll, ist sicherlich denkbar, da dieser Begriff nicht existiert, insofern frei belegbar ist.
Falls der Artikel zu Kommentar falsch ist, wäre eine Korrektur nett und sinnvoller, als eine Korrektur des gleichen Absatzes in nur diesem Artikel. Ein Beispiel: Das for-Konstrukt existiert in Dutzenden von Programmiersprachen. Deshalb ist das Verlinken auf einen allgemeinen Artikel sinnvoller, als bereits Geschriebenes hier wieder redundant und unzureichend darzugeben. Dieses Argument läßt sich auf große Teile des Artikels anwenden. 90% des aktuellen Artikels ließen sich ohne Änderung genauso in den Java Artikel kopieren. Beteilige dich bitte daran dieses Wissen allgemeiner zugänglich zu machen und respektiere auch die Meinungen der anderen Autoren. --Sprezz 22:31, 9. Jul 2004 (CEST)
"90% des aktuellen Artikels ließen sich ohne Änderung genauso in den Java Artikel kopieren". Wie schaut es mit Assembler, Perl, PL/SQL, Lisp, Basic in Prozent aus? Dieser Artikel beschäftigt sich mit C# und nicht mit dem Begriff Programmiersprache oder Kontrollstruktur. TG 00:15, 10. Jul 2004 (CEST)
In der Informatik unterteilt man die Sprachen anhand gemeinsamer Paradigmen in Klassen. Es ist unsinnig C# vollkommen ausserhalb dieser Klassifikation zu analysieren. --Sprezz 00:40, 10. Jul 2004 (CEST)
Hier geht es im Speziellen um C# und nicht um eine allgemeingültige Regel gleichartige Sprachelemente in versch. Sprachen darzustellen. Beispiel: for existiert in semantisch in Basic und C#. Syntaktisch sind es aber zwei Paar Schuhe. Beispiel Kommentar: Ein Kommentar in Basic beginnt mit einem Hochkomma oder dem Befehlswort REM. In einigen Skriptsprachen beginnen Kommentare mit einem Doppelkreuz, in PL/SQL mit zwei Minus-Zeichen. Ein Artikel Kommentar (Informatik) ist inhaltlich nicht erfassbar und deckt eben nicht jede Sprache ab. Bei Java, C# und C++ (und bedingt C) hast Du recht. Aber willst Du jetzt auch noch einen Artikel "Kommentar (OOP)" oder "Kommentar (Java, C#, C++)" erstellen?
Nebenbei werden Kommentare auch verstärkt als Aspekt der Programmiersprache einbezogen. Im Falle von C# als XML-Dokumentation. Außerdem verwenden Sprachen Kommentare auch zur Angabe von Aspekten (asp. Programmierung) oder sonstigen Steuerinformationen f Interpreter und/oder Compiler. Daher ist ein Kommentar eben nicht nur ein Kommentar, sondern ein integraler Bestandteil einer

spezifischen Programmiersprache. Nicht nur syntaktisch. TG 23:59, 9. Jul 2004 (CEST)

Außerdem ist Kommentar (Informatik) sehr hochgegriffen. Meinst DU Kommentar in der Programmierung, in der OOA, im OOD, Marker in UML-Notation? "Kommentar (Informatik)" ist mehr als schwammig und hochgegriffen. Der Artikel beleuchtet nur eine Art von Kommentar aus dem weiten Feld der Informatik. TG 00:03, 10. Jul 2004 (CEST)
Ich habe den Artikel entsprechend präzisiert, aber ich möchte mich auch auf keine Diskussion zu verschiedenen Themen einlassen. Zurück zum Hauptmissverständnis: Natürlich geht es darum Sprachelemente, die genereller Bestandteil bestimmter Programmierparadigmen sind, auch als solche zu benennen. C# hat sich eben nicht im luftleeren Raum entwickelt. Es macht doch keinen Sinn in einem C# Artikel zu erläutern was Objekte sind, wenn dieser Begriff selber von C# übernommen wurden und in bereits bestehenden Artikeln um ein Vielfaches ausführlicher und historisch zusammenhängender erläutert werden. Natürlich ergänzt C# diese Sprachwerkzeuge um eigene sprachliche Mittel, aber das ist doch nicht der Fall bei Kommentaren, bei Schleifen, bei Steuerworten, bei Klassen etc. --Sprezz 00:27, 10. Jul 2004 (CEST)

der artikel kann in seiner jetzigen form nicht bleiben. da wird von objektorintierung bis zu kommentaren alles 5 mal erklärt was hier eigentlich gar nichts zu tun haette Wir koennten uns zumindest darauf einigen nur die besonderheiten von c# zu erwähnen (z.b. properties) und den ganzen anderen kram zu löschen.Absolut keine sinnvollen Informationen. Schaut euch mal den englischen Artikel an. der ist i.o.Checkup 00:55, 10. Jul 2004 (CEST)checkup

hab mal mir der großen kelle ne menge zeu gelöscht. Escape codes, schleifen erklärungen, objektorientierung usw... frag mich was das alles hier soll ?! Bitte nicht blind wieder herstellen ! Es macht keinen Sinn hier do while schleifen und scope modifier usw.. zu erklären ! Checkup 01:11, 10. Jul 2004 (CEST)checkup

"hab mal mir der großen kelle ne menge zeu gelöscht" Das ist produktive Wissenserweiterung... TG 19:49, 10. Jul 2004 (CEST)

Also sorry Nephelin. Aber wenn du so weiter machst und jede Verbesserungsvorschläge ignorierst wundert dich nicht, wenn der Artikel irgendwann auf der Löschkandidatenliste steht mit der Bitte den kompletten Artikel nach Wikibooks zu verschieben. In Wikipedia:Was Wikipedia nicht ist steht ganz klar: Wikipedia ist keine Howto-Sammlung. Es ist nicht Aufgabe der Wikipedia zu erklären, wie man eine Redewendung, ein Gerät oder eine Software verwendet. -- Daniel 08:57, 10. Jul 2004 (CEST)

jetzt werden wieder schleifen konstrukte erklärt und escape sequenzen und objektorientierung.... bitte den artikel zur Löschung vorzuschlagen wenn sich das hier nicht bessert ! Checkup 09:30, 10. Jul 2004 (CEST)checkup

um allein von den kommentaren zu sprechen : die unterscheiden sich gar nicht von c / c++ / java und vielen anderen sprachen, auch wenn TG das so gerne anders darstellt. Ich werden den Artikel in die Löschkandidaten aufnehmen weil es ganz klar gegen Punkt 16 der "was wikipedia nicht ist" - Regeln verstößt. Checkup 09:39, 10. Jul 2004 (CEST)checkup

Dann führe doch mal andere Sprachen auf, außer den Dir bekannten aufgeführten objektorientierten Sprachen aus denen C# hervorgegangen ist, die C-like Kommentare benutzen. Denke dabei bitte auch an Aspektorientiertheit, Metadokumentation usw. Zwei liefere ich Dir: die Beschreibungssprache CSS sowie die Java-basierte Skriptsprache JavaScript (JScript). So, nun arbeiten wir alle Sprachen ab und vereinen sie in einem Artikel, der alle Besonderheiten abdeckt. Zum sooft zitierten Punkt 16: ein "HowTo" erklärt zusammenhängend, wie ein Programm entwickelt wird. Wo steht etwas zu Installation des .NET Frameworks, zur Kompilierung, zu den Klassen/Namespaces des dazu erforderlichen .NET API-Frameworks? Wo ist der didaktische Aufbau? Die persönliche Ansprache? Die Warnungen vor Stolpersteinen bei der Entwicklung?
Der Artikel erklärt sachlich die Sprachbestandteile; nicht mehr und nicht weniger. Zur Entwicklung eines .NET-Programms oder dem Verständnis von OOP gehört einiges mehr. Die geforderte Abgrenzung zu vergleichbaren Sprachen ist im Text enthalten. Wieder mal ein Löschantrag nach dem Motto: "Was der Teufel nicht kennt, frißt er nicht"... "Wer soll das alles Lesen? Warum überhaupt Enzyklopädien? Mir reicht doch das, was ich bereits weiß? Wenn andere nach fundiertem Wissen suchen, was interessiert mich das? Ich weiß es ja schon..." TG 19:43, 10. Jul 2004 (CEST)
Bitte unterlasse persönliche Angriffe. Der letzte Abschnitt deines Kommentar fördert hier bestimmt keine bessere Diskussionsatmosphäre. Auf dieses Niveau sollten wir uns nicht begeben. Zum Inhalt: Ich verstehe deine Aufforderung nicht. Kommentare sind nicht Bestandteil der Dokumentation, somit auch nicht mit Attributen oder XML-Dokumentation (in C#) zu verwechseln. Damit ließen sich praktisch alle Programmiersprachen auflisten. Deshalb nochmal die Kernfrage: Was spricht dagegen auf Inhalte zurückzugreifen, die in anderen Artikeln bereits ausführlich und historisch zusammenhängend erklärt werden, anstatt sie hier redundant aufzuführen? --Sprezz 20:07, 10. Jul 2004 (CEST)
Persönliche Angriffe? Ich habe nur rezitiert. Zu Deiner Frage: ausführlich und historisch zusammenhängend erklärt - mitnichten. Zu "Kommentar (Programmierung)" gehört auch ein Kommentar in Assembler, in Basic, in Delphi usw. Kommt nun beispielsweise jemand auf die Idee, im betreffenden Artikel das Beispiel in einen Delphi-Kommentar zu ändern (jeder hat nunmal eine subjektive Sicht der Dinge und eine Lieblingssprache), und wird dann jemand aus dem Artikel C# auf den Kommentar-Artikel verwiesen, bekommt er in falsches Beispiel präsentiert (im Kontext zu einer spezifischen Programmiersprache wie C#). Programmierung umfasst auch Datenabfrage- und Manipulationssprachen wie SQL oder auch für die Programmierung notwendige Konfigurationsdateien, die häufig das Doppelkreuz (#) verwenden. Auch das sind Kommentare im Kontext der Programmierung. Mit C# haben sie aber indirekt nichts zu tun. Und was ein Kommentar ist, kann man sich denken (dieser Begriff ist ja auch richtigerweise verlinkt). TG 20:26, 10. Jul 2004 (CEST)
Anscheinend werden wir nicht auf einen gemeinsamen Punkt kommen. Ob man als Schlüsselsymoble dann # oder // verwendet ist zu abstrahieren. Stattdessen auf einen uniformatischen Artikel zu verlinken, der weder Zusammenhänge zu anderen Begriffen und Kontexten der Informatik darstellt, noch überhaupt erklärt was der Begriff in Bezug auf Programmiersprachen bedeutet, bleibt mir unbegreiflich. --Sprezz 20:48, 10. Jul 2004 (CEST)
Wie ich schonmal sagte... Vereinheitlichung und Verlinkung können sinnvoll sein, aber sind es nicht immer. Kommentare sind in modernen Programmiersprachen eben nicht nur Hinweise eines Programmierers oder eine Erinnerungshilfe der Form TODO. Kommentare enthalten heute zum Teil Token zur automatischen Code-Dokumentation (XMLDoc / JavaDoc) und sie spielen auch einen wichtigen Bestandteil im Kontext der Metainformationen (beispielsweise bei der Definition von Aspekten). Übertragen auf die menschl. Sprachen, kann man sicherlich auch alle Sprachen anhand von Phonemen beschreiben und sie in einem Artikel Sprache zusammenführen. Aber auch hier gibt es bekanntlich Unterschieden, die sich eben nicht am kleinsten gemeinsamen Nenner zusammenfassen lassen. Genauso ist es bei Escape-Codes oder den Datentypen bzw. Referenztypen einer Sprache. "int" ist nunmal nicht gleich "int" und Zeichenkodierung ist auch die syntaktische Basis einer spezifischen Sprache. ´Nach manchen Argumentationen könnte man demnach alle OO-SPrachen in einem Artikel zusammenfassen, da sich ja "ähnliche" Schleifenkonstrukte bieten und irgendwie objektbasiert sind. Nach dieser Argumentation könntem na dem Löschantrag folgen und wir brechen alles auf ca. tausend Artikel um. Genauso wie man die gesamte Mathematik mit ein paar Axiomen beschreiben kann. Nur ob es dann noch verständlich ist? TG 20:59, 10. Jul 2004 (CEST)
Ich habe bereits x-mal geschrieben, deshalb bitte zum letzten Mal: XML-Docs sind keine Kommentare, ebensowenig wie C# Attribute Kommentare sind. Um die Analogie mit den natürlichen Sprachen aufzunehmen, die ich übrigens sehr passend finde: Um die Sprache Spanisch darzulegen, würden nach dem Ansatz des Artikels alle ihre Worte aufgezählt werden. Meine Forderung ist, die Sprache als romanische Sprache zu klassifizieren, auf den Artikel korrekterweise zu verlinken und dann die Informationen, die sich daraus implizit ergeben nicht ein weiteres Mal im Artikel zu beschreiben. Es existieren in der Informatik bereits etablierte Klassifikatoren für PS. An diesen vorbei zu arbeiten, kann nicht mit dem Anspruch der Wikipedia vereinbar sein. --Sprezz 21:45, 10. Jul 2004 (CEST)
Entwicklung d. Programmiersprachen
Genau diese Betrachtungsweise meine ich: "Es existieren in der Informatik bereits etablierte Klassifikatoren für PS". Die Wikipedia ist nicht ein Fachlexikon von Informatikern für Informatiker, wo etablierte Klassifikatoren vorausgesetzt werden dürfen. Im Artikel werden die unterstützen von Dir angesprochenen Schleifenkonstrukte syntaktisch vorgestellt, nicht aber ihre Anwendung an tiefgehenden bemängelten Programmierbeispielen ("Setzen sie das Schleifenkonstrukt XY ein wenn A und achten sich auf B" oder "Bitte erstellen Sie eine Schleife, die alle Primzahlen von i bis j ausgibt"). Die romanische Sprache wäre sicherlich ein gutes Beispiel, wenn spezifische Programmiersprachen linear entstanden wären. Vielmehr haben sie aber eine orthogonale Entwicklungsstruktur (zumindest viele Sprachen). Ein gutes Beispiel ist z. B. das angefügte Bild. Und nochmals zu Kommentaren. Bei den C# Attributen hast Du recht. Aber alles was in den von der jeweiligen Sprachsyntax spezifizierten Kommentarbegrenzern steht, müsste per Definition in Kommentar (Programmierung) ein Kommentar sein. Dem ist aber nicht so. TG 22:17, 10. Jul 2004 (CEST)
Bzgl. der Informatik-Aussage: Wenn ich einen Biologie-Artikel lese, dann erwarte ich, dass die Person hinreichende Fachkenntnisse aus der Biologie hat, die korrekte Terminologie verwendet und das zu erklärende Objekt innerhalb seiner wissenschaftlichen Disziplin korrekt einordnet. Genauso muss ein Artikel über PS, Kriterien der Informatik genügen. Daran führt in einer Enzyklopädie nunmal kein Weg vorbei. --Sprezz 23:47, 11. Jul 2004 (CEST)
Ein Löschen halte ich für übertrieben, da der Artikel sicherlich Bestandteile hat, die hier oder an anderer Stelle hilfreich sind. Siehe zB den Abschnitt über Kommentare, denn ich versucht habe exemplarisch in einen eigenen allgemeinen Artikel auszubauen. Leider provoziert Nephelin mit seinem Verhalten aber schlußendlich genau solche extremen Reaktionen. --Sprezz 13:15, 10. Jul 2004 (CEST)
Gebe ich dir Recht. Ich sehe es auch nur als äußerstes Mittel (das hätte ich in meinem Kommentar oben vielleicht besser darstellen sollen). Könnte ein Admin die Vermittlerrolle übernehmen? -- Daniel 13:29, 10. Jul 2004 (CEST)
Ich habe noch einen anderen Vorschlag: Lasst uns den Artikel aufteilen, und zwar in einen Kernartikel und einen "Programmierkurs" (bzw. "Referenz"; ich möchte mich an dieser Stelle auf eine Klassifizierung nicht festlegen, aber es sollte klar sein, was gemeint ist).
Ob der Programmierkurs (bzw. die Referenz) nach Wikibooks ausgelagert werden sollte, ist eine weitere Frage, die aber auch noch später entschieden werden kann. Wichtig ist meiner Ansicht nach, erst einmal die Qualität des Kernartikels herzustellen, und zwar durch die erwähnte Auslagerung. Zäh-Scharp 14:15, 10. Jul 2004 (CEST)

Verschiebung der Kommentare

Kürzlich hat ja jemand den Bereich "Kommentare" in den Artikel Kommentar (Programmierung) verschoben. Meiner Meinung nach war das genau der richtige Schritt. Die Qualität des entstandenen Artikels war leider daruch eingeschränkt, dass er nicht allgemein genug war, sondern zu speziell auf C-Sharp konzentriert. Ich habe den Artikel nun komplett neu geschrieben. Sollte es jetzt noch etwas wichtiges geben, dass auf C-Sharp-Kommentare zutrifft, aber in meinem Artikel nicht steht, so sollte es direkt im Artikel C-Sharp ergänzt werden. Eine genauere Erläuterung meiner Aktion findet sich in Diskussion:Kommentar (Programmierung). Wäre nett, wenn jeder es liest, der an diesem Streit beteiligt ist.
Mein Vorschlag wäre also nun:
1. Alle zu allgemeinen Elemente aus C-Sharp in allgemeine Themen verschieben (for, goto, etc.) bzw. vorhandene Artikel verlinken.
2. Die allgemeinen Artikel (also wiederz.B. for,goto...) auf allgemeingültigkeit prüfen, gegebenenfalls verbessern, oder, falls keine Zeit ist, dort wenigstens anmerken, dass sie verbessert werden müssen.
3. Dann prüfen, ob es über C-Sharp noch etwas zu sagen ist, was nicht allgemein für alle Sprachen galt, und bei C-Sharp einfügen.
Kann jeder mit dieser Lösung leben?
Brian 80.185.140.69 21:33, 11. Jul 2004 (CEST)

nein. schleifen müssen raus. allgemeine erläuterungen zur objektorientierung müssen raus. enums, structs müssen raus. sprungbefehle müssen raus. escape sequenzen müssen raus. erstens alles nicht c# spezifisch, zweitens programmierkurs. Checkup 22:20, 11. Jul 2004 (CEST)checkup

du wiederholst dich. man sollte nicht zuviel mit der kelle machen. definiere a) programmierkurs b) struct nicht gleich struct, enum nicht gleich enum, escape-seq. nicht gleich escape seq. fundiertes wissen gibts nunmal nicht mit der kelle TG 22:25, 11. Jul 2004 (CEST)
Zum Beitrag von Checkup: ich glaube da liegt ein missverständnis vor. Ich hatte nicht vor, die von dir genannten Themen direkt im C-Sharp-Artikel zu belassen. Vielmehr geht es darum, sie zwar dort "raus" zu bekommen, aber dafür als eigenständige Themen ins Wiki "rein" zu bekommen. (Schritt 1) Nur wenn dann noch etwas C-Sharp-Spezifisches bliebe, dessen Erwähnung auch zur allgemeinen Charakterisierung von C-Sharp dient, dürfte diese Besonderheit wieder in den C-Sharp-Artikel "rein". (Schritt 3). Oder meinst du noch etwas anderes?

Zu Nephelin: Richtig: Struct nicht gleich struct, usw. Aber du wirst doch sicherlich zustimmen: Struct ungefähr gleich Struct. Alles das, was struct's nunmal gemeinsam haben, kann man in einem eigenen Artikel struct fassen, und nur das, was bei c-sharp anders ist als bei allgemeinen structs, gehört in den c-sharp artikel, und auch nur, wenn dieser Unterschied deutlich größer als 0 ist. Brian 80.185.140.69 22:41, 11. Jul 2004 (CEST)

Ungefähr gleich Struct? Das ist eine wirkliche Präzisierung. Machen wir es doch auch bei Kriegen so. Wir beschreiben alles, was einen Krieg zu einem Krieg macht, in einem Artikel und geben unter Erster Weltkrieg, Zweiter Weltkrieg, Golfkrieg, Vietnamkrieg nur noch die Differenzen an. Und der Leser darf denn die Information suchen und zusammensetzen. Und vielleicht bekommt er am Ende "ungefähr" zu einem Ergebnis. Der Artikel ist kein Programmierkurs, er ist nur vollständig. Wie auch Artikel in anderen Themenbereichen. Für den Neuling reicht es die Einleitung oder das Konzept zu lesen, wer mehr wissen will, liest halt die für ihn interessanten Abschnitte. Der Vorteil: Die Informationen sind da und der Leser hat die Möglichkeit sie zu lesen. Zum Thema Programmierkurs bin ich weiter oben und bei den Löschkandidaten bereits eingegangen. TG 22:55, 11. Jul 2004 (CEST)
Du willst also mit anaologen Beispielen arbeiten. Gut, dann aber bitte richtig: Du setzt "struct" analog zu "Krieg." Würde man das Beispiel "C-Sharp und Struct" auf das Beispiel "XYZ und Krieg" korrekt umsetzen, so müsste man erstmal ein XYZ definieren. Sagen wir mal folgendes: XYZ seien jetzt mal die Deutschen, denn C-Sharp kann Sturturen haben, wie z.B. die deutschen Kriege haben können. Die Deutschen sind nicht die einzigen, die Krige haben, so wie C-Sharp nicht das einzige ist, das structs hat. Es ist ein merkmal, das sie haben können aber nicht ständig haben müssen (Deutsche führen nicht immer Krieg und C-Sharp-Programme verwenden nicht immer explizit gekennzeichnete Stucts). Ich hoffe dass soweit alles klar ist und dass wir nun mit dieser Analogie areiten können. Also los:
Will man nun klären "gehört eine Allgemeine Erklärung von 'struct' in einen 'C-Sharp'-Artikel?" so kann man sich analog fragen: "Gehört eine Allgemeine Erklärung von 'Krieg' in einen 'Deutsche'-Artikel?". Stell dir mal vor, du liest einen Artikel über Deutsche, und liest dann:
"Kriege sind bereits als Konfliktmittel aus Nationen wie Türkei oder England bekannt. Sie dienen primär zur Erringung von Macht. So kann zum Beispiel eine Gegend, bestehend aus Städten, Waren und Bewohnern, durch einen Krieg an sich nehmen, der sich sich aus Waffeneinsatz großer oder sehr großer Art zusammensetzt. (Foto aus dem 2. Weltkrieg hier vorstellen) Die Deutschen haben den zweiten Weltkrieg wegen Hitler begonnen, anders als zum Beispiel..."
Dann würdest du sicher auch meinen, dass dieser allgemeine Kram hier einfach nichts zu suchen hat. Stell dir weiterhin vor, einen Artikel namens Krieg würde es gar nicht geben, weil irgendwer mal meinte, Kriege seien zu allegemein, um eine allgemeine Beschreibung anzufertigen. Aber stell dir vor: Zur Zeit gibt es wirklich noch keinen Artikel der Strukturen in Programmen allgemein erklärt. Der oben genannte Abschnitt aus dem Text über Deutsche müsste also lauten:
"Der zweite Weltkrieg, den die Deutschen geführt haben, zeichnete sich besonders dadurch aus, dass sie unter der Leitung von Hitler..."
Gleichzeitig müsste diese Passage
"Strukturen sind bereits als Sprachmittel aus Sprachen wie C++ oder Delphi (Records) bekannt. Sie dienen primär zur Erstellung eigener komplexer Datenstrukturen oder eigener Datentypen. So kann zum Beispiel eine Raumkoordinate, bestehend aus einer X-, einer Y- und einer Z-Position, durch eine Datenstruktur Koordinate abgebildet werden, die sich aus drei Gleitkommazahlen einfacher oder doppelter Genauigkeit zusammensetzt..."
so lauten:
"Die Implementierung von Stucturen mittels des Schlüsselwortes struct unterscheidet sich von der aus anderen Sprachen bekannten dadurch, dass..."
MFG Brian, 80.185.140.69 23:37, 11. Jul 2004 (CEST)
Wenn man die bisherige Diskussion betrachtet brauche ich wohl nicht extra darauf hinweisen, daß ich schon seit Tagen auf deine vorgeschlagene Vorgehensweise hinarbeite. Übrigens ist der Artikel keineswegs vollständig, da er Wissen verschüttet. Es werden eigene Begriffserklärungen gebildet, anstatt auf bereits erstellte Artikel zurückzugreifen, die den jeweiligen Aspekt ausführlicher und zusammenhängender darlegen können (oder potentiell könnten). Brian.. Es wäre von Vorteil, wenn du dir einen Account zulegen könntest. --Sprezz 23:57, 11. Jul 2004 (CEST)
Nehmen wir uns einfach mal den Begriff der Struktur aus der Mathematik vor, als Basis der Informatik, und definieren Struktur abstrakt: "Eine Struktur besteht aus einem Universum sowie aus Relationen und Funktionen auf ihm."
Trivialer formuliert (in Bezug auf die Programmierung): Eine Struktur ist eine Menge von n Elementen, die zueinander in Beziehung stehen. Im Falle des Datentyps "struct" also eine Menge anderer Datentypen, die in Realtion zueinander stehen (z. B. Positionen im Raum die in ihrer Gesamtheit eine Raumkoordinate darstellen).
Außerdem definiert die Mathematik Funktionen, die auf die Elemente der Struktur Anwendung finden können. Im Falle von C# wären das struktureigene Methoden, die C++ übrigens nicht kennt (neben Indexern, Eigenschaften usw.). Uups, da habe ich ja ganz beiläufig Unterscheidungsmerkmale genannt, die eine Struktur in C# abgrenzen. Strukturen in C# ähneln nämlich eher Klassen, auch wenn sie intern als Value Type gelten. TG 23:51, 11. Jul 2004 (CEST)

Die Erklärungen von Brian finde ich sehr passend. Also was machen wir jetzt ? Wir fangen erst mal an alles rauszulöschen was _nicht_ c# spezifisch ist. Dazu würden noch nicht mal die structs zählen ! Dazu würden aber schleifen, bedingte sprünge, kommentare, escape sequenzen usw. fallen. Es kommt mir so vor als ob vor allem TG keine anderen Sprachen kennt, sonst würde er das nicht alles so unreflektiert für "unique" halten. Ich meine wir sollten hier mal ein wenig aufeinander zukommen. Wir koennen ja auch mal Schritt für Schritt machen. Ich fange dann mal an Kontrollstrukturen zu löschen. Und schaut euch mal die Artikel zu anderen Sprachen (auch _in_ anderen Sprachen wie englisch) an, dann seht ihr wie man das macht. Schaut euch zum Beispiel mal Java an.... Checkup 23:55, 11. Jul 2004 (CEST)checkup

Es geht nicht darum was ich kenne, sondern was ein normaler Benutzer nicht kennt. Die Wikipedia ist kein Fachlexikon für Informatikstudenten oder Hobbyprogrammierer. Die beschriebenen Sprachbestandteile lassen sich nicht mit anderen Sprachen beliebig austauschen (warum gäbe es sonst verschiedene Sprachen?). Und OO ist die Basis für eine OO-Sprache. Begrifflichkeiten werden kurz eingeführt um jedem Leser die Möglichkeit zu geben, den Inhalt zu erfassen. Eine Enzyklopädie bereitet Wissen für alle auf und gibt nicht Wissen wieder, dass eine kleine Gruppe eh schon besitzt oder meint zu besitzen. TG 00:04, 12. Jul 2004 (CEST)

ok. Nephelin hat alle änderungen wieder rückgängig gemacht, hat wieder allgemeine schleifen usw.. erklärt. hat die änderung als "K"leine änderung gekennzeichnet und sie als "c# spezifisch" deklariert. Wir drehen uns hier im Kreis. Ich werde einen der Admins anschreiben, eine Verwarnung oder Sperrung von Nephelin und eine Verwarnung von TG erbeten und eine Regelung in der Sache forciert wissen. Sollten Nephelin und TG nicht wissen warum wir hier ein Problem haben, bitte ich abermals um Konsultation Themenverwandter Artikel. Checkup 00:14, 12. Jul 2004 (CEST)checkup

Nun, konstruktive Mitarbeit an der Wikipedia besteht nicht darin ab und an mal in der Wikipedia vorbeizuschauen und vornehmlich Inhalte zu löschen oder Diskussionsseiten voll zu schreiben ( http://de.wikipedia.org/w/wiki.phtml?title=Spezial:Contributions&target=Checkup ). Verbessern und erweitern - das ist das Wiki(pedia)-Grundprinzip (um es auch Dir nahe zu bringen). Du wirfst mit Worten wie Programmierkurs um Dich, mit 1001 anderen Sprachen wo alle oder nichts erklärt ist. Nur wo die Informationen stehen, schreibst Du nicht. Dein einziger (destruktiver) Beitrag besteht im Löschen. Neudeutsch nennt man das Vandalismus. Zeige mir die 1000 anderen Programmiersprachen auf wo die Inhalte nachzulesen sind und erkläre mir bitte, wo Du den Programmierkurs siehst? TG 00:22, 12. Jul 2004 (CEST)

Mal eine Zwischenüberschrift, um das Editieren zu erleichtern

ich habe sukzesive Redundanzen und nichtigkeiten gelöscht und versucht Unterschiede herauszuarbeiten. Würde es ganz nach mir gehen würde der ganze Kram komplett rausfliegen, aber ich war leider "so dumm" noch auf Dich und Nephelin zuzugehen. Keine Programmiersprache in der Wikipedia benötigt eine Erklärung von Schleifenkonstrukten usw... Erstens nicht, weil es keine gehaltvolle Information zur Sprache darstellt. Zweitens weil es hochgradig Redundant ist (wäre).

Du hast nur gelöscht, aber nichts "heraus gearbeitet" oder an anderer Stelle deklariert, geschweige denn erklärt. Und wer hat festgelegt, dass Schleifenkonstrukte in Programmiersprachen keine Erklärung bedürfen? Ohne Schleifen und bedingte Ausführung wäre C# nicht C# (außerdem wurde nicht die Schleife oder imperative Asuführung behandelt, sondern nur das syntaktische Merkmal anhand eines Beispiels vorgestellt (außerdem gibt es ja noch andere Sprachen neben C/++, Java und C#). Ich finde jede Art von Information als "gehaltvoll". Denn wenn eine Information fehlt, woher bekommt man dann das gehaltvolle Wissen? Zum Thema Redundanz: Redundanz ist ein integraler Bestanteil von Information und Informationssystemen (wenn das Wort "wäre" nicht wäre).

Faktisch müssten solche Erklärungen an die Vorhergehenden Sprachen gebunden werden (c/c++) bei denen sie als Neuerung galten und bei c# reicht die Erklärung aus das sie das alles von c geerbt hat. Aber komischerweise finde ich das alles nicht bei den Ursprungssprachen, sondern ich finde es hier bei c#. Man müsste den ganzen _Müll_ defacto dann auch bei java und co erklären wenn man einen Anspruch auf Vollständigkeit erfüllen wollte. Den hat man dann zwar, allerdings auch den von absoluter Redundanz und Blödsinnigkeit -> 6 ! Setzen!

komischerweise finde ich das alles nicht bei den Ursprungssprachen. Genau, die Information fehlt. Und wie will man einen Nicht-Informatiker (der auch den Artikel verstehen muss) bestimmte Inhalte vermitteln (oder sie verweisen), wenn Inhalte fehlen. Und Deine Argumenation in Bezug auf die Entwicklungsgeschichte der Sprache C# ist ja nun wirklich haarsträubend. Du erwartest also, dass ein Leser erst die Artikel zu Java, C++, Eiffel, Ada und imperativen Programmiersprachen liest (und versteht), um C# zu verstehen? Das ist Redundanz - und wie Du sagst Blödsinn.

Weiterhin ist es pure Provokation eine while schleife wieder Herzustellen und die Änderung als "K" und "c# spezifisch" zu deklarieren. Das spricht Bände. Hier geht es um pure Provokation, sonst nichts. Es wird nicht mal die Form gewahrt (eine while schleife ist nicht c# spezifisch!).

Ich sagte nicht, dass eine Schleife xy C# spezifisch ist, sondern ein integraler spezifischer Bestandteil der Sprache. C# ist eine OO-Sprache mit imperativen Bestandteilen. Ein Artikel mit enzyklopädischem Charakter muss dem Anspruch genügen, dass jeder ihn versteht, ohne vorher ein Informatikstudium zu absolvieren. Du setzt ein Vorwissen mit Redundanz gleich - obwohl manche noch nichtmal das Wort Redundanz kennen. Vandalismus ist Provokation, d. h. das wahllose Löschen von Informationen ohne Substitution der verlorenen Informationen.

Ich habe mich übrigens an den Administrator "Head" gewandt.

Das spricht Dir niemand ab. Aber es wäre auch schön wenn Du Dich mal zu Inhalten äußerst und nicht nur auf nicht vorhandene Redundanz und nicht existente Artikel verweist. Nochmal: Ein Lekikon soll Wissen für Jedermann/frau zugänglich machen. Und die Wikipedia ist nicht wie ein Buch auf wenige Absätze reduziert. Jeder Mensch selektiert Information (nur wenn diese gelöscht wurde, kann er nicht selektiv Wissen erlangen). PS Ich bin Nephelin aka TG. MfG TG 01:03, 12. Jul 2004 (CEST)

Übrigens Marco, solche kindischen Kommentare unterlasse einfach:

Um es noch nett auszudrücken: Du schreibst nicht nur bei c# Blödsinn! Wenn ich mir den Kram durchlesen den Du zu DVB geschrieben hast, dann koennte ich gerade wieder alles nur nachkorrigieren. Ich werde die Administration auf weitergehende Verstöße hinweisen und zumindest mal den DVB Artikel korrigieren. Ich weiß jetzt schon das Du das wieder nachkorrigierst und die Unwahrheiten von Dir wiederherstellst. Sollte das der Fall sein, würde das nur Beweisen das Du noch an vielen Stellen mehr in der Wikipedia als in c# und dvb Blödsinn schreibst. Die Administration wird das bestimmt interessieren. Benutze bitte auch einmal die History. Es ist aber immer wieder erstaunlich, dass einige Mediengestalter glauben, die Informatik auf den Kopf stellen zu können; ein Buch von DataBecker reicht dazu nämlich noch nicht ganz aus (ich empfehle Dir als Zweitbuch Heide Balzert oder Bloch). PS Die Administration wird das sicherlich auch interessieren. Mit freundlichsten Grüßen TG 03:07, 13. Jul 2004 (CEST)

Flamewar, TG und Nephelim sind eine Person

Liebe Mitautoren: Bei aller Liebe zum Artikel lassen wir dies bitte nicht zu einem reinen Flamewar werden. Und zur Klärung: TG und Nephilim sind eine Person. Leider sehe ich sachlich kein Vorankommen mehr in der Diskussion. Schlußendlich muss Nephilim aber akzeptieren, daß sich in den letzten Tagen die Mehrzahl der an der Diskussion zu C# beteiligten Autoren für eine intelligente und Übersichtlichkeit schafffende Kürzung ausgesprochen haben. Allerdings werden selbst Kürzungen von einzelnen Sätzen gleich rückgängig gemacht. Da dies ein gemeinschaftliches Projekt ist, kannst du Nephilim das Mehrheitsvotum als einzelner nicht nichtig machen. Der Ausgang dieser Diskussion kann sich doch nicht danach richten wer schneller die Änderungen des Anderen rückgängig machen kann, sondern wenn schon sonst keine Einigung besteht, welche Meinung überwiegt. --Sprezz 00:48, 12. Jul 2004 (CEST)

Ich bin für Abstimmungen. Nur wenn es darum geht Inhalte zu löschen, die auf nicht vorhandenen Inhalten aufbauen, dann trete ich auf die Bremse.
Von der Löschdiskussionsseite ein Zitat: Der Artikel sollte nicht gelöscht und auch nicht verschoben werden. Wikipedia hat mittlerweile viele Portalseiten und die entsprechenden grob gesehen im Fall vom Portal Physik z.B, den Bertelsmann Bänden Physik I- III und dort werden Sachverhalte nicht in drei Zeilen, sondern über drei Seiten erklärt und das sollten wir zum Maßstab erheben... nicht die kurzgehaltenen Artikel in den alphabet. geordneten Bänden... dort wird das Wissen nur aufgrund von Platzmangel komprimiert - was hier aber nicht nötig ist. --mikeL 23:23, 10. Jul 2004 (CEST)
Dem schließe ich mich an, denn das hat die WIkipedia einem Lexikon voraus. Wenn man mal über den Tellerrand der Informatik herausblickt, dann könnte man beispielsweise auch die gesamte Geschichte auf wenige Absätze komprimieren und alles andere verlinken? Nur dann geht die Information verloren, weil man mehr mit dem navigieren, als mit dem Lesen beschäftigt ist. Man kann einen Artikel sicherlich in seine Atome sprengen (dann ist man schnell bei einem Wörterbuch) - der Informatiker sagt redundanzfrei normalisieren. Nur eine solche Redundanzfreiheit ist für ressourcensparende Speicherung und Verarbeitung durch Computer gedacht, aber nicht zur Wissenermittlung eines normalen Lesers und Nicht-Informatikers. TG 01:16, 12. Jul 2004 (CEST)
Dem Argument möchte ich nicht folgen, denn nicht umsonst gibt es den Begriff der Informationsüberflutung in der modernen Gesellschaft. Ein Artikel muss Wissen ordnen und dezidiert aufbereiten, ansonsten ist gerade der von dir so oft beschworene Fachunkenntliche in der Menge der Informationen verloren. Zudem führst mit deiner Kernaussage, daß PS keine wesentlichen Gemeinsamkeiten haben, die gesamte Informatik ad absurdum. Ich glaube aber nicht mehr, daß wir auf dieser Ebene zu einer Einigung kommen werden. Deshalb ganz neutral: Auf der Löschkandidaten-Seite haben sich 6 Personen für eine Kürzung ausgesprochen, zwei haben sich gegen die Kürzung ausgesprochen. Auf dieser Seite hat sich eine Person gegen die Kürzung ausgesprochen, mind. 6 haben sich für die Kürzung ausgesprochen. Ich bin wie gesagt selber kontra eine Löschung, aber ich bin für das gezielte Kürzen und Verschieben einzelner Abschnitte. --Sprezz 01:31, 12. Jul 2004 (CEST)
Informationsüberflutung ist nur gegeben, wenn Inhalte (Information) nicht aufbereitet oder reflektiert werden. Nach der Kernaussage mancher würden die Aussagen reichen: "C# ist eine Programmiersprache.", "C# ist eine objektorientierte Programmiersprache.", "C# stammt von C##, Java und VisualBasic ab". Inhatlich richtig, aber die Sprache C# erklärt das nicht, es ist nur eine Aneinanderreihung von Stichworten. Jeder SQL-Programmierer freut sich über diese Redundanzfreiheit, aber der Rezipient - sprich der Leser - eines Artikels ist nunmal keine normalisierte Datenbank, sondern ein Mensch (das kann auch ein Informatiker sein, aber man muss von einem Nicht-Informatiker ausgehen).
In meiner Kernaussage führte ich nie aus, das Programmiersprachen keine Gemeinsamkeiten haben, aber die Unterschiede herauszuarbeiten und diese Unterschiede abzugrenzen, entspricht der von Dir geforderten Informationsaufbereitung. Sind keine Informationen vorhanden braucht man sie nicht aufbereiten. Dann braucht man aber auch kein Lexikon. Denn die Aussage C# ist eine OO-Programmiersprache sollte dann C# ausreichend beschreiben. Nur C++ und Java sind auch OO-Programmiersprachen (die zufällige gleiche imperative Strukturen verwenden). Und Aussagen wie Schleifen sind redundant und für C# nicht wichtig, da sie ja von Sprache XY abstammt, was voraussetzt, dass damit C# auch Schleifen des Typs YZ unterstützt ist mathematisch sauber und informationstechnisch redundanzfrei. Aber auch frei von Information. Denn abstrakte Vererbungshierarchien sind nicht für Menschen gedacht. Wissen (=Information) lebt von Redundanz. Die ganze KI und Expertensysteme sowie die Statistik lebt von Redundanz. Genau hier setzt eine Enzyklopädie an - Wissen durch Redundanz vermitteln. Denn was man schon weiß, schafft kein neues wissen. Und Fachwissen kann man nur bei Fachleuten (hier sind es Informatiker) voraussetzen. Aber wie gesagt: die Wikipedia ist kein Fachlexikon für Informatiker, die gelernt haben, redundanzfrei zu denken. Abschließend: Straffung von Inhalten ist OK, sofern keine Information vernichtet wird und Inhalte nicht zu zusammenhangslosen Informationsfragmenten verkommen. TG 01:48, 12. Jul 2004 (CEST)
Das würde stimmen, wenn der Artikel für sich alleine stehen würde, aber die Wikipedia erlaubt, fordert sogar das Vernetzen von Artikeln. Wenn ich oben schreibe, daß C# eine objektorientierte Sprache ist und darauf verlinke, dann kann ich vom Leser erwarten, daß die Information danach im Wesentlichen als gegeben gilt. Es macht keinen Sinn dann gleich darauf zu erläutern was Objekte und Klassen sind, zumal dies dann eh nicht wie im eigenen Artikel in der angemessenen Form geschehen kann. Vereinzelte Redundanz ist sinnvoll, aber nicht wenn sie (wie hier) circa 75% des Artikels ausmachen. Dann könnte man gleich alle Wikilinks abschaffen und alle Informationen vollständig in jedem Artikel aufs neue erläutern. Dies wäre dann aber eben kein Informationsgewinn, sondern eine Verschüttung von Informationen.
Beispielsweise ist die Semantik der Steuerstrukturen bereits vollständig in der Wikipedia erfasst. Die Syntax zu einer speziellen Sprache gehört wenn überhaupt in einen eigenen weiterführenden Artikel, darf aber nicht die fachliche Aufbereitung und Zusammenfassung ersetzen. Bitte betrachte den Artikel zur Sprache C. Die Vorgehensweise in jenem Artikel könnte ein Kompromis für diesen Artikel darstellen. --Sprezz 02:41, 12. Jul 2004 (CEST)
Gut, greife ich ein Beispiel aus dem Artikel auf, da ja die Semantik der Steuerstrukturen bereits vollständig in der Wikipedia erfasst ist: Mit return wird die aktuelle Methode verlassen und der im Kopf der Methode vereinbarte Referenz- bzw. Datentyp als Rückgabewert zurückgeliefert. Methoden ohne Rückgabewert werden mit dem Schlüsselwort void gekennzeichnet.
Ich konnte den Abschnitt inhaltlich nicht finden, so daß er auf C# angewendet werden kann. TG 02:53, 12. Jul 2004 (CEST)
Falls dies so ist, dann finde ich es um so trauriger und bestätigt meine Meinung, daß derart zentrale Konstrukte allgemein und zusammenhängend in eigenen Artikeln definiert werden sollten, anstatt in vielen verschiedenen Artikeln immer aufs neue. Wir kommen aber wie gesagt so nicht mehr weiter und veranstalten nur noch ein Debatierduell. Als konkreten Ansatz: Bitte gucke dir den Artikel C an und sage uns, was du von diesem Ansatz hälst. Die Diskussion hat doch bis hier gezeigt, daß sich auf jeden Fall etwas ändern muss. Die Frage ist nur wie genau. Darauf sollte sich die restliche Diskussion konzentrieren. --Sprezz 03:14, 12. Jul 2004 (CEST)

Bei Abschnitt zur expliziten Typumwandlung ("Casting") stimme ich übrigens zu. Der Abschnitt kann in einen separaten Artikel. Ein Verweis reicht hier (vielleicht im Hinblick darauf, dass alles von der Klasse object abstammt) und ein Ausblick auf Generizität in der Version 1.2 sowie Autoboxing (denn das sind wieder spezifische Merkmale einer typisieren Sprache). TG 01:22, 12. Jul 2004 (CEST)

Wikipedia und Wikibook

Ich glaube den folgenden wichtigen Sachverhalt hat noch keiner erwähnt, vielleicht, weil es keiner gemerkt hat. Ich hoffe das hier hat damit ein Ende:

Unter http://wikibooks.org/wiki/Programmierung:C-Sharp findet sich eine ausführliche (wenn auch noch nicht vollständige) Anleitung. Jedes Bunte Stückchen des C-Sharp-Artikels kommt aus dem wikibook, und ca. 85% des restlichen Textes. Die restlichen 15% enthalten auch keine Information. Der Artikel ist damit zu 100% redundante Information und kann meiner Meinung nach jetzt sofort und ohne das Information verloren geht unwiederruflich gelöscht werden. An dessen Stelle müsste ein neuer Artikel stehen. Ich wäre sehr dafür, dass dieser Artikel an gut sichtbarer Stelle einen Link auf das genannte Buch enthält, auch wird es sich nicht vermeiden lassen, dass es inhaltliche Überschneidungen zwischen Buch und Artikel gibt, aber das blinde Kopieren von Buchabsätzen in den Artikel hätte sich damit endgültig erledigt.
Viel Spaß noch wünscht Brian 80.185.140.69 03:17, 12. Jul 2004 (CEST)
PS: Bei Zeiten werde ich mir auch einen Account zulegen.

Das ist der Unterschied zur Wikipedia. Hier entsteht eine Enzyklopädie und kein Buch. Es ist schön, wenn jemand aus diesem Artikel Inhalte in "Wikibook" einpflegt. Allerdings arbeite ich an Wikipedia. Nicht an Wikibook noch an Wikimedia noch an Wiki...
Jemand der Wikipedia nutzt und hier Informationen sucht und an andere Stelle im Netz verwiesen wird muss sich doch fragen, warum er das nächste mal Wikipedia nutzen sollte, wen er Informationen doch an anderer Stelle bekommt. Wikipedia ist nunmal kein Wörterbuch a la Wiktionary, wo ein Begriff anhand eines "Abstracts" angerissen wird.
Zum Thema 100% Redundanz: Warum überhaupt Wikipedia? Informationen gibt es doch an anderer Stelle redundant?! Du siehst hoffentlich den logischen Fehler in Deiner Argumentationskette selbst? TG 09:15, 12. Jul 2004 (CEST)
Vielleicht solltest du auch in Betracht ziehen, dass jemand zur Wikipdia kommt, weil er sich nur einen Überblick über C# machen und keine Sprachreverenz haben will. Bei einem Text mit 20 Seiten wird dies kaum jemand gelingen.
Eine Enzyklopädie hat auch die Aufgabe für den Benutzer wichtige von unwichtigen Informationen zu trennen (siehe Artikel Enzyklopädietheorie). Ungefilterte Informationen finden sich genug im Internet, unter den Links im Artikel befindet sich sogar ein komplettes Buch zu C#. Die Möglichkeiten der Wikipedia werden vielmehr dadurch ausgenutzt, dass dem Nutzer weiter Informationen dadurch erhält, dass er auf einen Link klick (das kann er beim gedruckten Brockhaus nicht) und dadurch vertiefende Informationen zu einem Thema bekommt. -- Daniel 11:27, 12. Jul 2004 (CEST)
Habe ich in Betracht gezogen. Es gibt Menschen, die sich einen Überblick verschaffen wollen. Die lesen die Einleitung, erfahren, dass C# eine objektorientierte Programmiersprache ist, sind glücklich um haben etwas gelernt. Würde der Artikel hier enden, bevor er angefangen hat, dann würden Andere, die eben nicht nur wissen wollen, dass C# eine Programmiersprache ist sehr enttäuscht sein. Oder aber sie stoßen auf eine Linkliste und müssen sich ihr wissen an tausend Stellen zusammen suchen. Aber sicherlich nicht mehr in der Wikipedia. Eine Enzyklopädie richtet sich nunmal nicht nur an Informatikstudenten im Erstsemester, die schon (glauben) alles zu wissen, sondern auch an Menschen, die ihr Wissen erweitern wollen. Eine abstrakte Linkliste und Verweise auf die Sprachen Eiffel, Java und C aus den 1960er Jahren erklären nicht die Sprache C#. Ein desaströses Antibeispiel ist der Artikel zu C++ (wo selbst der Hinweis fehlt, dass es sich um eine objektorientierte Sprace fehlt (in Abgrenzung zu C). Man merkt, das bei den meisten Artikel zu Computerthemen Informatiker bzw. Informatikstudenten am Werke waren. Und genauso präsentiert sich ein solcher Artikel: ein Nicht-Informatiker hat keine Chance, Inhalte zu erfassen, weil Fachwissen vorausgesetzt wird. Aber eine Enzyklopädie soll Wissen für Jedermann/-frau liefern. Ein Informatiker schaut sicher nicht in der Wikipedia nach. TG 21:50, 12. Jul 2004 (CEST)

Durch den Löschantrag aufmerksam geworden, habe ich mir den Artikel auch mal genauer angeschaut und muss feststellen, dass ich ebenfalls vollkommen der Meinung bin die grundlegenden Abschnitte aus diesem Artikel zu entfernen und in sprachenübergreifende Artikel zu bündeln. Nur Besonderheiten von c# sollten stehen bleiben. Ich werde mich gerne an dieser Arbeit beteiligen, jedoch nicht bevor das hier geklärt ist. Ich möchte nur ein kleines weiteres zu den unzähligen anderen Beispielen (Schleifen, Verzweigungen, Datentypen, usw.) anführen: Der Artikel Hallo Welt hat auch ebenso schon einen Eintrag für C#. Im übrigen bin ich für Abstimmungen und Mehrheitsentscheidungen, meine Stimme ist bei 80.185.140.69, der völlig richtig auf das wikibook hinweist und ansonsten bei Daniel, Schrezz und checkup. --Friese 19:37, 12. Jul 2004 (CEST)

Hallo Nephelin|TG. Versuchst du eigentlich dies zu einer Lösung zu bringen, oder willst du Wikipedia Nutzen um Anhand deiner Gesprächsbeiträge Den Begriff Troll (Internet) anschaulich zu definieren? Mir ist jetzt endlich klar geworden, dass es in dieser Diskussion nur um deine persönliche Selbstdarstellung geht und nicht um das Thema selbst. Denn die Argumente, die die verschiedensten Leute hier gegen den Artikel angebracht haben, haben eigentlich schon alles enthalten, was es darüber zu sagen gibt. Du kannst oder willst es nicht verstehen. Mir sind noch mindestens 4 Stellen in deinem letzten Beitrag aufgefallen, die perfekte Angriffspunkte wären, um dein gesagtes zu wiederlegen, aber es wäre völlig sinnlos, wenn ich noch ein paar Überlegte Worte zum Sinn von Wikipedia, Wikibooks und Enzyklopedien machen würde. Es geht doch nicht um den Artikel und um Wikipedia, sondern einzig und allein darum, ob du recht bekommst. Du gibst vor, dass du recht bekommen wolltest, aber in Wirklichkeit nimmst du doch die Position, die du hast, nur ein, damit der Streit weiterlaufen kann. Es ist dein Hobby. Und mit einer Einstellung, die offensichtlich nicht von der Mehrheit tolleriert werden kann, hast du dabei gute Chancen, dass dein Hobby dich lange Zeit erfreut. Du bist eindeutig in der Mindetheit, entsprechend braucht man dich auch weder zu fragen noch darum zu bitten, irgendetwas zu ändern, man tut es einfach, und wenn du es wieder zurückänderst, dann wirst du irgendwann von irgendwem gesperrt.
Im Übrigen muss ich sagen, dass mich diese ganze Sache hier richtig ankotzt, und dass du es erfolgreich geschafft hast, mich, (wo ich erst seit 3 Tagen Wikipedia kenne), in meiner Rolle als mitschreibender Nutzer vergrault hast. Ich habe jetzt schon die Nase voll, und werde in den nächsten Monaten davon Abstand halten, mich hier produktiv einzubringen. Ich möchte nicht sagen dass diese Entscheidung meinerseits richtig ist, aber du riskiert bewusst, dass ich es tu, und das andere Nutzer das gleiche tun. Eventuell ist auch das dein Ziel, aber so genau durchschaue ich dich nicht. Falls du jetzt durch mein Verschwinden ein Erfolgserlebnis hast, schön, freu dich drüber, und lass es einfach dabei bewenden un ziehe dich zurück. Ein verglaulter User sollte dir hoffentlich reichen.
Tschüss, machts gut ihr anderen, Brian 80.185.131.209 21:07, 12. Jul 2004 (CEST)
Kurz vorweggenommen... entweder Du bist ein verkannter Analytiker, dem man Ruhm zollen sollte oder aber ich kann nicht ganz glauben, dass Du mich, die Wikipedia usw. innerhalb von drei Tagen "produktiv" so tiefgründig kennengelernt hast. Ein normaler Wiki-User fängt anders an... wird korrigiert wenn er/sie Fehler macht usw. Also, innerhalb von drei Tagen hast Du ganze Sozialisationsprozesse ad adsurdum geführt. Bravo, dem zolle ich Beachtung und meinen Respekt (auch wenn ich mich frage, wie man es dann innerhalb von drei Tagen nicht schafft, sich einen Accout zuzulegen?).
Ich finde es gut, wenn mitschreibende produktive Benutzer Wikipedia verbessern und Inhalte ergänzen. Nur zur Worterklärung: reines Löschen gehört in den Bereich Destruktivität und nicht Produktivität (und da ich bei Dir informationstechnisches Wissen voraussetze, gehe ich davon aus, dass Du den Unterschied zwischen Konstruktor und Destruktor kennst?).
Ich habe bislang nie Grabenkriege wegen Artikeln geführt und finde es gut, wenn Artikel von mir oder an denen ich mitgearbeitet habe erweitert oder verbessert werden. Nur reines Löschen gehört nicht dazu. Zumal das spezifische Wissen an anderer Stelle (innerhalb der Wikipedia!) nicht verfügbar ist (und ein enzykl. Artikel ist nunmal keine reine Linkliste).
Zum Thema Rücktritt: 1) Du musst Dich erstmal produktiv eingebracht haben, um von Produktivität sprechen zu können. 2) Du hast noch nichtmal einen Account (s. o.) und bei wechselnden anonymen IPs bin ich eher mißtrauisch 3) Ich nehme keinem die Entscheidung ab... es ist Sommer. Und ein Abend im Biergarten ist auch etwas feines. Außerdem ist das mit dem Zurücktreten als Druckmittel dank unseres Kanzlers gerade "in"? Oder soll ich die unterschwellige Botschaft anders interpretieren? 4) Nein ich habe durch Dein Erscheinen, noch durch die fakultatives "Verschwinden" kein Erfolgserlebnis. Ich bedaure es sogar zutiefst, da Du ja davon gesprochen hast, dass Du Dich irgendwann produktiv einbringen willst/wolltest. Jede Information und jedes Wissen das verloren geht ist schade... auch Deines, Brian (?!). MfG TG 22:15, 12. Jul 2004 (CEST)
Ich habe bislang nie Grabenkriege wegen Artikeln geführt Siehe auch: Diskussion:Ziegenpeter, [1]. --Elian Φ 22:25, 12. Jul 2004 (CEST)
Nun, hier ging es auch ums Löschen von Fakten (, Fakten, Fakten). Wenn jemand nicht akzeptieren kann, dass es auch Menschen gibt, die dem hochdeutschen mächtig sind, dann ist das bedauerlich. Aber das lässt sich leider nicht ändern. Und Geiß heisst bei den der normalen Sprache mächtigen nun einmal Ziege. Aber zum Glück gibt es Logopäden ;-) TG 03:07, 13. Jul 2004 (CEST)
Hallo Brian. Dass du hier nicht mehr mitmachen willst, finde ich aber ausgesprochen schaden. Du solltest nicht von dieser Diskussion, die zugegeben nicht sehr glücklich verläuft, auf die ganze Wikipedia schließen. Eins solltest du immer bedenken: Dies hier ist das Internet. Eine Diskussion ist hier immer etwas schwieriger. Und auch im realen Leben ist man nicht immer einer Meinung. Bevor du wirklich aufhörst, schau mal bei den Wikipedia:Exzellente Artikel vorbei, was hier tatsächlich schon geleistet wurde. Gruß Daniel 21:26, 12. Jul 2004 (CEST) (Der hofft, mit dem Anstoßen dieser Diskussion keinen User verloren zu haben)
Leider hast du recht und ich bin der Diskussion ebenso überdrüssig. Bei aller Konsenzsuche, wenn Nephilim nicht bereit ist auch nur einen Millimeter von seiner Position abzurücken, dann müssen die Änderungen eben ohne seine Unterstützung oder Zustimmung stattfinden. Nephilim hat sich selber um die Möglichkeit gebracht, konstruktiv und vorallem leitend bei den Änderungen zu helfen. Brian, ich hoffe du bleibst uns als Autor allerdings trotzdem erhalten. Ich bin seit einigen Monaten dabei und habe in dieser Zeit an über 100 Artikeln mitgewirkt (natürlich mal im größeren, oft im kleineren Sinne). So etwas wie hier ist mir jedoch noch nie vorgekommen, insofern kann ich dich beruhigen: Dies ist kein Normalfall und wenn du erstmal angefangen hast, wird dich die Wikipedia-Sucht ohnehin ergreifen. Für mich hat sich die Diskussion, ob Änderungen statt finden oder nicht erledigt. Ich werde jetzt nur noch über die Form derselben reden. --Sprezz 21:54, 12. Jul 2004 (CEST)
Nephelin ist ein Extremfall, bei dem leider viele Benutzer erst zu spät merken, dass Diskussionen mit ihm zu nichts führen. Ich würde euch allen vorschlagen: Ignoriert ihn und lasst euch den Spass an der Wikipedia durch ihn nicht verderben. --Elian Φ 22:29, 12. Jul 2004 (CEST)

Hier gehts nicht um Positionen oder Änderungen, sondern ums blinde Löschen. Wenn ich mir den Artikel zu C++ anschaue bekomme ich eine Gänsehaut. Von Erstsemestern für Erstsemester. Ich arbeite an einer Enzyklopädie nicht, und nicht an abstrakten Linklisten oder Favoritensammlungen. Dafür braucht man keine Enzyklopädie. TG 22:15, 12. Jul 2004 (CEST)

wie wärs, wenn sich der große Demokratieadvokat hier mal der Meinung der Mehrheit beugen würde? Nach blindem Löschen sieht mir das überdies nicht aus, eher nach wohlüberlegten und gut begründetem. --Elian Φ 22:29, 12. Jul 2004 (CEST)
Zu wohlüberlegt würde ich tendieren, wenn die Inhalte an andererer Stelle innerhalb der Wikipedia zu finden sind. Ein Informatiker kommt mit dem Grundwissen aus, aber einem normalen Leser muss man Wissen so vermitteln, dass er es auch ohne Informatikstudium versteht. Abstrakt einzelne Begriffe aufzuführen und dann auf noch abstraktere Begriffe zu verweisen (siehe Listenartikel zu C++) ist kein schlechter Stil, sondern einfach unlogisch. Man kann eine Sprache nicht damit erklären und charakterisieren, wenn man die Sprache mit anderen Sprachen erklärt. Manche wollen Wortbuch-Artikel nach dem Schema: "Sprache X ist eine Programmiersprache und stammt von Y und Z ab (näheres dort)." Und dort steht dann der gleiche Hinweis. Am Ende ist es eine Verkettung von Begriffen. Das hat aber nichts mehr mit Inhalt zu tun, sondern eher mit chaotischer Navigation. Informationen und Wissen bereitet man so nicht auf - geschweige denn, dass man es jemandem vermitteln kann. Wenn man nach diesem Vorbild Geschichte aufbereiten würde... dann Gute Nacht. TG 22:42, 12. Jul 2004 (CEST)
Nephilim, es reicht. Sowohl in der Löschkandidaten Diskussion, als auch hier haben sich über 90% der an der Diskussion teilnehmenden Autoren für eine Kürzung ausgesprochen. Wenn du dieses Mehrheitsvotum nicht akzeptieren kannst, nicht in entferntester Weise an einer gemeinsamen Lösung interessiert bist, nicht einmal einen Millimeter von deiner Position abtreten kannst, dann hast du in einem Gemeinschaftsprojekt, wie der Wikipedia nichts verloren. Höre auf diesen Artikel als dein Privateigentum anzusehen. --Sprezz 22:35, 12. Jul 2004 (CEST)
Wie ich zum Ausdruck brachte: Ändern heißt nicht Löschen. Zeige mir auf, wo ich die gleichen Informationen, die auf die spezifische behandelte Sprache anwendbar sind, zu finden sind. Voraussetzung: Jeder muss es verstehen können. Nicht nur Informatiker. Nephilime tauchen in der Schöpfungsgeschichte auf. Es sind aus dem Himmel verstoßene Engel... halb Mensch, halb Engel. Ich schreibe mich Nephelin! MfG TG 22:42, 12. Jul 2004 (CEST)
Auch wenn ich eigentlich auf elian hören wollte: Es geht nicht um Löschen, sondern um eine andere Strukturierung der Daten. Wenn du den Artikel z.B. über Kontrollstrukturen bemängelst (zu Recht!), dann verbessere diesen Artikel, aber schreibe doch nicht alle Kontrollstrukturen in einen spezifischen Programmiersprachartikel wie diesen
Eine while Schleife ist und bleibt eine while Schleife, ob nun ada, c#, c++, lisp oder was auch immer.
Wenn du meinst, das z.B. ganzzahlige Typen wie Int(-eger) durch die Objektbasierung zu etwas so unterschiedlichem werden, dass man sie nicht mehr elementarer Datentyp nennen kann, und hierbei meine ich Semantik und nicht Syntaktik, dann ergänze den Artikel Datentypen. Aber erkläre es nicht hier, denn zumindest auch Smalltalk verwendet dieses Konzept. Vermutlich einfach viele objektorientierte Programmiersprachen.
Nach deiner Artikel-Verfassungslogik müsste ja jeder Artikel zu einem bestimmten Prozessortyp z.B. Intel 80286 oder Intel 80386 den gesamten Inhalt von Mikroprozessor und damit den gesamten Prozessorentwurf neu erklären. Gespannt warte ich auf die weitere Zerlegung dieser Einzelbeispiele, die wieder nicht den Gesamtkontext der hier von vielen einschließlich mir verfolgten Diskussion berücksichtigt --Friese 23:23, 12. Jul 2004 (CEST)
Nun, mit Logik versuche ich es hier nicht. Schau Dir das Bild weiter oben an und Du kannst sehen (Ja, noch nicht einmal das Lesen ist erforderlich!), dass sich Programmiersprachen nicht linear entwickeln. Demnach auch nicht deren Konzepte und Kontrollstrukturen. Denn wenn ich Deine "Prozessor-Entwicklungs-Logik" zugrunde lege (tue ich aber nicht), dann wäre C# linear aus C sowie C++ hervorgegangen. Richtig? Nur wo existieren in C oder C++ objektbasierte elementare Datentypen? Wo gibt es Strukturen, die den Aufbau vn Klassen besitzen? Verkehrte Welt, nicht wahr? Und nicht zu vergessen: die Kontrollstruktur foreach... die existiert ja in C, wie wir alle wissen?! TG 03:07, 13. Jul 2004 (CEST)
Schön, wie du immer wieder versuchst einen persönlichen Flamewar aufzuziehen. Deine Argumentation (linear heißt, dass alle vorhergehenden Sprachen mindestens soviel Funktionsumfang haben, wie darauf folgende!?) ist unsinnig, dein Diskussionsstil infantil und trollig. Verschon uns bitte. --Sprezz 11:56, 13. Jul 2004 (CEST)
Sagte ich das? Du versuchst mir Worte in den Mund zu legen. Die Argumentation einiger war: "enn eine Sprache X von Sprache Y abgeleitet ist, muss die Sprache X nicht mehr erläutert zu werden, da schon alles in Sprache Y gesagt wurde." Die Wikipedia richtet sich nunmal nicht an Informatiker (primär), sondern an alle. Und man kann niemandem zumuten, dass er die Geschichte von C beginnend im Jahre 1960 komplett erarbeitet, um zu erfahren, was C# auszeichnet. Wenn ein Benutzer etwas zu C# erfahren möchte, dann kann man nicht damit argumentieren, dass ja bereits alles gesagt wurde. Ein Artikel sollte so geschrieben sein, dass er für jeden selbsterklärend ist und nur vertiefende Informationen verlinkt sind. Wenn aber alle Informationen, die zum Verständnis notwendig sind, verlinkt sind und es erforderlich ist, dass man erst n Artikel lesen und verstehen muss (und die davon verlinkten Themen ebenfalls), um aus dem spezifischen Artikel Wissen ableiten zu können, dann hat der Artikel nicht den Namen Artikel verdient, sondern Linkliste. Dann braucht man keine Enzyklopädie, dann reicht auch Google. Denn dort bekommt man auch eine Menge von Links. Verschon uns bitte? Du redest von Dir in der ersten Person Plural? Das kann forensische Züge annehmen... ;-) TG 19:39, 13. Jul 2004 (CEST)
Nephelin, ich persönlich bin an keinerlei Diskussion mehr mit dir interessiert. Du gehst irrtümlicherweise davon aus, dass nur mit deiner Zustimmung Änderungen in der Wikipedia vollzogen werden dürfen. Dies ist nicht der Fall. Im Laufe dieser Diskussion haben sich bereits über zehn Autoren nicht nur gegen deine gewünschte Artikelform, sondern auch gegen dein Verhalten in dieser Diskussion ausgesprochen. Bitte akzeptiere, daß die Mehrheit eine andere Lösung beschlossen hat. --Sprezz 23:47, 12. Jul 2004 (CEST)
Diskussion setzt ja auch Argumentation voraus. Ich wußte gar nicht, dass wir demnach eine Diskussion geführt haben? TG 03:07, 13. Jul 2004 (CEST)

Löschantrag entfernen

Da sich Nephelin endlich dazu herabgelassen den Artikel "freizugeben" schlage ich vor den Löschantrag zu entfernen und stattdessen mit der Veränderung des aktuellen Artikels zu beginnen. Ich habe die reinen Syntax-Abschnitte über Kommentare und Steuerstrukturen bereits gekürzt. --Sprezz 00:13, 13. Jul 2004 (CEST)

...und ich habe den Abschnitt finalisiert, da Syntax für eine Programmiersprache nicht notwendig ist. Es existiert schon ein Artikel an anderer Stelle. TG 00:17, 13. Jul 2004 (CEST)


Objektorientierung

Den verqueren und sehr kurzen Abschnitt über Objektorientierung ("Datenkapsel...") habe ich mal als Überarbeitungskandidaten markiert. Die dort genannte Wichtigkeit der Datenkapsel finde ich total übertrieben und ist mit Sicherheit nicht das einzig entscheidende Merkmal der Objektorientierung. Des weiteren trifft die dort genannte Kritik genauso auf Java und andere OOPs zu. Kann jemand mal etwas differenzierter dazu schreiben? Oder besser den Abschnitt entfernen? Es ist ja unstrittig, daß C# eine OOP ist (trotz aller Abstriche, die verbreitete OOPs wie Java, C# und C++ am Konzept machen).

Ich hab den Quatsch entfernt. Aber der Artikel hier ist sowieso - ich sag mal vorsichtig - stark verbesserungswürdig. Vielleicht sollte "man" das Ding neu schreiben und sich besser an der englischsprachigen Fassung orientieren [2]. --Novox 15:36, 9. Mär. 2008 (CET)
Dies ist kein "Quatsch". Die OOP kennt drei wesentliche Prinzipien (Vererbung, Polymorphie und Kapselung). Die fehlende Kapselung ist in den Sprachen Java und C# bei umfangreichen Applikationen ein ernstzunehmendes Problem - mag sein, dass hier einigen Informatikern die Erfahrung fehlt. Derzeit unterstützen von den üblichen Sprachen lediglich C++ und Eiffel alle drei Konzepte. Zu diesem Thema wurde bei uns im Hause ein umfangreiche Diplomarbeit angefertigt, die aufzeigt, welche Schwierigkeiten hierdurch entstehen und welcher Aufwand notwendig ist, diesen Mangel zu beheben. Schade, dass ausgerechnet ein Informatiker hier das Thema Kapselung so herunterspielt. (PeterReut)
Datenkapselung bei C++ bekommt man nur hin, wenn man ausschließlich abstrakte Interfaces in den Schnittstellen benutzt und konkrete Objekte ausschließlich von Factories erzeugen lässt. Alternativ: alle Klassen implementieren das PIMPL-Idiom, um an ihre Daten zu kommen. Beides kostet aber Laufzeit und nimmt C++ damit seinen Effizienvorteil ggü. anderen objektorientierten Sprachen. Effizientes C++ geht nur, wenn man auf eine Datenkapselung verzichtet. --RokerHRO 17:41, 26. Dez. 2008 (CET)
Falsch - wenn auch diese Diskussion zu C++ gehört. Durch das Schlüsselwort "const" ist in C++ Datenkapselung möglich, die zur Compile-Zeit über das gesamte System geprüft wird und somit ohne Laufzeitverlust daherkommt. Durch Compile-Zeit-Prüfung kann verhindert werden, dass C-Style-Casts oder const_cast verwendet werden, um die Datenintegrität zu stören. Allerdings ist der beschriebene Ansatz ausschließlich ReadOnly-Interfaces zu nutzen tatsächlich eine Möglichkeit, um in C# und Java die Datenkapselung zu verbessern. An die Grenzen stößt die Technik, wenn mehrstufig Container verwendet werden, insbesondere, da das Casten - anders als in C++ - ein erlaubter und üblicher Schritt ist. (PeterReut) 14:10, 29. Dez. 2008 (CET)

Seltsamer Redirect?

Warum führt "C#" in der Artikelsuche zu "C"? Ich habe ja gelesen, dass "C-Sharp" nicht der richtige Artikelname ist, aber warum landet man denn bei einem Artikel, der weder C# noch C-Sharp heißt? Werden diese ganzen technischen Einschränkungen irgendwann aufgehoben? Schließlich läuft Die Wikipedia doch schon längst mit Unicode, oder? 130.83.73.64 18:30, 14. Dez. 2006 (CET)

Das '#' hat eine spezielle Bedeutung in der URL: Der Text hinter dem '#' verweist auf eine spezielle Stelle in einer Seite. Der Teil wird aber nicht an den Webserver gesendet, sondern direkt vom Browser interpretiert. Der Wikipedia-Server wird also nach dem Artikel 'C' gefragt und weiss gar nichts von dem '#'. 62.226.28.9 21:08, 18. Feb. 2007 (CET)

Klassen und Datentypen

Aus der Wikipedia-Seite zu Datentypen kann ich nicht entnehmen, warum ein Datentyp durch das Erweitern um die Möglichkeit zur Vererbung kein Datentyp mehr sein soll; Gleiches bezüglich Polymorphie.

Vielleicht könnte man den Punkt, falls stichhaltig, im Artikel zu Datentypen genauer ausführen ... falls nicht: die Formulierung im C#-Artikel entsprechend vorsichtig gestalten. :-) Zäh-Scharp 21:23, 14. Jul 2004 (CEST)

Also die Definition eines Datentypen ist in der Informatik-Literatur, die mir vorliegt, Z.B. Informatik-Duden, Informatik-Handbuch (Rechenberg-Pomberger) die Verbindung einer Wertemenge mit den darauf definierten Operationen. Auch mein Studium hat mir dies so vermittelt. Jetzt sagst Du, wenn ich dich recht verstehe, dass durch das Hinzufügen weiterer Eigenschaften, die Grundeigenschaft Datentyp nicht verloren geht. Das klingt logisch, so habe ich nochmal überprüft woher die Aussage in Datentyp bzgl. Polymorphie und Vererbung stammt. Ich habe sie aus dem Ursprungsartikel kopiert ohne länger darüber nachzudenken. Inzwischen ist mir klar, dass Datentypen und Klassen etwas grundverschiedenes sind. Denn Klassen haben zwar auch Operationen, meist Methoden genannt, sie operieren jedoch auf den Attributen der Klasse, welche selbst typisiert sein können. Die Eigenschaft der Polymorphie und der Vererbung hat nur eine Klasse, niemals ein Datentyp. Bestimmte Methoden einer Klasse rufen evtl. nur anderen Methoden in anderen Klassen auf, operieren damit also gar nicht auf einem Wertebereich. Das sind für mich genügend Indizien, dass ich beim Erstellen von Datentyp diese Angabe einfach zu ungeprüft übernommen habe. Ich werde den Artikel Datentyp korrigieren. Ein letztes Indiz: In meiner inzwischen fast achtjährigen Zeit, in der ich mich im Umfeld der Informatik bewege, bist du der erste, der eine Klasse als Datentyp bezeichnet hat, obwohl das natürlich nichts heissen muss ;-) --Friese 22:26, 14. Jul 2004 (CEST)
In der englischen Wikipedia bin ich auf folgenden Artikel gestoßen: data type. Danach wird eine Klasse als Datentyp gesehen. Da dieses Thema von allgemeinem Interesse ist, schlage ich vor, unter Datentyp weiterzudiskutieren.

Delegierte vs. Delegates

In der Literatur liest man in der Regel 'Delegates'. In meiner ursprünglichen Version des Textes habe ich auch das Wort Delegates verwendet. Wurde dann von jemandem verändert. Ich finde man sollte zu dem üblichen Begriff zurückkehren. --Prowal 23:41, 28. Okt 2004 (CEST)

sehe ich genauso - hab's gemacht. -- 23:42, 28. Okt 2004 (CEST)

'Delegate, Delegates' nach 'Delegat, Delegaten'

Ich habe versehentlich Zäh-Scharps Änderung von 'Delegate' nach 'Delegat' überschrieben. Nach wie vor halte ich das englische Delegate für passender, da es in der Literatur häufiger verwendet wird. --Prowal 16:18, 1. Nov 2004 (CET)

Ok, habe es gesehen und wiederhergestellt. "Delegat" ist die Originalbezeichnung von Microsoft. Zäh-Scharp 16:30, 1. Nov 2004 (CET)
Einverstanden, das ist ein Argument, aber meine Ausführungen zu Programmausführung der Microsoft-Implementierung und zur Standardisierung der Sprache hättest du ja nicht gleich wieder löschen müssen. Zugegeben, man kann drüber streiten ob Implementierungsdetails zu einem Artikel über eine Programmiersprache gehören, aber ich glaube, dass im Falle von C# viele Leser auch Informationen über die verbreitetste Implementierung erwarten. Richtig, das findet man auch in dem .NET-Artikel, aber ein paar Zeilen dazu fände ich nicht verfehlt. Und Infos über die Standardisierung durch die ECMA und andere Implementierungen gehören definitiv in den Artikel. Prowal 20:49, 1. Nov 2004 (CET)
Dieses Mal liegt der Fehler auf meiner Seite. Mir ist nicht ganz klar, wie das passiert ist, jedenfalls habe ich die Zeilen soeben wiederhergestellt. Ich habe auch die Zeilen zu .NET wiederhergestellt, obwohl ich finde, dass sie hier tatsächlich nicht so gut aufgehoben sind, aber ich wollte erst einmal meinen Fehler wieder rückgängig machen. Zäh-Scharp 19:03, 2. Nov 2004 (CET)

Verschiedene Anmerkungen zum Artikel

  • Das Konzept könnte besser erklärt sein. Es werden Attribute und Delegaten erläutert, also zwei sehr spezielle Themen. Hier sollte statt dessen genauer auf das generelle Konzept eingegangen werden. Attribute und Delegaten sind übrigens auch nicht gerade Besonderheiten, in denen sich C# von anderen Programmiersprachen abhebt, vielleicht sollte man also etwas anderes heraussuchen.
  • Im Abschnitt zur Programmausführung wird - anstatt Allgemeines zu beschreiben - eine spezielle Implementierung herausgegriffen (der Microsoft-Compiler). Wer sich nicht auskennt, muss den Eindruck gewinnen, dass es sich um allgemeingültige Eigenschaften der Sprache C# handelt. [nach .NET verschoben]
  • Die Weblinks, die sich in erster Linie auf .NET beziehen, sollten auch nicht hier auftauchen (sollten ggf. in den .NET-Artikel) [entfernt]
  • "Bytecode" ist Java-Sprachgebrauch. Außerdem bezieht es sich auf die Ausführungsumgebung und nicht auf die Programmiersprache C#.
  • Es ist ohne weitere Erläuterungen zu schwer zu verstehen, was mit "Stack-basierter" VM gemeint ist. Dies bezieht sich ebenfalls auf die Implementierung statt auf die Programmiersprache C#.
  • Just-In-Time-Compiler bezieht sich auf die Laufzeitumgebung. Hier sind wir meilenweit von der Programmiersprache C# entfernt.
  • Die Hinweise auf die Standardisierung durch die ECMA sind eine interessante Information. Sie passen gut in den Artikel.
  • Der "Programmierkurs bei Wikibooks" ist meiner Meinung nach noch nicht so weit, als dass man ihn hier empfehlen sollte; ebensowenig der Terra-Kurs. [entfernt]

Zäh-Scharp 11:33, 11. Nov 2004 (CET)

  • Der Artikel enthält eine Marketing-Aussage, die einen falschen Eindruck erwecken. Leider wird häufig "effektiv" auch als "performant" missverstanden. Dass man mittels Custom Attributes und Reflexion Code erstellen kann, der sehr allgemeingültig ist, ist richtig, nur leidet die Performanz darunter so stark, dass man dann unter Umständen mit den Mitteln auf System.Reflection.Emit darauf losgehen muss. Der Abruf des Wertes einer einfachen Eigenschaft (d.h. der Getter macht nichts außer den Inhalt eines Feldes zu liefern) per Reflexion ist, nach meinen Tests, etwa 400 mal langsamer als der (nicht-erste) Aufruf eines Delegaten, der aus einer DynamicMethod erzeugt wurde, um genau die gleiche Eigenschaft abzurufen. Die Möglichkeiten der dynamischen Codegenerierung sind aber wieder .NET-spezifisch und haben nichts mit C# zu tun. Ich wüsste momentan nicht, wie ich den Artikel so verändern sollte, dass einerseits dieser Punkt unmissverständlich wird, dass andererseits aber keine langen Ausschweifungen zu .NET nötig sind...
  • Sichtbarkeitseinschränkungen von Gettern und Settern sind keine besondere Fähigkeit von C#, das geht mit C++/CLI auch [entfernt]:
	private:
		int m_someField;
	public:
		property int SomeProperty {
		public:
			int get() {
				return m_someField;
			}
		protected:
			void set(int newValue) {
				m_someField = newValue;
			}
		}

Alexander Noé 11:32, 22. Mai 2008 (CEST)

Die Liste der externen Links ist meiner Meinung nach zu lang. Mit den Microsoft-Links sind eigentlich schon die wichtigsten Bereiche abgedeckt. Zudem habe ich bei einigen Links Bedenken, ob sie dem Qualitätsanspruch von Wikipedia gerecht werden. Auf der Abschussliste stehen meiner Meinung nach die folgenden Links:

  • www.guidetocsharp.de (nicht erreichbar)
  • c-sharpcorner.com
  • www.mycsharp.de

Was meint ihr? Zäh-Scharp 23:03, 16. Jan 2005 (CET)

kann ich nur zustimmen. --LoopAnyway 22:38, 19. Aug 2005 (CEST)

Ich war immer gegen Werbung in der Wikipedia, dennoch sehe ich diese Links nicht als Werbung sondern als Hilfe für Leute die sich in dem Berreich C# Weiterbilden möchten. Ich selbst war am anfang auf der suche nach solchen Links. --N. Burkhoff 14:10, 4. Aug 2006 (CEST)

Vorschläge Kopfzeile

Ich möchte einen Vorschlag für eine neue Kopfzeile machen, die (imo) die wesentlichen Einflüsse von C# besser reflektiert:

C++

Microsoft

.Net

Sinngemäß: "C# ist eine im Wesentlichen von C++ abgeleitete Sprache. Sie wurde von Microsoft entwickelt und erlaubt die Erzeugung eines CIL-Codes, der im .Net-Framework verwendet wird."

Als nächsten Satz könnte man z.B. auf objektorientierung, Einflüsse von Java eingehen, auf Attribute aka Reflection, den begriff managed code usw.

Begründung: Der hinweis auf c++ ist informativer als "objektorientiert", wie es im moment lautet. Außerdem ist nicht ganz klar was heißen soll "C# [...] ist eine objektorientierte Programmiersprache, die [...] eingeführt wurde.

Wo wurde c# eingeführt, und wie tief ? imo kann hier nur "der markt" gemeint sein. Das sollte dann dort aber auch stehen. Soweit ich weiß hat microsoft C# entwickelt und dann "den markt" damit penetriert. Den zweiten Teil würde ich allerdings nicht in wiki schreiben.

Ich bitte um Kommentare.

Mit bestem Gruß (KL) --213.39.191.230 10:18, 13. Dez 2005 (CET)

Wie belegst du deine Behauptung, "C# ist eine im Wesentlichen von C++ abgeleitete Sprache. – ? – Zäh-Scharp 16:41, 17. Dez 2005 (CET)
Es wird der gleiche Denkfehler wie bei Java damals gemacht: Sieht ähnlich aus, weil man sich bei der C++ Syntax bedient hat und schon wird C++ zum Vater. Java hat mehr mit Smalltalk gemeinsam als mit C++ und C# ist Java in vielen Punkten sehr ähnlich. Wenn man heute eine neue Sprache etablieren möchte, tut man gut daran die Syntax von C++ zu übernehmen, weil diese aus C++ und Java rund 80% der Entwickler bekannt ist. Da hat damals Sun begriffen und mit C# auf Microsoft. C++ Syntax scheint ein Erfolg-Faktor zu sein, das gilt auch für PHP. C# ist eine Mischform und bedient sich Konzepten aus C++, aus Java, auf Smalltalk, Eiffel hab ich entdeckt - man findet bestimmt noch einige mehr. Man darf dabei auch nicht übersehen, das C++ konzepte jüngerer Sprachen in späteren Standards übernommen hat. Die ersten C++ Versionen Anfang der 90er Jahre kannten weder Exceptionhandling, Templates oder Reflection. Und nocht nicht einmal die C++ Synstax stammt von C++, sondern von C ;-) Die erste Sprache welche vergleichbare Konzepte bediente und bei der alle moderneren Sprachen abgeschaut haben, war Smalltalk.

Ich hab nicht vor, darüber jetzt ein Buch zu schreiben. Jedenfalls sollte dort genau eine Sprache genannt sein, die mit C# die engste Verwandschaft aufweist. Dies kann sicher nicht C sein, da der Sprachumfang wesentlich geringer ist. Sollte jemand für eine alternative Sprache plädieren (also nicht-C++) , sollte er dies konstruktiv vorschlagen. imo. Besten Gruß (KL) --Kai-L 12:42, 21. Dez 2005 (CET)

Symbolik "C#"

Auf der Seite über das Hash-Symbol ist ein extra Abschnitt, in dem klar darauf hingewiesen wird, dass die Raute nicht das korrekte Zeichen für das Cis bzw. "C sharp" ist. Darunter wird sogat explizit auf C# eingegangen, und erklärt, dass "C#" in Wirklichkeit ein musikalisches Erhöhungszeichen im Namen trägt. Ich kenne mich mit C# nicht aus, und kann dementsprechend den Wahrheitsgehalt dieser Aussage nicht bewerten, entspricht dies jedoch den Tatsachen, denke ich, sollte man den entsprechenden Abschnitt hier erweitern, und die Problematik verdeutlichen - insbesondere in Anbetracht der Tatsache, dass die Erläuterung zum Titel klar sagt "Der korrekte Titel dieses Artikels lautet „C#“.". (Was, glaubt man dem Hash-Artikel, technisch gesehen eine Falschaussage ist)

Charly, 172.182.29.42 17:15, 4. Jan 2006 (CET)
Laut einer E-Mail von MS in der englischen Wikipedia ist C# der Einfachheit halber ok und wurde auch so standardisiert. Mit # ist ♯ gemeint. Es ist wohl das beste, wenn man geschrieben bei C# (als C-Sharp) bleibt und auf Grafiken oder so es als C♯ darstellt. MS stellt in Visual C# 2005 Express das Zeichen im Icon und auf der Start Page als ♯ dar.
--89.53.118.2 13:02, 24. Feb 2006 (CET)

In 3 Jahren C#-Entwicklung ist mir noch keiner dieser "scherzhaften Namen" über den Weg gelaufen. Auch google gibt keine Treffer, die die Relevanz dieser Bemerkung rechtfertigen würden. --Timekeeper 10:17, 20. Sep 2006 (CEST)

Da das jetzt such noch mehr von diesen lustigen Namen werden, möchte ich noch mal auf die Überflüssigkeit dieses Absatzes hinweisen. Das ist absolut unwissenschaftlich und trägt zur Erklärung des Themas nicht bei. Wörter wie "C-Schweinegatter" drücken eigentlich nur die subjektive Meinung einiger Autoren aus. Und auch das neue "C-Knast" ist nur ein weiteres Beispiel dafür. Die Erklärung im englischen Beitrag sind da wesentlich informativer. Wenn niemand etwas dagegen hat lösche ich diese Sätze. --Timekeeper 18:38, 9. Okt. 2006 (CEST)

Ich wäre auch dafür den Satz mit "Der korrekte Titel dieses Artikels lautet „C#“." zu löschen, da das schlicht falsch ist, auch wenns der Einfachheit so akzeptiert wird. Da könnte man ja auf den entsprechenden Absatz verweisen, aber davor den korrekten Namen der Sprache setzen. Wenn niemand was dagegen hat, dann würde ich das so machen.--JDF 14:01, 12. Sep. 2007 (CEST)

C#-Quellcode-Dateien?

Welche Endung haben C#-Quellcode-Dateien? --RokerHRO 15:07, 17. Mär 2006 (CET)

Falls noch mehr gibt bitte erweitern, die Symbol-Icons müsste mal jemand erstellen, falls es sie hier noch nicht gibt?! --FireDragon 23:16, 18. Mär 2006 (CET)
Symbol Dateiendung Typ
Datei:WindowsIcon-sln.png .sln Microsoft Visual Studio Solution
Datei:WindowsIcon-suo.png .suo Visual Studio Solution User Options
Datei:WindowsIcon-cs.png .cs Visual C# Source file
Datei:WindowsIcon-resx.png .resx .NET Managed Resources File
Datei:WindowsIcon-csproj.png .csproj Visual C# Project file
Datei:WindowsIcon-settings.png .settings Visual Studio Settings-Designer File
Die Bilder sind alle weg, sind wohl wegen Lizenzproblemen gelöscht worden. :-) --RokerHRO 10:33, 6. Jun 2006 (CEST)

C#-Version eigentlich 3.0?

Im Artikel LINQ ist von einer hier nicht näher erläuterten C#-3.0-Version die Rede. Im Wikipedia-Artikel ist die C#-Version 2.0 auf 2005 datiert. --NeutralstandpunktDiskussion Beiträge 17:48, 22. Okt. 2007 (CEST)

C# 3.0 ist als Beta zusammen mit dem .NET Framework 3.5, das die Möglichkeiten der neuen Version nutzt verfügbar. Jedoch eben noch nicht final. --L'ottimo 19:07, 22. Okt. 2007 (CEST)
In diesem Zug sollte auch die neue Visual Studio Version nicht vergessen werden--Kevka 08:17, 3. Mär. 2008 (CET)

Objektorientierung und Datenkapselung

Der Abschnitt über den Zweifel an der Objektorientierung mangels Datenkapselung sollte dringend überarbeitet werden. Es wird nicht wirklich klar, was C# fehlt um Datenkapselung anzubieten. Es scheint so, als wäre hier der Autor mit dem Sprachelement "Properties" nicht ganz klar gekommen und hat daraus falsche Schlüsse gezogen.

Ich bin dafür das der ganze Abschnitt verschwindet.Der ergibt so wirklich keinen Sinn. Meinem Vorredner muss ich mit seiner Einschätzung beipflichten...Da werden 2 Dinge miteinander verwurstet die so eigentlich nichts miteinander zu tun haben...--Bitsandbytes 17:38, 5. Mär. 2008 (CET)
Hier nochmal zur Verdeutlichung der Problematik eine Konkretisierung. In C# werden via Properties Referenzen auf die Datenmember herausgegeben. Sind diese Datenmember nicht immuteable, so erlaube ich den ändernden Zugriff von außen. Dies ist mit Sprachmitteln in realen Projekten mit hunderten und tausenden von Klassen nicht zu verhindern - wenn auch der geschickte Einsatz von Interfaces dies entschärfen und punktuell verhindern kann. Zudem scheint bei den Entwicklern heute dieser Aspekt und die resultierenden Gefahren nicht mehr präsent zu sein. In C++ werden solche Probleme z.B. von PCLint aufgedeckt und angemahnt. (PeterReut) 14:20, 28. Dez. 2008 (CET)

Compiler für C#

Ich vermisse hier die Information, welche Compiler für C# es gibt,ob Bytecode oder Maschinencode erzeugt wird, usw.

Siehe .NET bzw erster Satz im Artikel --Bitsandbytes 17:30, 5. Mär. 2008 (CET)
Aus dem „ersten Satz im Artikel“ kann ich so etwas nicht entnehmen. Nach etwas stöbern, kombiniert mit einer Prise Vorwissen stellt sich die Sache für mich wie folgt dar:
  • C# wird in einen Bytecode (kein auf Java beschränkter Begriff) gemäß dem Standard Common Language Infrastructure (CLI) übersetzt
  • Der Bytecode ist für die Virtuelle Maschine was Maschinencode für den Prozessor ist; sowohl Java als auch C# sind compilierte Sprachen
  • Die CLI ist vergleichbar dem Bytecode von Java, mit dem Unterschied, daß die CLI den Bytecode mehrerer Programmiersprachen spezifiziert (üblicherweise als .NET-Sprachen bezeichnet), während der Java-Bytecode Unabhängigkeit von der Plattform im Sinne von Betriebssystem und Prozessorarchitektur zum Ziel hat
  • .NET ist eine Implementierung der CLI
Alles korrekt soweit? Vielleicht könnten wir diese Informationen sinnvoll im Artikel unterbringen. --Tobias 14:38, 13. Jun. 2008 (CEST)

Version 3.5

Es gibt von C# keine Version 3.5, das wird wohl mit der Version von .NET verwechselt. Deren Versionierung ist aber nicht synchron! Die aktuelle Version ist 3.0, die nächste wird 4.0 sein.

Stimmt, habs geändert --Bitsandbytes 20:55, 22. Nov. 2008 (CET)
Das Problem ist wieder da. Der aktuelle, verlinkte ECMA Standard ist die "4th edition" und definiert C# 3.0 - und ist übrigens von 2006, nicht 2008.--93.128.222.70 18:37, 22. Mai 2009 (CEST)

Mehr Details gewünscht

Gerade im Vergleich zu den Artikeln über C++ oder Java finde ich diesen hier etwas mager. Es sollte meiner Meinung nach etwas genauer auf die Sprachfeatures, auch in der Entwicklung über die verschiedenen Versionen von C#, eingegangen werden. Eine Auflistung der wichtigsten Features, nach Version, mit jeweils kurzer Erläuterung sollte zunächst schon genügen. Ideen hierzu? -- bsdev 01:27, 23. Nov. 2008 (CET)

Siehe Sprachelemente von C-Sharp und .NET --Bitsandbytes 09:24, 23. Nov. 2008 (CET)
Danke für den Hinweis zu dem Artikel, den hatte ich noch nicht gelesen. Ich verstehe den genannten Artikel aber mehr als Anschauungsbeispiel für die Syntax von Sprachkonstrukturen, wie z.B. Kontrollstrukturen. Mir ging es aber um die Auflistung und (möglichst kurze aber prägnante) Erläuterung von Dingen wie Generics, Nullable Types, partielle Klassen und Methoden etc. 11:36, 23. Nov. 2008 (CET)

C# / C-Sharp

Gerade sehe ich, dass in der französischen WP bei dem Artikel der Titel C# verwendet wird. Warum bei uns nicht? Es gibt ja dieses {{DISPLAYTITLE:Lemma}}. --Cubefox 18:17, 14. Aug. 2009 (CEST)

Die Sprache heißt nunmal "C-Sharp" und nicht "C-Doppelkreuz". Google-Suche nach "C-Sharp" ergibt 334 Mio. Treffer, nach "C#" lediglich 42 Mio. Das korrekte Symbol wäre übrigens nicht das Doppelkreuz #, sondern das typographisch ähnliche Zeichen ♯. MetalTux 16:39, 11. Okt. 2009 (CEST)
@MetalTux: Ich kann Ihre Argumentation absolut nachvollziehen. Allerdings ist "C#" nun mal das von Microsoft eingeführte Synonym für "C-Sharp". Warum sollte man es dann nicht auch so verwenden? Ich persönlich finde den Namen "C-Sharp" verwirrend, zumal ich noch keine Literatur gefunden habe, die "C-Sharp" anstelle von "C#" einsetzt. Warum also vom Standard abweichen? Allerdings sind bei der Wahl des Titels wohl eher die technischen Restriktionen des Wikis ausschlaggebend. Demzufolge ist "#" ein Sonderzeichen und nicht in Titeln erlaubt. Dutze 14:05, 01. Feb. 2010 (CEST)

'Marksoft' und angebliche Betriebssystemabhängigkeit

Irgendjemand besteht seit Monaten darauf, dass C# nur auf Microsoftbetriebssystemen laufe. Ist natürlich Unsinn, eine allgemeinverwendbare Sprache wie C# kann prinzipiell auf jedem Betriebssystem implementiert werden. Wie ja auch das Mono-Projekt zeigt. Dass die Microsoft-Implementierung bzw. die zugehörige Klassenbibliothek Windows-Betriebssysteme besonders unterstützt ist nicht verwunderlich. Spricht aber nicht gegen C# bzw. 'Marksoft' wie der 'jemand' nicht müde wird immer wieder einzutragen. Ich gehe lösche seine diesbezgl. Ergänzungen wieder. --Prowal 23:47, 28. Okt 2004 (CEST)

Offensichtlich wird auch von der selben Person immer wieder C# mit .NET gleichgesetzt. C# ist aber nur eine von vielen .NET-Sprachen. Wir haben einen ausführlichen Artikel zum Thema .NET, in dem auch die Marketingziele von Microsoft beleuchtet werden. Ich schlage deshalb vor, die Passage, in der C# zum Anti-Java-Marketingblablaziel aufgebauscht wird, zu entsorgen. Unser .NET-Artikel beschreibt das Marketingkonzept. --22:06, 30. Okt 2004 (CEST)
C# ist wegen der .NET-Framework laut Spezifikation Plattformunabhängig. Das Problem ist jedoch das Microsoft nicht für jedes Zielsystem die .NET-Framework Laufzeitumgebung zur Verfügung stellt. -- Martin Wantke 23:42, 20. Jul. 2010 (CEST)
Programmiersprachen sind ja per se alle Betriebssystemunabhängig. Mit Betriebssystem wird hier gemeint (siehe Vorlage:Infobox Programmiersprache: "Auf welchen Betriebssystemen laufen Programme, die mit dieser Programmiersprache geschrieben wurden? Dies kann eine Angabe sein wie plattformübergreifend, wenn die mit dieser Programmiersprache geschriebene Software auf prinzipiell jeder Software Plattform läuft.". Letzteres ist für C# & .Net natürlich nicht der Fall. So wie es aktuell schon seit Jahren drinnen steht ists korrekt. --Sebastian.Dietrich 19:31, 21. Jul. 2010 (CEST)

Das alte Konzept einer virtuellen Maschine

Zum x-ten Male löscht ein Anonymus mir den Satz "Das selbe Konzept ist schon lange von anderen Programmiersprachen bekannt z.B. von Smalltalk, Java oder Python." Immer mit der Bemerkung "mit Sicherheit nicht das selbe Konzept".

Ich würde den Satz gerne behalten, ist doch interessant, dass diese Idee uralt ist, siehe auch die Beiträge zu Bytecode und virtuelle Maschine. Wenn nichts dagegen spricht, werde ich den Satz demnächst wieder einfügen, mit Links zu diesen Beiträgen. --Prowal 14:43, 1. Nov 2004 (CET)

Ja, das ist ein interessanter Aspekt. Allerdings finde ich, sowas gehört nach .NET anstatt nach C#, denn es ist ein Aspekt der Plattform und nicht der Programmiersprache. (nicht signierter Beitrag von 62.138.203.80 (Diskussion | Beiträge) 18:47, 1. Nov. 2004 (CET))

Der Einwand mit der Plattform ist imo berechtigt, jedoch muß für den compiler erkennbar sein, wo native code bzw. libs verwendet werden. Dies ist bei c# der fall und daher ist c# .net-fähig. Wenn anonymus den satz löscht "Das selbe Konzept ist schon lange von anderen Programmiersprachen bekannt z.B. von Smalltalk, Java oder Python.", dann ist es vermutlich die marketing-abteilung von microsoft, weil hier c# tendenziell negativ dargestellt wird. Außerdem steht anzumerken daß unter "Konzepte" nur äußerst vage andeutungen gemacht, also appetithäppchen gestreut werden. Der Leser erfährt nichts konkretes und muß sich anderswo schlau machen - für ein wiki unwürdig imo. Das konzept der MSIL aka CIL aka virtuelle maschine aka zwischensprache mit verweis auf andere sprachen gehört (wieder imo) sehr wohl in die liste der konzepte von C#. Aber wenn microsoft wiki sponsert, denn natürlich nicht. Mit bestem Gruß (KL) (nicht signierter Beitrag von 213.39.191.230 (Diskussion | Beiträge) 10:49, 13. Dez. 2004 (CET))

Enorme Ressourcen

(...) Microsoft setzt enorme Ressourcen für die Entwicklung von .NET ein.

"Enorme Ressourcen" klingt etwas unspezifisch und subjektiv (um nicht zu sagen "unenzyklopädisch" ;-), kann man das eventuell genauer beziffern? Womöglich sogar noch mit Quellenangabe? 145.254.33.232 00:03, 19. Sep. 2007 (CEST)

C# = C++++ ?

"Zudem kann das Sharp-Symbol # als ++++ gesehen werden, also C++ als Weiterentwicklung von C und "C++++" als Weiterentwicklung von C++."

Kann mir jemand erklären, warum das so sein soll? Meiner Meinung würde C++++ das zweifache Inkrement von C bedeuten, C# allerdings,wenn man das # aus der Musiktheorie nimmt, nur ein halbes Inkrement von C, da das # für die Erhöhung eines halben Tonschrittes gilt. --80.133.150.244 14:47, 6. Jun. 2007 (CEST)

Soweit ich das weiß ist die Anspielung mit den ++++ nur darauf zurückzuführen, dass man # quasi aus 4 + zusammensetzt. C# ist ja schon prinzipell komplett unterschiedlich zu C++
Tendenziell hat C# mit Java wesentlich mehr zu tun als mit C oder C++, das nur vorweg. [Diese Aussage ist subjektiv, wird mir aber groesstenteils bestaetigt werden denke ich] Das diese Sprache nun den Titel "C" enthaelt, ist vermutlich mehr oder minder ein Marketinggag, wie die Behauptun Java wuerde von C abstammen. Es ist eine einfache Tatsache dass die Lebendigkeit und Dauerhaftigkeit einer Programmiersprache von der Akzeptanz innerhalb der Szene abhaengig ist, und diesen Weg geht man nunmal gerne ueber den Buchstaben "C", mit dem hinzukommenden "#" laesst sich das Ganze eigentlich nur noch als Interpretationssache betrachten. Kannst ja mal den Presse-Beauftragten der .NET Abteilung von Microsoft anrufen und fragen. :> Das ist nicht anders als die Umdichtung von Oak nach Java und der Gruendung der ominoesen Theorie der Kaffeebar - just marketing. --Schwarzer8Kater 15:54, 5. Okt. 2007 (CEST)
Zustimm. --85.216.16.64 12:26, 16. Jan. 2008 (CET)
Ich habe auch von den vier "+" gehört. "++" und darunter nochmals "++" ergibt "#" - zumindest auf dem Papier. Bleibt die Frage, ob das in den Artikel übernommen werden soll. --didi, 11. Apr. 2008 (CEST)

Im Abschnitt "Konzept" wird das Wort "Attribut" zu Attribut (UML) verlinkt was aber falsch ist! Auf der Ebene der Programmiersprache ist mit dem (zugegeben falsch verstehbaren) Wort "Attribut" wohl aber eher das Konzept gemeint, was unter Java als "Annotation" bezeichnet wird. Daher wäre dieser Link richtig, wobei im Artikel Annotation auch auf den Begriff "Attribut" in C# aufmerksam gemacht werden müsste. Sehe ich das soweit richtig? (nicht signierter Beitrag von 92.73.168.103 (Diskussion | Beiträge) 19:09, 18. Jul. 2008 (CEST))

Naja keine Bange, ich habe den Link selbst entfernt! (nicht signierter Beitrag von 92.73.167.54 (Diskussion | Beiträge) 13:13, 26. Jul. 2008 (CEST))

Etwas komische ausdrucksweise

Im Artikel werden oft Delegierte erwähnt, gemeint sind damit Offensichtlich Delegates. Ich habe bisher in keinem Deutschen Fachbuch / Buch über C# den Begriff so gesehen. Dort wird fast immer nur über Delegates geredet. Sollte man das vielleicht ändern? (nicht signierter Beitrag von 80.140.126.160 (Diskussion | Beiträge) 20:18, 16. Okt. 2004 (CEST))

Marktsituation

Sind die Angaben bei der Marktsituation (.NET 1.1 bei XPSP2 enthalten, .NET2.0 bei Server 2003) korrekt ? Wie kann das sein, wenn z.B. das .NET 2.0 Framework erst 2005 fertig wurde ? (nicht signierter Beitrag von 84.58.23.215 (Diskussion | Beiträge) 06:39, 26. Mai 2007 (CEST))

Konzept: ... gibt es nur in C#

Die letzten Zeilen aus dem Abschnitt Konzept stimmen nicht: "Im Gegensatz dazu gibt es anonyme Methoden jedoch nur in C#. Auch statische Klassen gibt es nur in C# 2.0. Gleiches gilt für Kovarianz bzw. von Kontravarianz bei Delegaten."

Laut MSDN gibt es sowohl anonyme Methoden, als auch das Konzept der statischen Klassen in anderen .NET-Sprachen. Dazu die Links:
Anonyme Methoden und Codeanalyse
Static Class Design (Die deutsche Version hat einen Übersetzungsfehler, der die Aussage ziemlich verdreht.)

Wie es mit Kovarianz und Konztravarianz aussieht weiß ich nicht, wobei das ja auch eher ein grundsätzliches Problem von .NET, als von C# ist. Deshalb denke ich, dass das auch in anderen .NET-Sprachen möglich ist. Das ist allerdings reine Mutmaßung.

Oder sollte der zitierte Abschnitt vieleicht heißen, dass besagte Elemente erst ab C# Version 2.0 zur Verfügung stehen und vorher noch nicht? Dann müsste der Abschnitt allerdings umformuliert werden.

Habe Kovarianz und Kontravarianz bei Delegaten in VB (VS 2008) getestet. Geht da auch. -- KleinerHerbert 18:33, 23. Jun. 2008 (CEST)

Hallo Welt

Ich habe den Code mal korrigiert, denn System.WriteLine() gibt es nicht, es muss System.Console.WriteLine() heissen. Ebenfalls habe ich die Klasse auf das von VS typische generierte "Program" geändert, in dem sich die Einstiegsfunktion Main() befindet. -- 13:14, 23. Nov. 2008 (CET)

Features

Zitat: "Ab der Version 2.0 von C#, das mit .NET-Framework 2.0 freigegeben wurde, unterstützt C# neben generischen Typen (engl. generics) auch anonyme Methoden, Generatoren und partielle Klassen. Generische Typen, Iteratoren und partielle Klassen sind Bestandteil des .NET-Frameworks 2.0 und stehen somit auch anderen .NET-Programmiersprachen, wie z. B. VB.NET, zur Verfügung."

Diese Aussage ist grundsätzlich in folgenden Punkten falsch:

1.) Das .NET Framework weiß nichts von partiellen Methoden, diese sind lediglich ein Compiler-Trick.

2.) Streng genommen weiß das Framework auch über Iteratoren (im Sinne von C#-Iteratoren mittels yield) nichts, auch hier generiert der Compiler nur für den Programmierer den eigentlich nötigen Code

Irgendwelche Einwände? Ansonsten ändere ich das.

--81.10.150.42 23:36, 29. Dez. 2008 (CET)

SQL ist keine Programmiersprache

Im ersten Abschnitt heißt es: C# greift Konzepte der Programmiersprachen Java, C++, SQL, C sowie Delphi auf.

SQL ist aber keine Programmiersprache, sondern eine Datenbankanfragesprache. (nicht signierter Beitrag von 62.143.246.139 (Diskussion | Beiträge) 14:20, 5. Mär. 2009 (CET))

Features und Evolution

Mir kommt die chronologische Entwicklung der Features zu knapp weg und ist unvollständig bzgl. aktueller Entwicklungen. Ich würde eine Herangehensweise wie im englischen Artikel (features in version x.y) bevorzugen, jedoch muß das nicht so ausführlich sein: Für die Syntax gibt es ja einen eigenen Artikel. (nicht signierter Beitrag von 84.130.165.79 (Diskussion | Beiträge) 12:56, 23. Mai 2009 (CEST))

Ungültiges Archivierungsziel

Die Zielangabe bei der automatischen Archivierung dieser Seite ist ungültig. Sie muss mit demselben Namen wie diese Seite beginnen. Wende dich bitte an meinen Besitzer, wenn das ein Problem darstellen sollte. ArchivBot 03:39, 22. Aug. 2010 (CEST)

erledigtErledigt Harry8 09:30, 22. Aug. 2010 (CEST)

C# 5.0 offensichtlich veröffentlicht

Moin, bin gerade über diesen Artikel bei heise.de gestolpert: http://www.heise.de/developer/artikel/WinRT-in-klassischen-NET-Anwendungen-nutzen-1366039.html und der verlinkt zwar nicht zu MS, aber hier hin: http://www.it-visions.de/Lex/6250.aspx

Demnach gibt es eine neue C#-Version. Weiß jemand mehr dazu?

PS: Google liefert http://blogs.msdn.com/b/ericlippert/archive/2010/10/28/asynchrony-in-c-5-part-one.aspx Der Autor ist beim C#-Kompilierungsteam. http://social.msdn.microsoft.com/profile/eric%20lippert/ (Disclaimer: Da ich mir noch keinen Account hier angelegt habe, habe ich keine Lust, eine Änderung einzupflegen, die binnen Sekunden gelöscht wird) (nicht signierter Beitrag von 134.109.84.112 (Diskussion) 11:54, 30. Okt. 2011 (CET))

Derzeit ist die Beta und Developer Preview von C# 5.0 und der zugehörigen IDE VS2011 verfügbar (seit Mitte Feb. 2012). Hierbei ist jedoch nicht von einem Release zu sprechen, sondern halt (a la Win8) nur von einer Preview, welche nicht auf Produktivsystemen genutzt werden sollte. Siehe [3] und [4]. --Weichwareentwickler (Diskussion) 11:06, 16. Mär. 2012 (CET)

Lehrbuch zu C#

Hallo !

Ursprünglicher Literaturverweis: H.M. Deitel: Visual C# 2008 How to Program . Prentice Hall, ISBN 978-0136053224. ( Buch in Englisch : aber das beste "Lehrbuch" am Markt !! Führt dich von Beginner bis Fortgeschritten).

Warum wurde das Lehrbuch von Deitel wieder aus der Literaturliste raus gelöscht? Sind nur deutsch sprachige Bücher erlaubt? Oder gibts andere Gründe ?


Also dieses "Lehrbuch" von Deitel zeichnet sich dadurch aus das es dich auf einen geführten Weg vom Anfänger bis zum Fortgeschrittenen führt. Aufbau sehr ähnlich wie die Pearson Studiumsbücher. Es wird sehr viel wert auf Übungen gelegt. Nach jedem Kapitel wird mit Übungen das gelernte vertieft, also bitte nicht mit Beispielen die zum abtippen sind zu verwechseln, sondern Übung heißt man bekommt eine Aufgabe gestellt die man dann in Code umwandeln soll ... (sorry für die ausführtliche Erklärung, aber manche lesen zu schnell drüber und verwechseln Beispiele abtippen mit Übungen zu lösen bei denen man selbst programmieren muß) ... und das ist Lerntechnisch sehr wertvoll da man selbst eine Lösung entwerfen muß. Dabei merkt man gleich ob man den zuvor durchgemachten Lehrstoff wirklich intus hat oder nur oberflächlich. Also genau das richtige um eine Sprache zu lernen, das heißt eben üben und üben und üben. Viele denken Sie brauchen nicht zu üben und versuchen sich eigene Übungen einfallen zu lassen. Nachteil ist das Sie dadurch wahrscheinlich nicht diesen Erfolg haben werden, weil Sie eben vorher nicht wissen können welche Fallstricke die Sprache hat und auf was besonders Wert gelegt werden sollte, und ein Trainer mit langjähriger Erfahrung kennt ja die Fallstricke und hat Erfahrung mit der Wissensvermittlung .... sollte er zumindest ... :-).

Viele denken das Sie sich das Geld für so ein teures Lehrbuch ersparen und online lesen ... ( z.B.: Gallileo) ... oder kaufen sich ein Handbuch. Aber Handbuch ist eben nicht "Lehrbuch", wobei ein Handbuch meiner Meinung unverzichtbar ist. --> ( für alle wie ich die ein Buch benötigen um zu lernen und nicht so gerne am Bildschirm lesen  ;-). )

Also mir ist unverständlich warum dieses Lehrbuch welches aus der Literaturliste heraus genommen wurde. Ich habe bei meiner Recherche kein adäquates Buch auf deutsch gefunden, gibts einfach nicht, nicht in diesem Umfang und in der Qualität. Zusätzlich zu diesem "Lehrbuch" benötigt man aber trotzdem ein Handbuch a la Kühnel. Um Dinge die man in englisch vielleicht nicht richtig verstanden hat in Deutsch noch mal nach zu lesen.


Lg, Yonoto. (09:30, 12. Okt. 2010 (CEST), Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)

C# ist so ein wichtiges Schlagwort. Dieser Artikel ist eines Brockhaus würdig, aber nicht eines Wikipedia-Artikels.

jämmerlich kurz veraltet unwürdig

Aber Änderungen sind erst möglich, sobald sie gesichtet wurden. Erbärmlich. (nicht signierter Beitrag von 79.196.124.83 (Diskussion) 16:11, 7. Jun. 2012 (CEST))

Nein, Änderungen können erst gesichtet werden, nachdem sie gemacht worden sind. In diesem Sinne -- ZZ (Diskussion) 16:43, 7. Jun. 2012 (CEST)

Fehler gefunden mit der Versionsnummer und der veröffentlichung

Am Anfang steht folgendes geschrieben: [fehler] Die aktuelle Version C# 5.0 wurde im Jahr 2012 gleichzeitig mit dem Microsoft .NET Framework 4.5 veröffentlicht. [/fehler]

Und rechts daneben steht: Aktuelle Version: 5.0 (15. August 2010)


Da stimmt doch was nicht. Am Anfang wird gesagt das die Version 5 im Jahr 2012 veröffentlich wurde. Und in der Informationsanzeige von C# rechts steht beschrieben das es am 15.8.2010 veröffentlicht wurde


Mit freundlichen Grüßen (nicht signierter Beitrag von 132.252.172.157 (Diskussion) 11:26, 11. Okt. 2012 (CEST))

Es wurde nur vergessen, das Jahr zu aktualisieren. Danke für den Hinweis. Curtis Newton 12:55, 11. Okt. 2012 (CEST)

Namensgebung

Sollte die Interpretationsmöglichkeit, dass das # in C# als vier direkt aneinander geschrieben Pluszeichen gelesen werden kann und somit für C++++ steht, in den Abschnitt Namensgebung aufgenommen werden? Und sollte nicht auf die englische Aussprache als see sharp, also schärfer sehen hingewiesen werden? Alle diese Interpretation werden durch den schon verwendeten Beleg, nämlich das Vorwort des Buches C# mit Methode, gedeckt. --87.184.172.104 12:30, 21. Mai 2013 (CEST)

"#" auf der Tastatur.

Der Satz "Da das Kreuz allerdings auf keiner Standardtastatur direkt eingegeben werden kann,..." ist unsinnig. Das "#" befindet sich rechts neben dem "ä". --92.74.164.190 19:35, 27. Jun. 2013 (CEST)

Lies den Satz zuende und vergleiche ♯ und #. --YMS (Diskussion) 19:45, 27. Jun. 2013 (CEST)

XNA keine IDE

Habe gerade den Abschnitt Verfügbarkeit von integrierten Entwicklungsumgebungen gelesen und es wundert mich, dass XNA dort als IDE bezeichnet wird. Ich habe viel damit gearbeitet und bin mir ziemlich sicher, dass der Begriff Framework wesentlich zutreffender wäre. XNA beinhaltet zwar ein paar Tools aber das hauptsächliche Paket sind die Librarys und Templates für die Visual Studio IDE. Wegen den zwei mini-Tools die mitgeliefert werden, würde ich das ganze nicht als IDE bezeichnen. Außerdem kommt in dem Artikel 7-mal das Wort 'Framework' vor, kein einziges mal 'IDE' und nur einmal in einem anderen Zusammenhang 'Entwicklungsumgebung'.
Da die entsprechende Zeile bereits von einer IP gelöscht und anschließend von einem Benutzer zurückgenommen wurde, lass ich die Diskussion ein paar Tage hier stehen bevor ich die Zeile wieder entferne. Also falls jemand anderer Meinung ist, können wir das hier gerne diskutieren.
Gruß --Maxkhl (Diskussion) 15:12, 27. Jan. 2014 (CET)

Hmm, also ich denke, man sollte zwischen XNA Game Studio und XNA Framework (und anderem XNA-blabla) unterscheiden. Ersteres sehen zumindest die MSDN-Schreiberlinge als IDE (de, en). Allzu falsch finde ich das auch nicht. --Daniel5Ko (Diskussion) 18:22, 27. Jan. 2014 (CET)
Danke für deine Antwort. Du hast Recht. Es wundert mich aber ein bisschen, dass die MSDN Leute das als IDE ansehen. Wenn ich in Integrierte Entwicklungsumgebung die Kriterien für eine IDE anschaue, kann ich keinen Punkt erkennen, der auf XNA zutreffen würde. Zum Beispiel:
  • "ist eine Sammlung von Anwendungsprogrammen" - das wäre der einzige Punkt der evtl. zutreffen könnte. Habe nachgeschaut und das Gamestudio beinhaltet folgende Tools: "XNA Framework Remote Performance Monitor", "Microsoft Cross-Platform Audio Creation Tool (XACT)" und zwei kleine Konsolenanwendungen die scheinbar zu XACT gehören. Ich bin mir nicht sicher ob man das als Sammlung von Anwendungsprogrammen bezeichnen kann.
  • "verfügen in der Regel über folgende Komponenten: Texteditor, Compiler bzw. Interpreter, Linker, Debugger, Quelltextformatierungsfunktion" - Das macht in dem Fall alles der Visual Studio. Lediglich die Pipelines von XNA könnte man unter den Begriff Compiler stellen. Die gehören aber wieder zum Framework.
  • "Der Entwickler wird dadurch von formalen Arbeiten entlastet und kann sich ganz auf seine eigentliche Aufgabe, die Softwareentwicklung/Programmierung konzentrieren."
Aber Microsoft spricht tatsächlich überall von einer IDE. Auch im englischen. Dennoch würde ich das XNA Game Studio nicht mit Visual Studio oder MonoDevelop gleichstellen. Das eine sind Vollwertige Entwicklungsumgebungen und das XNA Game Studio besteht aus Erweiterungen für den Visual Studio und zwei kleinen Tools. Wenn man sich die Aufzählung anschaut, könnte man meinen, XNA wäre eine eigenständige Entwicklungsumgebung - unabhängig von jeglichen Editoren.
Ich wäre dafür, dass man in diesem Artikel einen zweiten Bereich mit den wichtigsten Frameworks einfügt (und dort dann einfach vom XNA Framework redet) und im XNA-Artikel ein paar Sätze über das XNA Game Studio hinzufügt. --Maxkhl (Diskussion) 11:15, 28. Jan. 2014 (CET)

Vala?

Bisher ist Vala nur bei "Sprachderivaten" erwähnt. Ich finde das etwas arg nebensächlich da Vala, vor allem unter Linux, eine weit größere Rolle als nur irgend ein Sprachderivat eingenommen hat.

Unter Linux soll Vala nicht nur ein Derivat von C# sein sondern C# vollständig ersetzen. Ich finde das ist ein vollkommen anderer Ausgangspunkt für eine Sprache.

In Vala geschriebener Code sieht auch auf den ersten Blick (bis auf ein paar winzige Unterschiede) identisch zu C# aus und soll auch die meisten Vorteile von C# bieten, allerdings wird Vala beim Compilieren in C umgewandelt und dann normal vom GCC kompiliert.

Beispiel: http://pastebin.com/YAVChh1Q und der erzeugte C-Code http://pastebin.com/tf42utUf

Da Vala gerade einen regelrechten Boom erfährt und schon massenhaft Anwendungen in Vala neu geschrieben wurden, sowie neue entstehen (es gibt sogar unternehmen wie Yorba die sich darauf spezialisiert haben nur in Vala Anwendungen zu schreiben. Unter anderem wurden auch schon einige C# Anwendungen durch Vala ersetzt.) ist es somit auch kein Nischenprojekt mehr.

Es gibt hierzu zwar keine offizielle Aussage, aber für jedem der sich intensiver damit beschäftigt ist eig. klar, dass Vala als Ziel hat C# zu töten.

C# ist, vor allem in der Linux Welt, alles andere als bliebt und es wurden schon in der Vergangenheit C# Projekte in C++ neu geschrieben, um zu beweisen was für immense Nachteile der Einsatz von C# mit sich bringt. In der Linux Welt ist man (offensichtlich im gegensatz zu Windows), gewohnt das die Anwendungen relativ performant sind und wenig Speicher brauchen; da fällt C# in jeder Hinsicht negativ ins Gewicht.

Unter Linux nutzen im Normalfall nur einzelne Anwendungen C# (bei denen die Laufzeit wirklich vollkommen egal ist wie z.b. ein Notiz App oder sowas), wodurch man wegen einzelnen Anwendungen die komplette .NET/Mono Runtime laufen lassen muss. Auch dauert es ziemlich lange bis so eine Anwendung überhaupt mal gestartet ist und wenn dann doch mal intensive Rechenaufgaben erledigt werden sollen (z.b. Banshee der dann mal 30 FLAC in MP3 Umwandeln soll), machen sich die performance Einbußen der Runtime auch gut bemerkbar.

Da Vala keine der Nachteile von C# hat, aber Vorteile bietet die C# nicht bieten kann (z.b. lässt sich Ausnahmslos jede C-Bibliothek in Vala nutzen und jede in Vala Entwickelte Bibliothek in C) und, vor allem durch die Syntax und die Geschichte in der Vala entstanden ist, ganz klar darauf abzielt C# zu Verdrängen (und das zum. in der Linux Welt imho auch erfolgreich geschafft hat), finde ich ist es durchaus eine größere Erwähnung hier wert.

Vala kann und möchte C# ersetzen, unter diesem Standpunkt ist es mit einem 1-Zeiler unter Sprachderivate nicht wirklich getan.

47.65.214.230 00:45, 2. Mär. 2014 (CET)

Namensgebung

Ich kannte die Geschichte, dass nach C C++ kam, danach halt C++++. Die vier Pluszeichen wurden dann aber nicht nebeneinander geschrieben, sondern übereinander:

++
++

Dadurch ergab sich das C-sharp als Verbesserung (musikalisch: Erhöhung) von C bzw. C++ Hab etwas gegoogelt und eine Quelle dafür: http://www.computerworld.com.au/article/261958/a-z_programming_languages_c_/?pp=2 (nicht signierter Beitrag von 5.10.166.83 (Diskussion) 13:45, 12. Sep. 2014 (CEST))

Namenserwähnung

Wäre nett gewesen wenn Anders Hejlsberg wenigstens einmal erwähnt wurden wäre.--95.89.9.57 15:43, 24. Apr. 2015 (CEST)

Ist er (inzwischen). --TobiasVetter (Diskussion) 12:33, 20. Mär. 2016 (CET)

Online-Tutorial

Hallo zusammen, es gibt ein sehr gutes Online-Tutorial der Uni Trier für C#-Anfänger. Ich arbeite gerade damit und bin begeistert von den praxisnahen und didaktisch gründlichen Anleitungen. Auch die angeführten Beispiele sind Online gestellt. Ich möchte vorschlagen, den Link dahin in die Linksammlung am Ende des Artikels mit aufzunehmen.

https://www.uni-trier.de/fileadmin/urt/doku/csharp/v40/csharp4.pdf

GKuester, 05.11.2015 (19:41, 5. Nov. 2015 (CET), Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)

Eingepflegt. --TobiasVetter (Diskussion) 12:34, 20. Mär. 2016 (CET)

Literatur

In Anbetracht der Tatsache, dass letztes Jahr Version 6 der Sprache erschienen ist erscheint die Literatur im Artikel merklich veraltet. Es sollte zumindest angegeben werden auf welche Version der Sprache diese sich bezieht und es sollte auch neuere Literatur nachgestellt werden. --TobiasVetter (Diskussion) 14:51, 18. Mär. 2016 (CET)

Kompilierung oder Compiling

Heyho,

du hast Kompilierung mit "C" geschrieben. Also entweder Kompilierung oder Compiling. Compilierung gibt es nicht.Shareknowledgeacross (Diskussion) 10:02, 21. Jun. 2016 (CEST)

Abschnitt Sprachelemente

Die Beispiele benutzen durchweg

private class Program { }

Die Program-Klasse in einer Konsolenanwendung darf nicht private sein, da sie auf dem höchsten Level ist. Das Programm ist so nicht ausführbar. Am besten private einfach rausnehmen.

Außerdem ist kein namespace angegeben.

Würde es ändern in:

namespace ConsoleApplication {

   class Program
   {
       static void Main(string[] args)
       {
           ...
       }
   }

}

--Shareknowledgeacross (Diskussion) 10:19, 21. Jun. 2016 (CEST)

stimmt. `internal` ist das richtige Schlüsselwort — MovGP0 23:30, 14. Dez. 2017 (CET)

Ist die aktuelle C# Version nicht 6? C# 7 befindet sich, soweit ich weiß, noch in Arbeit.

Auf der Wiki Seite von C# ist allerdings unter Aktuelle Version 7.0 (7. März 2017) eingetragen.

Edit: Etwas weiter unten in der Liste ist ein Link für eine C# Webseite von Microsoft. Der Link ist nicht mehr gültig.

Sorry. Hab das erst jetzt gesehen. Aktuell ist derzeit die Version 7.2. — MovGP0 23:29, 14. Dez. 2017 (CET)

Codebeispiele: var oder typisiert?

Hallo Benutzer:MovGP0: Mit dieser Änderung bin ich nicht ganz happy. Es gilt nicht unbedingt überall als guter Stil, nun überall var zu verwenden. Das wird idR nur dort gemacht, wo der Datentyp aus dem Kontext ersichtlich ist (also bei new und dergleichen). Und MediaWiki bietet nun halt mal kein IntelliSense an, der Leser weiss nun nicht, welcher Typ dahinter steckt (denn: Es lesen hier idR nur solche, die nicht mit C# bzw. NET Framework vertraut sind). Ich würde das daher umstellen (beim gleichen VB.NET-Beispiel sind die Typen ja auch geblieben). --Gr1 (Diskussion) 23:19, 14. Dez. 2017 (CET)

Ich sehe da überall die zugehörigen Datentypen auch ohne IntelliSense, auch wenn überall `var` steht. Zugegeben ist das eine Erfahrungssache die nicht jeder Leser teilt. Falls du etwas unklar findest, dann kannst du das gerne ausbessern (Wikipedia:Sei mutig). — MovGP0 23:28, 14. Dez. 2017 (CET)
Der Leser sieht nicht ob es bei var data = Encoding.UTF8.GetBytes(textToSend); bei data um ein Byte-Array, ein Objekt, das à la String Bytes managt, oder was auch immer handelt. Wer jeden Tag mit .NET, Java oder so arbeitet, weiss das, wer aber von einer ganz anderen Ecke kommt, weiss das nicht. Und die Beispiele sind ja für Leser "aus anderen Ecken" gedacht. --Gr1 (Diskussion) 12:30, 15. Dez. 2017 (CET)

Schmankerl: Cis

C# ist eine Programmiersprache. Der Begriff C# ist in der Musik aber wesentlich älter, siehe Cis-Dur. Könnte mensch vielleicht im Artikel erwähnen. --Fachwart (Diskussion) 23:13, 20. Jan. 2019 (CET)

VB ist wohl hinter „Beeinflusst von:“ und hinter „Beeinflusste:“ zu nennen

Hallo, also in beiden Bereichen gehört wohl VB(.net) mit rein (siehe auch im gegenwärtig englischsprachigen Schweserteintrag, genauer in der dortigen Übersicht unter ‚Influenced by‘, und siehe auch hier, im gegenwärtig zugehörigen Zieleintrag, dort hinter „Beeinflusst von:“). Anders ausgedrückt ist das mittlerweile wohl üblichere VB.net (daher auch hier zuvor den Zusatz ‚.net‘ nur nochmal in Klammern und zudem aber auch verkleinert dargestellt) wohl nebenan allein hinter „Beeinflusste:“ und die Vorläufer (VB classic) hinter „Beeinflusst von:“ zu nennen, wobei ich mir im Fall (oder auch aus der Sicht) von VB (aus eigener Erfahrung) ziehmlich sicher bin und im Fall von C# selbst aber auch keinen Zweifel daran habe, immerhin kommen beide Sprachen von Microsoft und wurden (wenigstens eine Zeit lang) nebeneinander Entwickelt. Mittlerweile scheint aber C# bei MS sehr bevorzugt zu werden (und die Zukunft von (MS-)VB [daher] ungewiß – naja, immerhin gibt es neben Microsofts VB ja noch Andere … freiere Entwicklungen :-) … siehe auch ‚VB‘ oder – ausgeschrieben – ‚Visual Basic‘ in Gambas oder auch Mono). Nebenher bemerkt gibt es – vor allem hinsichtlich der (aus meiner Sicht) schon lange überholten Abkürzung ‚VB‘ allein für das alte ‚VB classic‘ – das jüngere VB.net (ab 2002) mittlerweile auch schon länger als die Vorgängerreihe (VBC, von 1991 bis 1998). Achso, und an Schotterebene: Da möchte ich noch um Vergebung, für meine Zurücksetzung (deiner Zurücksetzung), bitten, zudem muß man hier aber wohl auch nicht päpstlicher werden als der Papst, was die von dir genannte Belegpflicht angeht. Also die Belegpflicht sollte wohl nur dann (vor allem mit einer derartigen Zurücksetzung deinerseits) erbeten oder (wenn es denn tatsächlich zutrifft) wirklich eingefordert werden, wenn ernsthafte Zweifel an einer Aussage bestehen. Mit lieben Grüßen. -- 77.191.37.159 14:34, 11. Mär. 2020 (CET)

Plattformunabhängiger Maschinencode?

Plattformunabhängiger Maschinencode, gibt es den überhaupt? Ein native Binary das gleichzeitig auf ARM, x64 oder vielleicht MIPS läuft? Irgendwie habe ich das Gefühl das es mit der Fachkompetenz mancher Autoren hier nicht zu Besten steht. (nicht signierter Beitrag von 2003:D5:741:338A:980A:DE5F:188D:8257 (Diskussion) 23:41, 9. Jun. 2020 (CEST)) Ich habe es jetzt mal mit einem Text-Baustein versucht. .Net Native gibt es nur für UWP (also nur für Windows, nicht plattformunabhängig) und CoreRT ist rein experimentell und wir möglicherweise auch nie offiziell freigegeben (siehe github-repository). Und plattformunabhängigen Maschinencode gibt es nicht. Es ist schon erschreckend das hier die angemeldeten Autoren so hartnäckig an einem Märchen festhalten. Im Grunde verliere ich hier meinen Glauben an Wikipedia, wenn es selbst bei IT-Themen, wo doch alles klar und eindeutig ist, Falschinformation verbreitet wird und es noch einer gewonnenen Diskussion Bedarf, um diese richtig zu stellen. Nachtrag: Die angemeldeten Autoren halten an der Falschinformation fest, der Änderungswunsch wurde schon wieder zurückgesetzt. Es gib oder gab irgendwo auch eine Fachredaktion Informatik (da sollte es ja irgendjemand geben der kompetent ist), ich weiss aber nicht, wie man diese einbezieht. --79.250.135.126 15:30, 13. Jun. 2020 (CEST)

Begrifflich gibt es Plattformunabhängigen Bytecode, der ein Befehlssatz einer Abstrakten Kellermaschine oder Registermaschine darstellt. Beispiele dafür sind der Java Bytecode, WebAssembly, .NET CIL, BEAM etc. Inwiefern Betriebssysteme einen (JIT-)Interpreter oder einen Compiler für diese abstrakten Maschinencodes anbieten, ist natürlich eine gesonderte Frage. Es gibt auch Bytecodes, die gar keine konkrete Implementierung auf einer real existierenden Maschine besitzen. Es ist jedenfalls kein Quelltext gemeint, der für Menschenlesbarkeit gedacht ist. --Diaspomod (Diskussion) 16:07, 13. Jun. 2020 (CEST)
ich halt das auch für ziemlich zweifelhaft - .NET Native spricht von einer IL, und das ist sicher keine maschinensprache. UWP müsste ich mir mal anschauen - evtl verpacken sie da einfach nativen code für mehrere platformen in einem einzigen binary... -- 18:39, 13. Jun. 2020 (CEST)
Die Common Intermediate Language bei .NET ist genauso wie der Java Bytecode oder WASM eine Zwischensprache, ist also portabel ist und trotzdem eine abstrakte Maschinensprache. Sie definiert auch, dass es zum Beispiel Heapreferenzen gibt, die vom Garbage Collector aufgeräumt werden könnnen. Das ist nicht das gleiche wie ein Binärformat wie etwa PE (exe), COFF, ELF. Die IL ist portabler und abstrakter als der Befehlssatz einer bestimmten Rechnerarchitektur. Es werden auch nicht mehrere Befehlssätze von verschiedenen Rechnerarchitekturen in ein Binary ausgeliefert, wie bei einem "Fat Binary" z.B. bei FatELF. --Diaspomod (Diskussion) 19:56, 13. Jun. 2020 (CEST)
danke. ich hab mich auch ein bißchen schlau gemacht, und _nicht_ was ich finden konnte gibt auch nur ansatzweise "plattformunabhängigen maschinencode" her. ich schmeißt die zeile raus. -- 21:51, 13. Jun. 2020 (CEST)
http://www.ssw.uni-linz.ac.at/Teaching/Lectures/Sem/2003/reports/Fischereder/Fischereder.pdf "CIL-Instruktionen sind maschinencodeähnliche Instruktionen für die im Standard ECMA-335 spezifizierte virtuelle Ausführungsumgebung der CLR." Der plattformunabhängige Maschinencode ist jedenfalls ein alter Hut und kein Angebot neuer Werkzeuge wie .NET Native. .NET Native macht im Gegenteil den Code wieder plattformabhängig durch Kompilierung in die Zielarchitektur. --Diaspomod (Diskussion) 22:16, 13. Jun. 2020 (CEST)
IL als Maschinencode zu bezeichnen wäre aber eine falsche Verwendung des Begriffs Maschinencode. Hier heißt es eindeutig "Umfang und Syntax der Maschinenbefehle sind im Befehlssatz definiert und abhängig vom Prozessortyp." Wenn man Code für virtuelle Maschinen (auch so ein problematischer Begriff) meint, kann man ja Bytecode schreiben.--2003:D5:706:9F12:6408:F57C:C12:B6FE 15:29, 22. Jun. 2020 (CEST)