HILFE ! ! Frage ans Forum, was ist besser C# oder C++



  • Erhard Henkes schrieb:

    Ist das MONO-Projekt jetzt schon fertig?

    Natürlich nicht. Wenn es in einem Jahr fertig wird, dann ist das noch schneller, als ich es erwarte. Ich würde nicht auf Mono setzen, denn man weiß nicht, was daraus wird.

    Erhard Henkes schrieb:

    C# auf Windows und Linux hätte für GUI's einen gewissen Charme.

    Da du es auf die GUI abgesehen hast: Da ist die Statusseite für die WinForms:
    http://www.go-mono.com/class-status-System.Windows.Forms.html
    Die sind also bezüglich der WinForms gerade mal bei 49%.



  • @Erhard

    hier setzt genau die MS Strategie ein. Alle reden von Platform unabhängigen GUIs, Webservices, Datenbank Anbindungen. Das ist in wirklichkeit alles Pustekuchen! Warum das so ist, lässt sich leicht erklären. Der dotNET Standard (von der ECMA und ISO) umfasst keine GUI etc. Die GUI Erweiterungen etc. sind proprietäre MS Erweiterungen. Deswegen ist es schwer für die einzelnen Projekte diese Erweiterungen zur Verfügung zu stellen. Also gibt es keine wirklich Platformunabhängigkeit! Was MS erzählt ist ein Werbegack, der darauf basiert, dass sie ihre eigenen Standards erweitert haben.



  • Ohne die zugesagte Linuxunterstützung macht das wirklich keinen Sinn. Da habt ihr Recht. MS kann daran (noch) nicht interessiert sein. Also bleiben wir bei C++. 😉



  • oder Java

    -.-



  • java ist auf gar keinen fall eine bessere sprache als c++. ist doch voellig verkuemmert und umstaendlich. was bei java gut ist ist die umfangreiche standard lib.



  • flame war java gegen c++ macht im c#-Forum sicher keinen Sinn. 😉

    Beide Sprachen werden professionell genutzt, überhaupt keine Diskussion.
    Aber das wird dir gefallen:
    http://www.gulp.de/kb/tools/gulpometer/pdb.html#Programmiersprachen



  • Naja, bei Gulp scheint Java diesen Monat einen kleinen Durchhänger zu haben. Ich denke aber nicht, dass das dauerhaft ist. Wenn man sich die Jobangebote bei Monster.com oder Monster.de anguckt, dann sieht es da schon besser für Java aus.



  • Ich erwarte nicht, das der Code sofort hundertprozent umgesetzt werden kann, allerdings ist der Standart festgelegt, und das erleichtert das ganze.

    es spricht ja nichts dagegen, die forms für die GUI unter linux halt ebenfalls windows.forms zu nennen.

    Wichtig ist (so wie ich das bis jetzt verstanden habe), daß das framework ebenfalls diese forms unterstützt. In dem Fall steht dem erstellen der Anwendungen unter Linux und dem ausführen unter Windows kein Hindernis im Wege. Umgekehrt natürlich ebenfalls.

    Ich denke, das .NET eine Zukunft haben wird, wenn man sich anschaut welche Unmenge an Sprachen schon für das .NET Framework umgesetzt wurde.

    Und wenn ich die Wahl verschiedener Sprachen habe, und dann noch den Code unter verschiedenen Systemen ausführen kann, dann drückt das DEUTLICH die Entwicklungszeit, und damit die Kosten für die erzeugten Anwendungen.

    Es WIRD eine Zukunft haben. Wenn nicht, warum sollte sich Ximian z.B. auf das erstellen eines Frameworks stürzen?

    Und wenn man in Anbetracht des Fortschritts (um die 50% sind ziemlich weit!) bedenkt wie kurz es erst .NET im Gegensatz zu Linux bzw. Windows gibt, und daß es noch kein wirkliches "Framework" für Linux gibt welches 100% Windows emuliert, dann finde ich es ziemlich gigantisch wenn man immerhin schon mal davon spricht es fertig bekommen zu wollen!

    Wenn das (vielleicht mitte nächsten Jahres?) fertig ist, hoffe ich Sprach- und Plattformunabhängig (die Kombination ist das Clou!) Anwendungen mit GUI zu entwickeln....

    ... dann würde ein Traum wirklich wahr werden.... 🙂



  • "Sprach- und Plattformunabhängig"

    Das ist reizvoll. Dann wäre vor allem für Linux ein enormes Wachstumspotenzial absehbar. Schade, dass C++ es so schwer auf .NET hat.



  • Hmm..... man kann (unter Windows) mit Visual C++ Code für .NET erzeugen, allerdings muss man da ziemlich viele Schalter am Compiler umlegen 😉
    Und ob das Compilat dann wirklich komplett ohne nativen Code ist, wage ich mal zu bezweifeln.....

    Aber was vermisst Du?
    Die Pointer? Da wurde Lösungen geschaffen das man Sie nicht mehr brauch (allerdings mag ich Pointer auch sehr gerne, aber ok, man kann nicht alles haben 😉 ) ....
    Mehrfachvererbung geht nicht, ok, das ist lästig, aber immerhin kann ich ein Objekt von mehreren Interfaces ableiten.
    Das der gesamte Code Inline ist, daran muss ich mich auch erst gewöhnen....
    Und das if(...) innerhalb der Klammer einen bool haben will (keinen implizit gecasteten int) mag ich nicht wirklich...

    Ansonstet erscheint es mir deutlich flexibler als Java. Und die zusätzlichen Sprachmittel werde ich in C++ wohl noch vermissen 😉

    Gruss.



  • "Sprachunabhängig"?

    Ok, wenn das .NET-Framework so sprachunabhängig ist, warum sollte man dann C# lernen. Es gibt doch andere Sprachen, wie z.B. C++ oder Java, die es nicht nur in einer .NET-Variante gibt, sondern auch für andere Dinge zu gebrauchen sind. 😃 :p

    Oder ist das mit der "Sprachunabhängigkeit" doch nicht sooo zutreffend?

    Abgesehen davon: Was bringt einem das denn nun im Klartext? Willst du ein Projekt haben, an dem mehrere Programmierer in unterschiedlichen Programmiersprachen arbeiten? Das wäre zumindest ziemlich dumm, weil das Programm dann automatisch schwer wartbar wird. Unter Umständen muss jemand, der das Programm irgendwann mal warten möchte, diverse Sprachen können. Ich sehe nicht, wo da der Vorteil sein sollte.

    Aber bestimmt soll das eh anders genutzt werden, richtig? Wie denn, was ist der Vorteil?

    Ansonstet erscheint es mir deutlich flexibler als Java.

    Kannst du das mal näher erläutern?



  • Java auf .NET, das ist es. 😃 😉
    Gegen MS kommt auf Dauer sowieso keiner an. Also besser arrangieren.



  • warum sollte man dann C# lernen. Es gibt doch andere Sprachen, wie z.B. C++ oder Java, die es nicht nur in einer .NET-Variante gibt

    Hast Du Dir C# schonmal angeschaut? Ich habe es angeschaut, und muss sagen das es wirklich eine sehr interessante Sprache ist.
    Die einzigen Punkte die mir wirklich fehlen, sind oben schon aufgelistet, aber die wurden durch anderes sehr gut ersetzt. Es wurde viel gutes aus verschiedenen Sprachen zusammengefasst.

    Oder ist das mit der "Sprachunabhängigkeit" doch nicht sooo zutreffend?

    Es ist zutreffend, wenn du Dich an die Konventionen hältst.... Es ist meines Erachtens eher so zu verstehen, das ich mir aussuchen kann in welcher Sprache ich entwickel. Das es dann unter verschiedenen Systemen läuft, dafür sorgt das Framework, das der entstandene IL gleich sein soll, egal aus welcher Sprache es letztendlich compiliert wurde.

    Willst du ein Projekt haben, an dem mehrere Programmierer in unterschiedlichen Programmiersprachen arbeiten?
    Das wäre zumindest ziemlich dumm, weil das Programm dann automatisch schwer wartbar wird. Unter Umständen muss jemand, der das Programm irgendwann mal warten möchte, diverse Sprachen können. Ich sehe nicht, wo da der Vorteil sein sollte.

    Folgendes: Du suchst einen Programmier, und kannst jemanden bekommen der Perfekt VB kann. Dein Programm soll allerdings in C++ entstehen...
    Nun muss sich der Programmierer mit allem rumschlagen was die Sprache ausmacht. Das ist ja nicht nur die Systax, sondern zusätzlich noch die Typen, die Standart-Library, usw.

    Der Programmierer kommt nicht in Frage.

    Setze nun hinter die Sprachen .NET, und schon muss derjenige nur noch die Syntax lernen...

    Spezielle Lösungen, für die sich bestimmte Sprachen anbieten, können sogar in dieser Sprache direkt geschrieben werden. Das ist sehr wohl ein Vorteil.

    Und selbst wenn das Projekt in verschiedenen Sprachen geschrieben ist, die Sprachmittel sind überall die selben, und die Syntax selbst ist immer relaitiv leicht zu erlernen.
    Ich warte auch ein Delpi-Programm ohne das ich je selbst eins geschrieben habe, aber ich kenne die Borland VCL von Borland C++ .....

    Aber bestimmt soll das eh anders genutzt werden, richtig? Wie denn, was ist der Vorteil?

    Es ist ein recht grosses Projekt, welches aus verschiedenen einzelnen Anwendungen entsteht, und an dem verschiedene Programmierer arbeiten. Auf C# fiel aus dem Grunde die Wahl, weil mit der Sprache auf allen Systemen gearbeitet werden kann. Unter anderem ist auch im Gespräch einen Teil als verteilte Anwendung zu realisieren, und dazu ist .NET schliesslich gemacht worden 😉

    Ansonstet erscheint es mir deutlich flexibler als Java.
    ----
    Kannst du das mal näher erläutern?

    Ganz einfach:
    Angenommen, ein bestimmter Programmteil bei dem feststeht das er unter Windows läuft, ist sehr zeitkritisch.... jetzt schreibe ich einen "normale" .dll mit den zeitkritischen Code (in C#, C++, was auch immer) bei dem ich direkt auf die Systemressourcen zugreife. Also nativen Code. ..... und habe kein Problem das einzubinden.

    Ein Programm soll mit einer vorhandenen ActiveX oder OCX oder halt ner DLL zusammenarbeiten, die es so schon gibt, und es gibt vom Hersteller eines Gerätes nur dieses als Schnittstelle. Sonst gibt es nichts. Kein Problem, kann ich ohne weiteres einpflegen.

    Ich kann alles machen. Ich kann Systemübergreifend arbeiten ..... ich muss es aber nicht. Ich habe Freiheit. Je nach Projekt und Zielaufgabe kann ich darüber frei entscheiden, und kann bei "meiner" Sprache bleiben.

    Das nenn ich absolut flexibel. 🙂

    @Erhard:
    Gibts schon 😉

    Gruss,
    Ftee



  • Und ob da eine Firma gegen ne anderen kämpft (wie auch immer) ist mir relativ wurscht.

    Ich verdiene mit Programmieren mein Geld, und ernähre mich davon. Ich bin darauf angewiesen, das ich mein Wissen 1) breit und 2)sinnvoll gestalte in der Hinsicht was gebraucht wird.

    Und ich wäre ziemlich blöd, wenn ich mich einer Technologie die Zukunft haben wird verweigern würde, nur weil Sie von einem Monopolisten entworfen wurde.
    Und der Entwurf hat wirklich Hand und Fuss.



  • Ftee schrieb:

    Hast Du Dir C# schonmal angeschaut? Ich habe es angeschaut, und muss sagen das es wirklich eine sehr interessante Sprache ist.

    Nun, ich habe es mir zumindest gut genug angeschaut, um zu wissen, dass C# bis auf ein paar Details größtenteils Java entspricht. ...und du sagst ja selbst, dass es Java für .NET gibt (bzw. J#, was ne kastrierte Javaversion ist). Zudem ist für Java schon jetzt eine weit größere Plattformunabhängigkeit vorhanden, als es sie für .NET gibt, selbst wenn man Mono schon dazurechnet.

    Also: Warum sollte man C# lernen?



  • Ftee schrieb:

    Es ist zutreffend, wenn du Dich an die Konventionen hältst.... Es ist meines Erachtens eher so zu verstehen, das ich mir aussuchen kann in welcher Sprache ich entwickel. Das es dann unter verschiedenen Systemen läuft, dafür sorgt das Framework, das der entstandene IL gleich sein soll, egal aus welcher Sprache es letztendlich compiliert wurde.

    Ach so. Wenn man sich die aktuelle Plattformunabhängigkeit von .NET anguckt, dann beschränkt die sich ja auf Windows...

    Konnte man vor .NET nicht auch selbst entscheiden, ob man ein Windows-Projekt nun in VB, C++, Delphi oder einer anderen Sprache entwickelt?!



  • Ftee schrieb:

    Und wenn man in Anbetracht des Fortschritts (um die 50% sind ziemlich weit!) bedenkt wie kurz es erst .NET im Gegensatz zu Linux bzw. Windows gibt, und daß es noch kein wirkliches "Framework" für Linux gibt welches 100% Windows emuliert, dann finde ich es ziemlich gigantisch wenn man immerhin schon mal davon spricht es fertig bekommen zu wollen!

    Naja, .NET gibt es jetzt seit 1,5 Jahren. Sooo neu ist es also auch nicht. Wenn man davon ausgeht, dass Mono mindestens noch ein weiteres Jahr braucht, um fertig zu werden, dann wird es erst fertig, wenn vermutlich schon die nächste .NET-Version auf dem Markt ist. Ich denke, Mono wird veraltet sein, bevor es überhaupt fertig ist. Zudem ist das nicht mit einer Windows-Emulation in Linux gleichzusetzen, sondern eher mit dem Vorhandensein einer JVM für Linux. ...und sowas gibt es schon seit Jahren, sogar von diversen Firmen.



  • du kannst entscheiden in welcher Sprache du entwickelst, und du kannst auch in verschiedenen Sprachen entwickeln. Je nachdem was von deinem Compiler unterstützt wird.

    http://www.dotgnu.org/
    http://www.go-mono.com/
    http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&displaylang=en
    http://research.microsoft.com/collaboration/university/europe/rotor/

    Da findest Du weitere Compiler (bzw. Infos)



  • Ich denke, Mono wird veraltet sein, bevor es überhaupt fertig ist.

    Denke ich nicht. Aber das wird die Zeit zeigen. Sicherlich wird das Framework erweitert, aber alte Sachen werden wohl eher nicht rausgelöscht...

    Zudem ist das nicht mit einer Windows-Emulation in Linux gleichzusetzen, sondern eher mit dem Vorhandensein einer JVM für Linux. ...und sowas gibt es schon seit Jahren, sogar von diversen Firmen.

    Java gibt es ja auch nur unwesentlich länger...



  • Ftee schrieb:

    Java gibt es ja auch nur unwesentlich länger...

    Ich verstehe deine Logik nicht. Wen interessiert es, wie lange es etwas schon gibt? Die Frage ist doch eher: "Was ist jetzt vorhanden und was wird in absehbarer Zukunft vorhanden sein?"

    Abgesehen davon ist es ein Vorteil von Java gegenüber .NET, dass es schon länger vorhanden ist. Es hat sich nämlich schon etabliert. Java wird überall eingesetzt und .NET nicht. Wenn du z.B. bei Monster.com eine Stelle für Java oder C# suchst, dann findest du 5 mal mehr für Java. Für einen Programmierer ist es somit sicherer, auf Java zu setzen, da es da mehr Jobs gibt. C# ist hingegen ein Wackelkandidat, bei dem noch nicht abzusehen ist, was daraus wird. Wenn dir eine Firma gehört, dann ist für dich das Vorhandensein von qualifizierten Programmierern für eine Sprache relevant. Auch hier liegt Java deutlich vor C#. Die Universitäten lehren kein C#, sondern Java. Warum sollte man hier also auf C# setzen? Damit man seine Programmierer erstmal schulen lassen muss?


Anmelden zum Antworten