wieso c#?



  • hi
    ich frage mich, wieso man eigendlich c# benutzen sollte. ich meine mit c++ kann man doch auch für .net programme erstellen, was sind also die vorteile dieser sprache?

    und wie sieht es eigendlich mit der Verbreitung dieser sprache aus? wird diese überhaupt in der industrie verwendet?

    gruss

    _User_



  • ich meine mit c++ kann man doch auch für .net programme erstellen
    

    Mich könnte keiner dazu bringen die furchtbaren Managed Extencions für C++ zu benutzen...
    Wenn C++/CLI raus kommt, werd ichs mir aber gerne zu Genüte führen.

    C# ist eine viel einfacher anzuwendende Sprache. Wenn man damit ordentlich programmieren kann, ist die Produktivität um einiges höher.
    Dafür ist man eben in der Zwangsjacke .NET Framework gefangen, mit all seinen Vor- und Nachteilen.



  • User schrieb:

    und wie sieht es eigendlich mit der Verbreitung dieser sprache aus?

    gut.

    User schrieb:

    wird diese überhaupt in der industrie verwendet?

    ja.



  • Hallo

    ich frage mich, wieso man eigendlich c# benutzen sollte. ich meine mit c++ kann man doch auch für .net programme erstellen, was sind also die vorteile dieser sprache? [..]

    Blub, erstmal von vorne:
    Mit C# schreibst du managed Code der beim ausführen, genau wie jedes Javaprogramm auch, von einer Laufzeitumgebung ausgeführt wird.
    Dabei greift C# auf die sog. CLR (Common Language Runtime) zurück. Dort stehen die ganzen "Funkionen" des .NET Frameworkes.
    Wenn du nun Managed C++ schreibst greifst du auch auf das .NET Framework zu.
    Mh.. man kann auch mit Visual Basic .NET Programme schreiben.
    So stellt sich also erstmal (nachdem man sich für das .NET Framework entschieden hat) die Frage: Welche Sprache (siehe dein Posting 😉

    C# hat einen guten IDE Support und sieht Java oder C++ vom Syntax zum verwechseln ähnlich.
    M. C++ ist C++ +X, wobei +X für die .NET Features steht.
    Wie schon vorher geschrieben, M. C++ ist *scheiße*.
    Du verbindest damit effektiv die Nachteile von C++ und .NET:
    Langsame plattformabhängige Programme in einer obskuren Syntax und mit vielen neuen Problemen.
    Imo wurde M. C++ nur als Proof of Concept Sprache entwickelt so unbrauchbar ist das.

    Zu deiner anderen Frage, Verbreitung in der Industrie:
    Da es prinzipiell egal ist welche .NET Sprache mal wählt, solltest du nach der Verbreitung von .NET fragen. Frag mal Google nach einer Beliebtheitsübersicht der diversen Programmiersprachen, C# findet sich ganz oben.

    Meiner Meinung nach solltest du dir nicht die Frage stellen ob du C# oder M. C++ schreiben möchtest, sondern ob du .NET überhaupt brauchst 😉
    Solange du keine enge Integration an andere MS Produkte brauchst sehe ich überhauptkeinen Daseinsgrund für diese Sprache -es gibt ja schon Java.. oh und C++ wenn du auf Performance stehst.

    Viele Grüße 🙂



  • Headhunter schrieb:

    Du verbindest damit effektiv die Nachteile von C++ und .NET:
    Langsame plattformabhängige Programme in einer obskuren Syntax und mit vielen neuen Problemen.

    Kannst du bitte noch mal ein bisschen näher auf die vielen neuen Probleme eingehen? Was genau sind diese?

    Welche Vorteile bietet .net eigendlich gegenüber Java? Dinge wie unmaneged code mit maneged zu verbinden benötige ich eigendlich nicht (was bei Java afaik nicht möglich ist??). Was kann .net also was man mit Java nicht machen kann?

    gruss

    _User_



  • User schrieb:

    Kannst du bitte noch mal ein bisschen näher auf die vielen neuen Probleme eingehen? Was genau sind diese? [..]

    Neue Probleme im Managed C++:
    Bisher habe ich noch nix damit gemacht (aus gutem Grund), such mal in Netz nach Gründen dagegen. C++ + .NET ist Murks!

    Welche Vorteile bietet .net eigendlich gegenüber Java? Dinge wie unmaneged code mit maneged zu verbinden benötige ich eigendlich nicht (was bei Java afaik nicht möglich ist??). Was kann .net also was man mit Java nicht machen kann?

    .NET bietet eine schon fast geniale Verbindung zu allem was aus dem Hause Microsoft kommt, sei es SQL Server, Office Paket oder Betriebssystem etc.
    Mit .NET kann man viele Sprachen verwenden (auch im SQL Server bald).
    Manche Leute meinen .NET startet und läuft schneller als Java, kann ich aber nicht bewerten.
    Bei Java kannst du mittels JNI auf native Dlls/So Dateien zugreifen, so gibt es z.B. mit Jogl ein OpenGL-Glut Binding für java.
    Möchtest du irgendwas bestimmtes wissen?

    Grüße



  • Ergänzung:
    Bei M. C++ kommt noch was hinzu, du musst Objekte die vom GC verwaltet werden besonders kennzeichnen und aufpassen was du mit denen machst und so.. ist auf jeden Fall ein ziemlicher Matsch. Wie gesagt, Google ist dein Freund.



  • Mit Visual Studio 2005 kommt dann auch C++/CLI.
    Denke das ist durchaus einen Blick Wert. Auch weil standartisiert.



  • Mit C# schreibst du managed Code der beim ausführen, genau wie jedes Javaprogramm auch, von einer Laufzeitumgebung ausgeführt wird.
    Dabei greift C# auf die sog. CLR (Common Language Runtime) zurück. Dort stehen die ganzen "Funkionen" des .NET Frameworkes.

    wieso denken alle C# == .NET ?
    man kann in C# .NET verwenden, muss aber nicht. Man kann ja Mono verwenden, oder sonstwas. .NET ist einfach nur eine Lib mit Klassen die die Programmierung unter Windows vereinfachen.
    Wenn man den Unterschied zu C++ nennen will, dann sollte man Generics, Partial-Klassen, Garbage-Container, Properties, Delegetes, Evets, Interfaces, usw. nennen.



  • Mit C++ CLI gibt es jetz auch eine C++ Variante für .NET die lesbar ist.

    Anstatt vieler Unterstriche reicht jetzt sowas:

    public ref class Test;
    

    bzw.:

    Test^ object = gcnew Test();
    

    Sehr empfehlenswert, wenn man in einem Projekt managed und unmanaged Code mischen will, zum Beispiel beim Einbinden von C++ Libs.



  • ManagedC++ war doch damals nur ein Schnellschuß um überhaupt in C++ auf das .NET-Framework zugreifen zu können. Das kann man MS nachsehen und es wurde ja auch niemand dazu gezwungen.

    Aber C++/CLI wird auf jeden Fall syntaktisch lesbarer, da würde ich mir keinen Kopf machen. Weiterhin ist C++/CLI in der ECMA standardisiert und somit freier als Java. Fehlt nur noch das es in ISO drin ist, dann hat es C++/CLI geschafft. 😉

    Aber um nochmal den Grund pro C++/CLI (bzw. das alte ManagedC++, abgesehen von dessen Syntax!) zu zeigen, sollte man sich diesen Artikel rein pfeifen:

    "C++: The Most Powerful Language for .NET-Programming"

    C++ hat also sehr wohl eine Berechtigung und sogar sehr wichtige in der .NET-Strategie.



  • Aber um nochmal den Grund pro C++/CLI (bzw. das alte ManagedC++, abgesehen von dessen Syntax!) zu zeigen, sollte man sich diesen Artikel rein pfeifen:

    "C++: The Most Powerful Language for .NET-Programming"

    [ironie]
    Genau, angenehme Features wie das Fehlen von einem using-Statement oder andere C++ ähnlichere Syntax
    für so ziemlich alles (Deklaration von Variablen auf dem Stack, Implementieren des Interfaces IDisposable
    gleicht einem Destruktor, delete o statt o.Dispose()) machen C++/CLI zu einer mächtigeren Sprache.
    [/ironie]

    Ne, jetzt mal im Ernst, was genau in dem Artikel ist denn jetzt so derartig überzeugend. Der
    einzige Vorteil bleibt nach wie vor das beliebige Mischen von managed und unmanaged Code.

    Im Gegenzug werd ich dafür etwas auf die lange Bank geschoben, was Artikel und
    Unterstützung angeht (man nehme z.B Mono ohne Managed C++ Compiler her ..).



  • 1 : C# ist schlechter als C++ da es nicht portabel ist!!!!!!!
    2 : MS hat C# erfunden
    3 : Apropos Laufzeitumgebung: Dann ist es ja das gleiche wie mit VB...ohne Laufzeitumgebung läuft es nicht...toll



  • alex89ru schrieb:

    1 : C# ist schlechter als C++ da es nicht portabel ist!!!!!!!

    LOL. Du solltest Clown werden.

    alex89ru schrieb:

    2 : MS hat C# erfunden

    Und? C++ wurde von einem dürren Glatzkopf namens Stroustrup erfunden.

    alex89ru schrieb:

    3 : Apropos Laufzeitumgebung: Dann ist es ja das gleiche wie mit VB...ohne Laufzeitumgebung läuft es nicht...toll

    Und was machst du ohne GTK, MFC, QT, TinyXML, wxWindows, DirectX, OpenGL, SDL ... (Liste bitte beliebig erweitern)



  • 🤡

    Nochmal zurück: C++/CLI ist die derzeit definitiv mächtigste Sprache zur Verwendung von .NET. Allerdings ist die Anwendung mit C# wesentlich einfacher, außerdem ist C# als Java-Gegner gedacht.

    MfG SideWinder



  • User schrieb:

    ich frage mich, wieso man eigendlich c# benutzen sollte. ich meine mit c++ kann man doch auch für .net programme erstellen, was sind also die vorteile dieser sprache?

    Es ist eine weiche Sprache. Kannst es gerne selber ausprobieren. Wenn du nicht zufrieden bist, wirf sie einfach weg und lern eine andere.

    Artchi schrieb:

    "C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup

    Wieso eine Sprache, mit der man angeblich weniger Speicher dynamisch allokiert, besser für die Garbage Collection geeignet ist, entzieht sich meiner Kenntnis. Hier wäre etwas Begründung angebracht, warum das besonders toll ist. Ein Garbage Collector hat im Allgemeinen wenig Mühe mit vielen kurzlebigen Objekten (allgemein auch als Müll bezeichnet), sondern eher genau mit den wenigen länger lebenden.
    Ich kenne da ein paar andere Faktoren, die andeuten könnten, dass C++ nur bedingt für eine automatische Speicherveraltung geeignet ist, aber keine Gründe, die C++ hierfür besonders toll machen.
    Wenn du den Stroustrup nochmal siehst, könntest du ihn das ja mal von mir ausrichten und seine fachliche Meinung einholen, da wäre ich dir sehr verbunden.

    SideWinder schrieb:

    Nochmal zurück: C++/CLI ist die derzeit definitiv mächtigste Sprache zur Verwendung von .NET.

    Die mächtigste Sprache? Mit Sicherheit. Aber was genau kann C++/CLI an der .Net Plattform besonders toll ausnützen? Ich höre immer nur, man kann alles machen. Man nicht nur Generics verwenden, sondern auf Templates. Aber nichts, was darauf hindeutet, dass man >> .Net << besonders toll ausnützen kann. Und so Features wie Objekte von "managed Klassen" auf dem Stack anlegen oder unsafe Code mit Bufferoverflow-Garantie, oder anderes Zeug was kein Mensch braucht, geht mit C# genauso.



  • Hab schon genug über c# gemeckert und jetzt mal eine normale Frage:
    Wie sieht es mit der geschwindigkeit (ausführung) von c# aus??? kann es mit c++ mithalten?oder etw langsamer? oder ganz langsam??? 😕



  • Ich finde es doch sehr bemerkenswert, das sich einige C#-Fans angegriffen fühlen, und sogar gewisse Personen (die hier nicht mal persönlich im Forum aggieren) beleidigt werden. Egal...

    Ein paar Zitate aus der MSDN, von einem MS-Mitarbeiter der am VC++2005 entwickelt (der wird also kaum seine Kollegen vom VC#2005 in die Pfanne hauen):

    C++ gives you the flexibility to do fine tuning such as high-performance marshaling that is not possible with other languages. Moreover, the Visual C++ compiler generates the best optimized MSIL of any of the .NET languages. The result is that the best optimized code in .NET comes from the Visual C++ compiler.
    ...
    Conclusion

    The .NET Framework with Visual C++ has come a long way since its introduction in Visual Studio .NET 2002. C++ gives the programmer unprecedented flexibility to write high-performance managed code, and it does it all in a way that is natural to C++ programmers. There are many languages available for .NET-enabled programming; if you care about maximum performance, Visual C++ is the obvious choice.

    Quelle: http://msdn.microsoft.com/visualc/whidbey/default.aspx?pull=/msdnmag/issues/05/01/coptimizations/default.aspx

    Kann den Artikel übrigens nur empfehlen, nicht nur die obigen Zitate.

    Warum sollte C++ denn nicht in der .NET-Strategie eine bestimmte Position einnehmen dürfen, wenn dies offensichtlich berechtigt ist? Sagt ja niemand, das deshalb C# schlecht ist. Aber die Fakten bzgl. C++ in der .NET-Welt hab ich mir nicht aus den Fingern gezogen, sondern direkt vom Konzern der C# entwickelt.



  • SideWinder schrieb:

    Nochmal zurück: C++/CLI ist die derzeit definitiv mächtigste Sprache zur Verwendung von .NET. Allerdings ist die Anwendung mit C# wesentlich einfacher, außerdem ist C# als Java-Gegner gedacht.

    Genau, nicht mehr und nicht weniger sagen auch die diversen MSDN-Artikel aus. Kann dir hier nur zustimmen. Weiß deshalb nicht, warum einige Forumsteilnehmer auf Bjarne rumhacken. 🙄 😕



  • alex89ru schrieb:

    Hab schon genug über c# gemeckert und jetzt mal eine normale Frage:
    Wie sieht es mit der geschwindigkeit (ausführung) von c# aus??? kann es mit c++ mithalten?oder etw langsamer? oder ganz langsam??? 😕

    Von der Ausführungsgeschwindigkeit ist C# genauso schnell wie C++, kann sogar in einigen Fällen noch schneller sein. Nur der erste Start wenn das Programm kompiliert wird, dauert ein wenig - das kann man durch geschicktes programmieren aber lindern, da nur das kompiliert wird was gerade gebraucht wird.



  • Talla schrieb:

    alex89ru schrieb:

    Hab schon genug über c# gemeckert und jetzt mal eine normale Frage:
    Wie sieht es mit der geschwindigkeit (ausführung) von c# aus??? kann es mit c++ mithalten?oder etw langsamer? oder ganz langsam??? 😕

    Von der Ausführungsgeschwindigkeit ist C# genauso schnell wie C++, kann sogar in einigen Fällen noch schneller sein. Nur der erste Start wenn das Programm kompiliert wird, dauert ein wenig - das kann man durch geschicktes programmieren aber lindern, da nur das kompiliert wird was gerade gebraucht wird.

    Ah, da ist jemand der aufmerksam den Thread liest bzw. meine Beiträge. 😃


Anmelden zum Antworten