<Split aus "C/C++ oder C#">



  • schrankwand schrieb:

    In C# vermisse ich zwar ein paar Sprachelemente wie Templates

    System.Collections.Generic (.NET 2.0)

    schrankwand schrieb:

    Mehrfachvererbung

    Sehe ich nicht als Nachteil.

    schrankwand schrieb:

    Mit C# kannst du nur fürs .net-Framework programmieren. Das .net-Framework ist bis jetzt nur Für diverse windows versionen und für linux erhältlich.

    Was ist daran so schlimm, wenn ich von Anfang an weiß, dass ich nur für Windows programmiere?



  • @Noodles
    was du machst ist ein typischen Flamewar starten. Wenn jemand gewohnt ist mit Mehrfachvererbung zu designen und wenn jemand für mehr als Windows programmieren will ist dotNET einfach nicht geeignet. Wenn du das nicht machen willst, will dich sicher niemand aufhalten. 🙄

    Ist dotNET 2.0 eigentlich auch ECMA standardisiert?



  • also auf mehrfachvererbung und templates will ich nicht verzichten wollen



  • kingruedi schrieb:

    @Noodles
    was du machst ist ein typischen Flamewar starten. Wenn jemand gewohnt ist mit Mehrfachvererbung zu designen

    Dann startest Du ihn wenigstens nicht mit Deinem Linuxwahn. 😉
    Ich wollte keinen Flamewar eröffnen, nur ist es meine Meinung das, dass Fehlen der Mehrfachvererbung kein Nachteil ist.

    kingruedi schrieb:

    wenn jemand für mehr als Windows programmieren will ist dotNET einfach nicht geeignet.

    Was ist daran so schlimm, wenn ich von Anfang an weiß, dass ich nur für Windows programmiere?

    🙄



  • Kingruedi es war ja die rede von _dem_ Petzold 😉
    Aber mit C# kann man ja auch direkt auf die Winapi zugreifen, also braucht man wirklich nur selten ne andere Sprache (unter Windows).

    Das große Problem von .NET ist, dass der .NET-Standard von der .NET Version von MS abweicht, z.B. sind die GUI-Klassen alle nicht im Standard enthalten wodurch ne Plattformunabhängigkeit schwer sein wird.

    Als Windowsprogrammierer ist C# ne feine Sache, auch für Spiele und auch für 3D-Spiele.



  • Dann startest Du ihn wenigstens nicht mit Deinem Linuxwahn. 😉

    Bitte?

    Es ging darum, dass auf Aussagen wie "Ich programmiere nicht mit dotNET, weil es nicht Platformunabhängig" Antworten wie "Was ist daran so schlimm, wenn ich von Anfang an weiß, dass ich nur für Windows programmiere?", dämlich sind. Ich weiß nich, was daran so schwer zu verstehen ist.



  • kingruedi schrieb:

    Es ging darum, dass auf Aussagen wie "Ich programmiere nicht mit dotNET, weil es nicht Platformunabhängig" Antworten wie "Was ist daran so schlimm, wenn ich von Anfang an weiß, dass ich nur für Windows programmiere?", dämlich sind. Ich weiß nich, was daran so schwer zu verstehen ist.

    Das habe ich deswegen geschrieben, weil der Threadersteller vorher mal geschrieben hatte, dass er für Windows programmieren will. Sorry für meine Dämmlichkeit, bzw. für mein schweres Verständnis. Es ist ja auch klar das jemand der sich an Linux einen ..., nie sagen wird, dass .NET gut ist. Aber gut nun.



  • SirLant schrieb:

    Kingruedi es war ja die rede von _dem_ Petzold 😉
    Aber mit C# kann man ja auch direkt auf die Winapi zugreifen, also braucht man wirklich nur selten ne andere Sprache (unter Windows).

    Das große Problem von .NET ist, dass der .NET-Standard von der .NET Version von MS abweicht, z.B. sind die GUI-Klassen alle nicht im Standard enthalten wodurch ne Plattformunabhängigkeit schwer sein wird.

    Als Windowsprogrammierer ist C# ne feine Sache, auch für Spiele und auch für 3D-Spiele.

    Ich stimme dir bis auf eine Kleinigkeit zu: IMHO weicht die MS-Implementierung nicht vom Standard ab (wär ja auch nur zu dämlich, vom eigenen Standard abzuweichen), sondern bietet einfach noch ne Menge nicht-standardisiertes Zeug zusätzlich. Das ist ein bedeutender Unterschied. Es ist nämlich nicht so, dass z.B. Mono anders ist, es ist nur weniger (wobei die Winforms sogar dabei sind).

    DEvent schrieb:

    also auf mehrfachvererbung und templates will ich nicht verzichten wollen

    Worin siehst du die besonderen Vor- und Nachteile von Templates gegenüber Generics? (Ja, es gibt welche, aber ob du sie kennst und nicht einfach nur irgendwas schlaues sagen willst... ?)
    Mehrfachvererbung ist so ein Thema. Ich halte ein Design, dass sich auf Mehrfachvererbung stützt für falsch. Ich will es nicht ausschließen, dass Mehrfachvererbung mal sinnvoll ist, aber darauf angewiesen sollte man IMHO nicht sein müssen. Nachteile gibt es mehr als genug.
    Letztendlich ist es auch nicht ganz unwesentlich, festzustellen, dass das Implementierung von Interfaces auch eine Form der Vererbung darstellt, nämlich Vererbung der Schnittstelle. In den meisten Fällen reicht diese vereinfachte Form der Mehrfachvererbung, die auch in C++ oft angestrebt wird, locker aus.

    Ich will mich jetzt hier nicht groß an der Diskussion C++/C# beteiligen, aber was mich echt langsam ermüdet, sind Argumente wie "C++ kann viel mehr, Templates, Mehrfachvererbung, Umwandlungsoperatoren, ... !!". 🙄

    Das ist einfach nur zu billig. Wahrscheinlich können 1% der Forenmitglieder hier die ganz fortgeschrittenen Mittel überhaupt wirklich sinnvoll einsetzen. Aber hauptsache, man hat es. 🙄



  • Noodles schrieb:

    Das habe ich deswegen geschrieben, weil der Threadersteller vorher mal geschrieben hatte, dass er für Windows programmieren will. Sorry für meine Dämmlichkeit, bzw. für mein schweres Verständnis. Es ist ja auch klar das jemand der sich an Linux einen ..., nie sagen wird, dass .NET gut ist. Aber gut nun.

    Es geht darum, dass ich keine Lust habe auf diese ewigen Flamewars hier und ich will dir nur klar machen, dass dein Verhalten so etwas begünstigt. Was meinst du mit "Es ist ja auch klar das jemand der sich an Linux einen ..., nie sagen wird, dass .NET gut ist."?

    Wenn du Flamen willst, dann mach das im Neuigkeiten Forum, aber nicht hier.



  • Kleiner_Prog schrieb:

    PS: was ist ein FAQ

    Da findet man Antworten auf häufig gestellte Fragen. Vor dem lesen sollte man da immer nachlesen. Schau dir einfach mal die Unterforen an, die mit "FAQ" anfangen.

    FAQ



  • kingruedi schrieb:

    Es geht darum, dass ich keine Lust habe auf diese ewigen Flamewars hier und ich will dir nur klar machen, dass dein Verhalten so etwas begünstigt.

    Das Du das sagst bringt mich zum lachen, Du bist doch auch einer der in manchen Threads jedem seine Linuxmeinung aufdrücken will!
    IMHO wurde Dir das sogar schon in einem Thread gesagt. 🙄

    kingruedi schrieb:

    Was meinst du mit "Es ist ja auch klar das jemand der sich an Linux einen ..., nie sagen wird, dass .NET gut ist."?

    Nix, lass gut sein, nicht das Du den Thread noch dicht machst. 🙄



  • btw. ich glaube mich zu erinnern, daß die nächste .NET-Version sogar mehrfach-Vererbung unterstützen sollte. Dann könnten auch die .NET-Sprachen damit nachziehen.
    Ich finde schon, daß das Fehlen von MI ein Nachteil sein kann. Wenn MI der beste Weg ist ein Design auszudrücken und ich aber kein MI habe, dann ist das ein Nachteil.

    Optimizer: Deine Aussage bezüglich MI verstehe ich nicht. Was meinst Du, daß das Design falsch ist wenn man von MI abhängt?

    Ich meine entweder man braucht es nicht, dann sollte man es auch nicht benutzen, oder man braucht es. Dann hängt man wohl aber von MI ab und damit ist das Design schlecht? Oder übersehe ich den springenden Punkt?



  • Jester schrieb:

    btw. ich glaube mich zu erinnern, daß die nächste .NET-Version sogar mehrfach-Vererbung unterstützen sollte.

    Das glaube ich nicht, bzw. wäre es mir neu. Hast Du eine Quelle?
    Momentan (Beta 1) funktioniert es nicht und ich denke auch nicht, dass es in der Final funktionieren wird.



  • @Noodles
    es geht hier nicht um meine Meinung zu Linux. Darüber habe ich hier nichts geschrieben. Das ist auch gar nicht der Punkt von dem was ich dir sagen will. Hör einfach auf im Forum zu posten, wenn du dich genötigt fühlst ständig Flames zu provozieren.



  • kingruedi schrieb:

    @Noodles
    es geht hier nicht um meine Meinung zu Linux. Darüber habe ich hier nichts geschrieben.

    Ein Glück ...

    kingruedi schrieb:

    Das ist auch gar nicht der Punkt von dem was ich dir sagen will. Hör einfach auf im Forum zu posten, wenn du dich genötigt fühlst ständig Flames zu provozieren.

    Das Wort ständig hätte ich gern belegt!
    Aber Ok, Du bist Mod und hast immer Recht, sonst hörst Du ja nicht auf und teilst weiter Threads, lächerlich! 🙄

    Edit: Ich bin erstaunt, dass Du antwortest, denn oft wenn Du kritisiert wirst, kommt ja nix mehr von Dir.



  • Hast du irgend ein Problem?



  • Jester schrieb:

    btw. ich glaube mich zu erinnern, daß die nächste .NET-Version sogar mehrfach-Vererbung unterstützen sollte. Dann könnten auch die .NET-Sprachen damit nachziehen.

    Ehrlich gesagt, kann ich mir das nicht vorstellen. Ich nehme das aber gerne zurück, wenn du mir dafür eine Quelle nennen kannst?

    Optimizer: Deine Aussage bezüglich MI verstehe ich nicht. Was meinst Du, daß das Design falsch ist wenn man von MI abhängt?

    Ich meine entweder man braucht es nicht, dann sollte man es auch nicht benutzen, oder man braucht es. Dann hängt man wohl aber von MI ab und damit ist das Design schlecht? Oder übersehe ich den springenden Punkt?

    Wirklich brauchen tut man es doch nie. Es kann einem wohl scheinbar manchmal ersparen, ähnliche Sachen 2- oder 3mal zu implementieren, anstatt einmal. Die Nachteile, die man sich damit erkauft, sind ja hinlänglich bekannt und wiegen die Vorteile nicht immer auf. Tatsächliche glaube ich, dass Mehrfachvererbung von der Masse mehr falsch als richtig eingesetzt wird, oder zumindest unnötig eingesetzt wird.

    Aber deinen Post deute ich jetzt so, dass es wohl Situationen gibt, in denen Mehrfachvererbung (von Implementierungen) wirklich braucht. Das kann ich nicht nachvollziehen, vielleicht kannst du dazu ein Beispiel geben?

    Das eine Objekt mehrere Dinge sein kann, ist klar. Das lässt sich aber auch z.B. in Java implementieren.
    (Wohnmobil extends Fahrzeug implements Wohnstätte. Ein Wohnmobil lässt sich jetzt sowohl als Fahrzeug als auch als Wohnstätte behandeln.)

    Das ist eigentlich schon mal grundlegende Mehrfachvererbung. Wenn ich jetzt eine Klassenhierarchie designe, die aber aus irgendeinem Grund das unbedingt nötig hat, von zwei konkreten Klassen zu erben, dann finde ich was komisch (das wollte ich eigentlich vorhin sagen). Mir fällt dazu beim besten Willen kein Beispiel ein. Fahrzeug und Wohnstätte sind ja nun mehr oder weniger abstrakt.



  • Noodles schrieb:

    Das glaube ich nicht, bzw. wäre es mir neu. Hast Du eine Quelle?
    Momentan (Beta 1) funktioniert es nicht und ich denke auch nicht, dass es in der Final funktionieren wird.

    Ne, leider nicht. Mein Prof hat das neulich behauptet. Er sprach allerdings von Version 3. Hab grad eben mal ne Weile gesucht aber nix gefunden im Netz.



  • Optimizer: natürlich kann man vollständig auf MI verzichten (man kann sogar auf OO verzichten!). Das ist nicht die Frage. Aber wenn es so ist, daß ich ohne MI ähnliche Sachen 2-3mal implementieren muß, dann ist das blöd. Code-Duplikation ist mit das ekligste was es gibt. Und genau das ist der Fall wo ich sage: ich brauche MI. Weil ohne muß ich was unschönes machen.
    Letztlich haben wir doch all diese schönen Features die uns moderne Sprachen bieten nur zu einem Zweck: um unschönen Kram zu vermeiden bzw. wenigstens automatisch gemacht zu kriegen.

    MI wird oftmals falsch eingesetzt, das stimmt. Vererbung auch. Aber wenn man weiß was man tut dann ist es eine feine Sache. Und wenn man jetzt in der Situation ist ein wirklich gutes Design mit MI zu sehen und das aber in eine Sprache gießen muß die es nicht hat, dann ist das einfach ärgerlich.



  • Möchte mich nochmal dafür aussprechen, "Neuigkeiten aus der realen Welt" und "Bullshit/Flamewar/Troll" zu trennen... alle schmeißen ihren Müll hier rein... 😞


Anmelden zum Antworten