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



  • "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?



  • Ftee schrieb:

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

    ...oder war das nicht ironisch gemeint? Dann muss ich dir sagen: Java gibt es schon wesentlich länger.



  • aber grade DAS es JAVA schon so lange gibt, und die Anwendungsentwicklung unter Java sich nicht durchgesetzt hat, zeigt doch das es da auch in Zukunft ein Problem geben wird.

    JAVA ist stark bei Applets, niemand würde auf die Idee kommen eine Anwendung damit zu programmieren...

    Nach Deiner Argumentation (suche bei monster.de) sollte man sogar besser SAP-Systemprogrammierer werden...

    Und nochmal: Es geht hier NICHT um Java oder C#, sondern um C++ oder C#, und dazu habe ich meine Meinung oben schon mal geschrieben.



  • Ftee schrieb:

    Und nochmal: Es geht hier NICHT um Java oder C#, sondern um C++ oder C#, und dazu habe ich meine Meinung oben schon mal geschrieben.

    Ja, wenn ich deine Meinung diesbezüglich mal zitieren darf:

    Ansonstet erscheint es mir deutlich flexibler als Java.

    Beim Vergleich zwischen C++ und C# stellst du also fest, dass deiner Meinung nach C# Java in hinblick auf Flexibilität überlegen ist.

    Hä?! ...und was hat das mit C++ zu tun?! Abgesehen davon hast du immernoch nicht gesagt, warum.

    JAVA ist stark bei Applets, niemand würde auf die Idee kommen eine Anwendung damit zu programmieren...

    Träum weiter. Applets sind eine Spielerei und kein ernsthaftes Anwendungsgebiet von Java. Zudem gibt es diverse Applikationen in Java.

    Nach Deiner Argumentation (suche bei monster.de) sollte man sogar besser SAP-Systemprogrammierer werden...

    SAP ist gefragt, keine Frage. Aber was hat das hiermit zu tun.



  • Nenn mir mal ein paar Anwendungen in Java, die jeder auf dem Rechner hat oder haben sollte. Du sagst ja selbst das es Java schon sehr lange gibt, vielleicht sind mir ja die ganzen unverzichtbaren Anwendungen entgangen....
    Nenn mir ein Packprogramm, ein gutes EMailprogramm, ein Office, einen Browser, und eins mit dem ich Videos anschauen kann.
    Ich werde Sie mir mit Sicherheit anschauen.

    Und komm nicht mit "was gibt es denn für .NET?"
    Ich rede davon was die Zukunft bringt, und nicht was die Vergangenheit brachte.

    Und darum gehts.

    Was die flexibilität angeht, darüber habe ich mich schon ausgelassen, und von Dir kam darauf nichts mehr.

    Mit Deiner Logik müsste ja reines C immer noch das beste sein, weil es das ja schon viel länger gibt als die Weiterentwicklungen wie Java, C++ oder halt C# .... warum denn überhaupt eine Sprache weiterentwickeln?



  • Beispiele für Programme, die mit Java gemacht sind:

    Anwendungen:

    JPhotoBrush Pro : http://www.jphotobrushpro.com/
    JBeam : http://www1.jbeam.de/index.php3?nv=221&pg=22&ln=en
    Morphon : http://www.morphon.com/
    Folder : http://www.jzone.de/java/foldor/index.htm
    AOKabc : http://www.aokabc.com/index.htm
    Sketsa, Ekspos : http://www.kiyut.com/
    EditLive! : http://www.ephox.com/news/pressArticle.asp?article_id=33
    ScheduleWorld : http://www.scheduleworld.com/
    Mu : http://mu.dev.java.net/

    Spiele (100% Java):

    Magicosm : www.magicosm.net
    Arkanae : http://arkanae.tuxfamily.org/en/index.html
    Law And Order : http://www.gamerankings.com/htmlpages2/531108.asp
    Alien Flux : http://www.puppygames.net/index.htm

    Spiele (größtenteils Java):

    IL-2 Sturmovik : http://www.gamerankings.com/htmlpages2/354449.asp

    IDEs und andere Tools für die Programmierung:

    JBuilder : http://www.borland.com/jbuilder/index.html
    Netbeans : http://www.netbeans.org/
    Eclipse : www.eclipse.org
    Together
    IzPack : http://www.izforge.com/izpack/

    Server Applications etc.:

    IBM WebSphere
    JBoss Application Server
    Tomcat (bzw. alles aus dem Jakarta-Projekt: http://jakarta.apache.org/ )
    BEA Weblogic

    Applets:

    Karte bei www.map24.de
    Diverse Newsticker

    Handy-Spiele:

    Diverse unter: http://www.java.com/en/explore/games/splinter_cell.jsp

    So, das sind die Java-Programme, die ich auf Anhieb aus dem Hut zaubern kann. Sicherlich ist nichts dabei, was man unbedingt haben muss, aber es zeigt doch deutlich, dass durchaus alles Mögliche in Java programmiert wird.

    Sicherlich hat Java schwierigkeiten, sich auf dem Desktop durchzusetzen, bzw. zu etablieren, dies liegt größtenteils daran, dass die Programme relativ viel Speicher brauchen und etwas langsamer als C++-Programme sind. Die gleichen Nachteile haben .NET-Programme auch. Somit ist zu vermuten, dass .NET auch starke Schwierigkeiten auf diesem Markt haben wird.



  • Ftee schrieb:

    Mit Deiner Logik müsste ja reines C immer noch das beste sein, weil es das ja schon viel länger gibt als die Weiterentwicklungen wie Java, C++ oder halt C# .... warum denn überhaupt eine Sprache weiterentwickeln?

    Nein, wenn wirkliche Verbesserungen vorliegen, dann bin ich natürlich dafür, das Neue zu nutzen, aber mit .NET kommt kein großer Fortschritt gegenüber der Konkurenz (Java und nicht C++).



  • .Net-Anwendungen im Desktop-Bereich (WinForms) werden niemals plattform unabhängig sein. Nicht in ein Jahr und auch nicht in 5 Jahren.
    Wenn tatsächlich Mono die WinForms 100% portiert haben sollte kann man davon ausgehen das MS die Patente auf die .Net API ausspielen wird (siehe entsprechenden Heise-Artikel) und dazu das Zitat von Ballmer zur Cebit.

    Es sei denn MS hätte vor Linux zu pushen.
    Deshalb beschränkt sich auch Mono nicht auf WinForms, viel mehr wird GTK# gepusht.
    Zu glauben das sich dank .NET irgendwann mal MS Office oder ähnliche Win-Anwendung auch auf Linux oder andere alernative OS ausführen lassen würden halte ich für naiv.

    .Net kann man für Anwendungsentwicklung unter Windows nutzen. Auf dieser Basis kann man diskutieren.

    O'Dog




Anmelden zum Antworten