C++ vor CLI ?



  • DaCodex schrieb:

    und die es einem erböglicht plattform unabhängige programme zu schreiben

    Das ist natürlich Quatsch. .Net (und damit C++/CLI) ist im Grunde nur für Windows. 🙂



  • Bashar schrieb:

    314159265358979 schrieb:

    C++/CLI hat so gut wie nichts mit C++ zu tun. Es ist eine Erweiterung von Microsoft für C++, die aber totaler Mist ist.

    Begründung wär nicht schlecht. Nicht jeder kennt dich gut genug, um deine Meinungsäußerungen einordnen zu können.

    Für den TE spielt die Begründung keine Rolle, weil er damit sowieso (noch) nichts anfangen kann. Sagen wir einfach, dass die Mischung aus C++, C#, Java, was auch immer das sein soll, nicht zusammenpasst.



  • 314159265358979 schrieb:

    C++/CLI hat so gut wie nichts mit C++ zu tun. Es ist eine Erweiterung von Microsoft für C++

    🙄

    314159265358979 schrieb:

    die aber totaler Mist ist. Vergiss C++/CLI und lern Standard-C++.

    Es spricht nicht gerade fuer dich, dass du staendig deine eigene (kleingeistige) Meinung als Fakt hinstellst.

    @DaCodex: C++/CLI brauchst du nur als Schnittstellensprache zwischen Standard Managed Code (fast immer in C# geschrieben) und nativem C++.
    Wenn du nativ programmieren willst, nimm am besten C++. Willst du mit dem .NET Framework arbeiten: Nimm C#.



  • 314159265358979 schrieb:

    Bashar schrieb:

    314159265358979 schrieb:

    C++/CLI hat so gut wie nichts mit C++ zu tun. Es ist eine Erweiterung von Microsoft für C++, die aber totaler Mist ist.

    Begründung wär nicht schlecht. Nicht jeder kennt dich gut genug, um deine Meinungsäußerungen einordnen zu können.

    Für den TE spielt die Begründung keine Rolle, weil er damit sowieso (noch) nichts anfangen kann. Sagen wir einfach, dass die Mischung aus C++, C#, Java, was auch immer das sein soll, nicht zusammenpasst.

    Wieso sagst du es dann ueberhaupt? Nur um mal wieder rumstaenkern zu koennen? Was sollte da nicht zusammenpassen? Du magst die Sprache nicht != Die Sprache ist schlecht.



  • Ich traue mich zu sagen, dass eine sehr sehr geringe Zahl an Usern hier C++/CLI für nützlich hält. Das hat nichts mit mögen oder nicht mögen zu tun, die Sprache ist als solches unnötig. Wie du schon richtig sagtest: Für natives C++, für .NET C#. Ein Zwischending braucht man nicht, nativen Code man auch aus C# aufrufen.



  • *was ich sagen wollte wurde schon alles gesagt*

    lesen ftw 😕



  • _matze schrieb:

    DaCodex schrieb:

    und die es einem erböglicht plattform unabhängige programme zu schreiben

    Das ist natürlich Quatsch. .Net (und damit C++/CLI) ist im Grunde nur für Windows. 🙂

    ehm, wenn ich mich nicht irre, funktioniert ein programm das in C++/CLI geschrieben wurde auf jedem PC/laptop der NetFramework besitzt,
    da das Programm ja nicht richtig compiled wird sondern in den IL code übersetzt wird und beim ausf+hren übersetzt dann Netframework diesen IL code in den fertigen maschinencode ( also für mich hört sich das plattform unabhängig an) ? richtig soweit? 😃

    achja, wie schon erwähnt will ja vorallem spiele programmieren, muss ichd was besonderes beachten ? 😛



  • 314159265358979 schrieb:

    Ich traue mich zu sagen, dass eine sehr sehr geringe Zahl an Usern hier C++/CLI für nützlich hält. Das hat nichts mit mögen oder nicht mögen zu tun, die Sprache ist als solches unnötig. Wie du schon richtig sagtest: Für natives C++, für .NET C#. Ein Zwischending braucht man nicht, nativen Code man auch aus C# aufrufen.

    Du hast offenbar noch nie an einem groesseren Projekt mit .NET und nativem Code gearbeitet. Sonst wuesstest du, wie ekelhaft es ist nativen Code aus C# aufzurufen. Mit C++/CLI kann man relativ einfach Wrapper schreiben.



  • DaCodex schrieb:

    _matze schrieb:

    Das ist natürlich Quatsch. .Net (und damit C++/CLI) ist im Grunde nur für Windows. 🙂

    ehm, wenn ich mich nicht irre, funktioniert ein programm das in C++/CLI geschrieben wurde auf jedem PC/laptop der NetFramework besitzt,...

    Ihr beide habt zum Teil recht.

    Das .Net-Framework ist hauptsächlich für Windows geschrieben, es gibt aber eine (unvollständige) Portierung auf andere Plattformen (Mono, MonoTouch...). Und ja, es gibt durchaus Programme die portabel auf Windows, Mac und Linux laufen - aber das ist nicht der Standard, und verbietet auch die Benutzung einiger Teile des .Net Frameworks (z.B. WPF).

    Die nativen Teile von einem im C++/CLI geschriebenen Programm sind aber auch nicht automatisch Portabel. C++/CLI war ursprünglich als gleichrangige Sprache zu C# und Vb.Net geplant, aber der Support ist immer mehr zurück gefahren wurden. Wenn man .Net Programmieren will sollte man zu C# greifen. Will man nativ Programmieren zu C++. Ausschließlich als Schnittstelle zwischen C++ und C# sehe ich noch durchaus Vorteile in C++/CLI (z.B. bei der schrittweisen Portierung einer großen Anwendung von C++ auf C#).

    DaCodex schrieb:

    ...da das Programm ja nicht richtig compiled wird sondern in den IL code übersetzt wird und beim ausf+hren übersetzt dann Netframework diesen IL code in den fertigen maschinencode

    1. Das .Net Framework übersetzt erst einmal nichts, das macht der JIT (Just in Time Compiler).
    2. C++/CLI wird nicht komplett in IL-Code übersetzt, native Anteile werden auch nativ compiliert.
    3. Im Prinzip wäre es möglich (ein vollständiges .Net Framework vorausgesetzt) auch .Net portabel zu verwenden. In der Realität gibt es aber größere Unterschiede zwischen .Net und der Mono-Portierung die spezielle Einschränkungen und Kompromisse mit sich bringen. .Net hat eigentlich nur im Windowsbereich sowie bei RIA's (Silverlight/Moonlight) eine relevanz. Bei letzteren sieht die Kompatibilität etwas besser aus (wenn auch gewisse Diskrepanzen existieren).

    DaCodex schrieb:

    achja, wie schon erwähnt will ja vorallem spiele programmieren, muss ichd was besonderes beachten ? 😛

    1. Die meisten die ich kenne scheitern daran von Anfang an zu meinen Spiele zu programmieren. Ich rate dir dazu erst einmal die Grundlagen der Sprache gut zu beherrschen, bevor ich mich Spielen zuwende.
    2. Du solltest dir dann erst recht überlegen welche Sprache. Entweder C++ (diverse Frameworks) oder C# (in letzteren Fall mit XNA).



  • DaCodex schrieb:

    _matze schrieb:

    DaCodex schrieb:

    und die es einem erböglicht plattform unabhängige programme zu schreiben

    Das ist natürlich Quatsch. .Net (und damit C++/CLI) ist im Grunde nur für Windows. 🙂

    ehm, wenn ich mich nicht irre, funktioniert ein programm das in C++/CLI geschrieben wurde auf jedem PC/laptop der NetFramework besitzt,
    da das Programm ja nicht richtig compiled wird sondern in den IL code übersetzt wird und beim ausf+hren übersetzt dann Netframework diesen IL code in den fertigen maschinencode ( also für mich hört sich das plattform unabhängig an) ? richtig soweit? 😃

    achja, wie schon erwähnt will ja vorallem spiele programmieren, muss ichd was besonderes beachten ? 😛

    Genau. Und das .net Framework gibt es für MS Windows X, MS Windows Y, MS Windows Z und auch noch für MS Windows A und MS Windows B. Daher ist es Plattformübergreifend. Gibt es denn Betriebssysteme, die nicht mit MS Windows anfangen? (na ja - als Alibi gibt es ja auch noch mono).



  • wer auch immer schrieb:

    Daher ist es Plattformübergreifend...

    Was für einen Quatsch. Ja, ich kenne viele Firmen die keinen Bedarf an portablen Programmen haben (Bei uns z.B. gibt es nur sehr wenige Anfragen zu anderen Betriebssystemen, nicht genug um auch nur im entferntesten an eine Portierung zu denken - und die sehr wenigen Mac-User die wir haben nutzen eine VM), aber in einigen Bereichen sieht es anders aus.

    Und auch in der Windowswelt ist .Net nicht komplett portabel. z.B. wirst du mit Versionen vor XP einige Probleme mit den neueren Versionen haben... Und wie es um Windows 8 steht ist noch komplett offen (Wegen ARM-Portierung).



  • Lern ganz normales C++. Das ist schon kompliziert genug. Wenn du dann C++/CLI brauchst, dann wird das vermutlich maximal ein Tag sein, um sich die paar neuen Erweiterungen anzueignen. Aber C++/CLI ist halt speziell und "normales" C++ ist allgemein.



  • rüdiger schrieb:

    Lern ganz normales C++. Das ist schon kompliziert genug.

    👍

    Jede aufgesattelte Erweiterung kann eingrenzen, die Portabilität versperren und vor allem von einfach zu handhabenden Grundlagen ablenken!


Anmelden zum Antworten