Ein paar Zitate und meine Kommentare dazu:
--> ...sieht man die taktik von ms - kein sdk. das heisst entwickeln muss man trotzdem unter windows. und für linux wird das auch so sein (ms will doch wirklich auch auf linux mit .net gehen, aber das wird sicher nix)...
Argbeil: Das ist nicht korrekt, die Linux Community will auf .NET gehen und eigentlich ging es hier ja um C# und nicht um .net. Wenn du unter Linux für .NET entwickeln willst kannst du die neueste Kylix Version von Borland verwenden, es gibt also sehr wohl eine IDE.
--> und deshalb ist die frage nach ms, bei c# von grundlegender bedeutung. ich will jetzt nicht sagen, man soll nicht in c# entwickeln. ich hab schon ein paar zeilen geschrieben und es war okay. aber ehrlich gesagt hab ich keinen grund gesehen von c++ auf c# umzusteigen. anders als z.b. von vb6 auf vb.net (hier gibt es echte, grosse fortschritte, aber vb is ja eh nur für windows, so dass man weiss worauf man sich einlässt).
Argbeil: Ich denke der Unterschied zwischen Visual C++ und Visual C# ist in erster Linie die Möglichkeit des Rapid-Application-Development die Microsoft bisher nur in VB hatte.
--> ich würde sagen, wer vorhat, vielleicht nicht nur für windows sondern auch für andere systeme mal zu entwickeln, sollte sich an c++ halten, da man sich sonst zu sehr auf ms festlegt. wer nur für windows entwickelt sollte ausprobieren und sehen, womit er/sie besser klarkommt. am ende ist es dann eine frage des geschmacks.
Argbeil: Das klingt ja ganz lustig, aber von welchem C++ redest du denn? Visual C++? Versuch mal ein Programm das die MFC verwendet, oder auch einfach nur in reinem C++ für Windows, also mit der Win32API entwickelt wurde zu portieren, das meinst du doch nicht ernst oder? Beim C++ Builder stellt sich das gleiche Problem, sobald du Forms verwendest bist du an ein System gebunden und kannst nur durch große Mühe auf ein anderes portieren, DA hilf .net Technologie, du musst nicht mal neu Compilieren.
-->Wer "normale" Programme schreiben will sollte glaube ich lieber bei c/c++ bleiben.
Argbeil: Was sind denn normale Programme? Ich denke das kommt auch drauf an wie viel Zeit man für die Entwicklung hat, es geht mit C# durch das Framework und die überragende IDE mit RAD Features einfach wesentlich schneller.
Zu den Unterschieden zwischen C++ und C# um die Frage zu beantworten und .net mal außen vor zu lassen:
C# hat :
- Objektorientierung der 3. Generation ( Alles ist ein Objekt, Interfaces usw. )
- Typsicherheit
- Automatische Speicherverwaltung
- Keine Header Dateien
- Reduzierung der Programmierfehler durch striktere Regeln ( Zwingede initialisierung, case muss break enthalten usw. )