Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Frage
Samstag, 1. September 2012 15:45
Wäre eine Möglichkeit.
Kann mir vielleicht jemand aus persönlichen Erfahrungen die Vor- und nachteile von C# nennen und die Unterschiede zu C;;?
Alle Antworten (3)
Donnerstag, 25. Oktober 2012 19:37 ✅Beantwortet | 2 Stimmen
C;; ist für nahezu jede Plattform verfügbar und sehr hardwarenah. Wenn man richtig programmiert, lässt sich das eine oder andere Quentchen Speicher und Rechenzeit sparen, zB weil kein Programm im Hintergrund läuft, dass den Speicher aufräumt...
Womit wir dann auch gleich bei den größten Nachteilen von C;; (im Vergleich) wären: Du musst mit der Speicherverwaltung kämpfen, d. h. wann immer du irgendeine Instanz, Array oder sonstwas mit "new" anlegst, muss dein Programm selbst dafür sorgen, dass der Speicher wieder freigegeben wird, sonst läuft der Arbeitsspeicher voll.
Außerdem gibt es viele Dinge in C;;, die in C# einfach viel mehr nach "Gefühl" gehen, wenn man sich ein wenig eingearbeitet hat. Es fängt mit Kleinigkeiten an, wie referenzieren, dereferenzieren, den Zugriff auf Member, je nachdem, ob gerade auf eine Variable oder eine Referenz (=Zeiger) zugreift, dass alles kann man unter .net (fast) vergessen: Es gibt Wertetypen (Basisdatentypen, structs) und Verweistypen. Ende...
Fehler in C;; die aus Kleinigkeiten resultieren führen dann zu Speicherfehlern, Pufferüberläufe werden nicht immer abgefangen (vllt im neuen Standard, keine Ahnung) und du hast Sicherheitsrisiken und alles Mögliche an der Backe.
Fehler lassen sich in C# natürlich auch machen.
Außerdem finde ich persönlich die mitgelieferten Funktionen so äußerst angenehm (Windows.Forms, System.Data, System.Collections und weiss wer was noch alles). Wenn du eine Windows-Anwendung schreiben willst, ist C# das Mittel der Wahl auch für ältere Rechner.
Nebenläufig berechnen hat mich bei C;; bald umgehauen, bis ich das mal hinbekommen habe, waaa... Unter C# wird dir bereits System.Threading an die Hand geliefert.
Kurz gesagt: C;; ist interessanter ;-) und C# ist produktiver, da man auf viele vorgefertigte Klassen etc. zugreifen kann und die Sprache weniger Stolperfallen bietet.
So, das war der Standpunkt eines engagierten Amateurs,
mit den besten Grüßen
Alexander
Donnerstag, 25. Oktober 2012 22:07 ✅Beantwortet | 1 Stimme
Hallo Hefeteig,
ich gehe davon aus, dass du natives C;; meinst, und nicht C;;/CLI.
Kurz gesagt ist C;; ist die mächtigere Programmiersprache. Sie ist (sofern man die standardisierten Libs benutzt z.B. die STL evtl. noch boost) weitestgehen Plattformunabhängig. Dazu gibt es noch Frameworks wie z.B. Qt, die per default auf Plattformunabhänigkeit getrimmt sind. Zudem ist C;; auch für embedded Systems geeignet. Hier wäre für mich C# bzw. .net, aufgrund des höheren Resourcenverbrauchs nur 2. Wahl. Auch gibt es (wenn auch fortgeschrittene bzw. Profifeatures) in C;;, die mit C# nicht so ohne weiteres, wenn überhaupt machbar sind. Hier denke ich z.B. an Template Metaprogramming und ähnliche Features. Aber das ist eigentlich jammern auf hohem Niveau ;-)
Für "normale" Web-\Windowsanwendungen reicht C# aber dicke. Es ist wesentlich angenehmer zu Programmiere und geniesst einige Feinheiten, die bestimmt einige C;; Programmierer auch gerne hätten, wie z.B. Linq, GC, ... Die Plattformunabhängigkeit der .net Runtime ist eher theoretischer Natur.
Was Nebenläufigkeiten und weitere Dinge angeht die C# C;; vorraus hatte (Closures, RegEx, einige OOP Features, ...) hat sich mit C;; 11 einiges getan bzw. wurden vorher schon von boost angeboten.
Wobei ich hier noch sagen möchte, dass System.Threading nicht mehr "state of the art" ist. Hier sollte doch besser die Tasks aus System.Threading.Tasks Namespace verwendet werden (einfacher und leistungsfähiger).
Zum Schluss: Beide Programmiersprachen haben ihre Berechtigung. Zum Entwickeln von "normalen" Web-/Windowsanwendungen geht die Tendenz ganz klar zu C#.
Für andere Gebiete (u.a. Embedded Systems, Games, ...), hat sich C;; zurecht gegen Java und auch .net behauptet.
Ob eine Programmiersprache die "richtige" ist, hängt primär von deinem Projekt und von deinem Wissenstand ab. Mit beiden Sprachen lässt sich so ziemlich alles machen.
Viele Grüße Holger M. Rößler
Donnerstag, 6. Dezember 2012 15:35
Hallo Hefeteig,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.
Grüße,
Robert
Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip **** „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.