programming language war



  • Hi!

    Ich programmiere (leider aufgrund meines relativ jungen Alters) erst seid ~2 Jahren intensiv C++. Ich habe 7 Bücher (auch die 'effective' Reihe, + bald noch das von Bjarne persönlich 😉 ) teilweise (>)2 mal gelesen und denke daher, ein relativ solides Basiswissen über C++ (und die STL) zu haben.

    Ich finde die Sprache ansich enorm faszinierend und bin im Prinzip "Fanatiker".

    Nun ist es so, dass wir in der Schule zwei Jahre mit C angefangen haben (sehr löblich!! 🙂 ) und jetzt auf Java umgestiegen sind. 😡 AAAARRHHHHHHH!!!!!

    Ok, ich verstehe das. Schülern mit teilweise wenig Freude an der Programmierung C++ zuzumuten, wäre totaler Wahnsinn.
    Da ich im Unterricht (und auch auf Tests 😉 ) meine Abneigung zu Java zum Ausdruck bringe und auch oft von Kollegen gefragt werde, warum ich denn als C++ Programmierer keine große Freude an Java habe, entschloss ich mich auf meiner Webseite eine page über "C++ versus Java" zu schreiben - und das aber möglichst objektiv.

    Die Frage an euch: Habt ihr vielleicht irgendwo Links / pro/contra Sachen etc. ?

    ps: Natürlich kann das ganze nicht pauschal im Sinne "Die Sprache ist schlecht und die ist gut" betrachtet werden, ich versuche eher spezifische Details der Sprachen zu vergleichen



  • Die zwei Sprachen sind zwar grundsätzlich nicht sonderlich gut zu vergleichen, besser wäre da eher C# mit Java. Aber wenn du meinst kannst du ja hier im RUDP-Forum und im Java-Forum mal nach derartigen Threads suchen.

    Kommen sehr viele Diskussionen zum Vorschein.

    MfG SideWinder



  • Wie alt bist du?
    naja java find ich persönlich eigentlich nicht so toll...



  • Hallo,

    was ich nie verstehe ist, wieso es immer um "entweder/oder" geht. Java hat seine Vor- und Nachteile, genauso wie C++. Aber seis drum, wurde schon öfters diskutiert.

    "C++ versus Java" Seite gibts genügend im Netz, ich würde dir empfehlen deinen Webspace lieber für andere Dinge zu nutzen.



  • SideWinder schrieb:

    besser wäre da eher C# mit Java.

    😃 also schon allein der Gedanke an C# ruft eine seltsame Übelkeit in mir hervor.
    Ich zitiere aus ccc Chaosradio Sendung 68 über "Objektorientierte Programmierung":
    C# ist eine Mischung aus C++ und Java - oder besser gesagt eine Mischung von Microsoft und Java. Kurz, der verzweifelte Versuch von MS, den Java Boom einzuholen!

    Tja, es wird mir wohl nichts anderes übrig bleiben, als diverse Foren zu durchforsten und zu sammeln...

    mfG
    C++onrad



  • Ich zitiere aus ccc Chaosradio Sendung 68 über "Objektorientierte Programmierung":

    Seine Meinung über irgendwas aus einer (fragwürdigen?!) Quelle zu bilden wirkt auch nicht gerade sehr professionell.



  • CarstenJ schrieb:

    Ich zitiere aus ccc Chaosradio Sendung 68 über "Objektorientierte Programmierung":

    Seine Meinung über irgendwas aus einer (fragwürdigen?!) Quelle zu bilden wirkt auch nicht gerade sehr professionell.

    Ich zitiere den Wortlaut, da dieser exakt meiner Meinung entspricht



  • C++onrad schrieb:

    Ich zitiere den Wortlaut, da dieser exakt meiner Meinung entspricht

    Dann hast du keine besonders fundierte Meinung. Ich mag zwar C# und .NET auch nicht, allein aus einer aversion gegen alles, was Herstellerabhängig und noch schlimmer: (schon wieder) Microsoftabhängig ist. Aber ich kann trotzdem nicht leugnen, das MS mit seiner .NET Initiative was ganz gutes auf die Beine gestellt hat. Das kann keiner, der

    1. ein bisschen Hintergrundinfo über das ganze hat und
    2. auch als MS Gegner so etwas ehrlich zugeben kann


  • Du solltest nicht eine Seite über Java versus c++ machen, sondern die verschiedenen Einsatzgebiete der Sprachen aufzählen. Gerade im betriebswirtschaftlichen Bereich hat Java seine stärken. Brauchst Du in einem Programm viel Performance, bzw. musst nah an die Maschine ran, dann nimm c oder c++.

    In der Praxis entscheidet man anhand der Anforderungen eines Projektes welche Sprache man nimmt.



  • @Magoon: Sehr richtig 👍



  • Ich denke du solltest es mit der Seite sein lassen.

    C++onrad schrieb:

    Hi!
    Da ich im Unterricht (und auch auf Tests 😉 ) meine Abneigung zu Java zum Ausdruck bringe
    .....
    über "C++ versus Java" zu schreiben - und das aber möglichst objektiv.

    Diese beiden Sätzen widersprechen sich. Wenn du eine Abneigung gegen Java hast,
    und ein C++ Fanatiker bist wirst du, und wenn du dich sonstwie anstrengst, keine
    Objektivität erreichen. Das geht nicht solange mann Programmiersprachen nicht nüchtern betrachtet.

    Ich könnte die Seite auch nicht erstellen, sie würde wohl auch nicht hundertprozentig objectiv sein, denn ich sehe viele Nachteile bei C++ die andere oft als Vorteil sehen.



  • Über so etwas einen Artikel schreiben kann nur jemand, der beide Sprachen gleichermaßen hasst.



  • Optimizer schrieb:

    Über so etwas einen Artikel schreiben kann nur jemand, der beide Sprachen gleichermaßen hasst.

    oder beide Sprachen gleich gut findet. Nur das gibt wohl nicht 😉



  • Magoon schrieb:

    Du solltest nicht eine Seite über Java versus c++ machen, sondern die verschiedenen Einsatzgebiete der Sprachen aufzählen. Gerade im betriebswirtschaftlichen Bereich hat Java seine stärken. Brauchst Du in einem Programm viel Performance, bzw. musst nah an die Maschine ran, dann nimm c oder c++.

    Deshalb frage ich mich immer noch, was J2ME auf Mobile Devices zu tun hat in der Spieleentwicklung. Schoen - funktioniert auf allen ein bischen, aber wirklich reissen kann man damit nichts, ausser man hat ein >= Serie 80 Phone, und da ist dann Symbian und C++ eh wieder besser.

    Was wirklich suckt an Java: Keine Enums, Keine Templates, Selbst mit Obfuscator viel zu grosse Archive, was auch an dem sch... Zip Format liegt, wenn man viele Files hat.

    P.S. und ja - ich hasse Java, auch wenn ich damit im Moment etwas verdiene 😉



  • SnorreDev schrieb:

    P.S. und ja - ich hasse Java, auch wenn ich damit im Moment etwas verdiene 😉

    Soso, du hasst also eine Sprache. SPricht nicht für deine Intelligenz. Naja, Fachinformatiker eben...

    @ C++onrad: Naja, bei dir ist die Sache recht einfach. Du bist ein Kind, dass jetzt etwas C++ kann und C++ natürlich cooler als Java findet. Da du noch nicht im Berufsleben stehst und somit die Praxistauglichkeit beider Sprachen noch nicht erlebt hast, sind deine Äußerungen bezüglich der Qualität der Sprachen sowieso unwichtig.



  • SnorreDev schrieb:

    Deshalb frage ich mich immer noch, was J2ME auf Mobile Devices zu tun hat in der Spieleentwicklung. Schoen - funktioniert auf allen ein bischen, aber wirklich reissen kann man damit nichts, ausser man hat ein >= Serie 80 Phone, und da ist dann Symbian und C++ eh wieder besser.

    Was ist besser?

    Was wirklich suckt an Java: Keine Enums,

    Java 1.5 🙂 Die haben wirklich gefehlt.

    Keine Templates

    Ich finde, dass die Generics das allermeiste mitbringen, was man in der Hinsicht braucht. Du nicht? Benutzt du noch 1.4? Selber schuld. Das einzige, was du für 1.5 brauchst, ist ein neuer Compiler.

    Selbst mit Obfuscator viel zu grosse Archive, was auch an dem sch... Zip Format liegt, wenn man viele Files hat.

    Kannst du das bitte genauer ausführen?? Ein fertig compiliertes C++ Programm ist um einiges größer als so ein Archiv. 😕

    P.S. und ja - ich hasse Java, auch wenn ich damit im Moment etwas verdiene 😉

    🙄



  • > Was ist besser?
    Symbian / C++ hat keine beschreankung der Archiv groesse und sehr viel schnellere Reaktionszeiten. Bei den neueren Devices ab Serie 80 wird's aber um einiges besser. MIDP 2 ist ein schritt in eine gute Richtung, und die Groesse des HEAP ist um einiges gewachsen, ebenso die groesse des Archives.

    > Ich finde, dass die Generics das allermeiste mitbringen, was man in der Hinsicht braucht. Du nicht? Benutzt du noch 1.4? Selber schuld. Das einzige, was du für 1.5 brauchst, ist ein neuer Compiler.
    Nicht ganz, ich nutze Java nur fuer Mobile Devices, also hilft mir ein Update auch nichts.

    > Kannst du das bitte genauer ausführen?? Ein fertig compiliertes C++ Programm ist um einiges größer als so ein Archiv. 😕
    Also wenn du dich nicht Tricks bedienst, wie z.B. die Tile's fuer ein Spiel in einem File zu Pagen, sondern lauter einzel Images ablegst, hast du nach zwanzig 16x16 Tiles schon 5 KB an Overhead, alleine durch das management vom Archiv. Da gibt's bessere Methoden, aber naja - es wurde ZIP verwendet, kann man nix dran aendern.

    > P.S. und ja - ich hasse Java, auch wenn ich damit im Moment etwas verdiene ;-)[/quote] 🙄[/quote]
    Bis auf bei normalen App's das Swing Packet, finde ich Java halt nicht wirklich toll. Das IO Handling nervt, die Punkte, die ich oben angesprochen habe auch.

    P.S. liegt wohl daran, dass ich ein alter Lowlevel Freak bin.

    @InfoStudent
    Geh wo anders trollen. Nicht mal noetig sich zu registrieren damit man weiss wer du bist, aber doof daherreden, sowas hamma gern!



  • SnorreDev schrieb:

    > Ich finde, dass die Generics das allermeiste mitbringen, was man in der Hinsicht braucht. Du nicht? Benutzt du noch 1.4? Selber schuld. Das einzige, was du für 1.5 brauchst, ist ein neuer Compiler.
    Nicht ganz, ich nutze Java nur fuer Mobile Devices, also hilft mir ein Update auch nichts.

    DAS ist mir nun wirklich nicht klar. Du weisst schon, dass du für 1.5 nicht mal eine andere VM brauchst? Du kannst die Generics praktisch als statische Typprüfung durch den Compiler betrachten, der anschließend wieder die gute alte Object-Klasse einsetzt.

    Wie das mit der I/O auf dem Handy ist, weiss ich ehrlich gesagt nicht. Auf jeden Fall finde ich die I/O Streams vom "normalen" Java für Desktop Systeme godlike. Keine Ahnung, ob das auf Handies anders gemacht wird.

    P.S. liegt wohl daran, dass ich ein alter Lowlevel Freak bin.

    Ja, das ist auch das Problem, das Microsoft bzgl. C# Sorgen macht. Ich war auf ein paar Seminaren von MS und die machen sich wirklich Sorgen, wie sie die Entwickler dazu bewegen können, von low-level und der WinAPI loszukommen. 🙂



  • Optimizer schrieb:

    DAS ist mir nun wirklich nicht klar. Du weisst schon, dass du für 1.5 nicht mal eine andere VM brauchst? Du kannst die Generics praktisch als statische Typprüfung durch den Compiler betrachten, der anschließend wieder die gute alte Object-Klasse einsetzt.

    Das ist falsch. "-source 1.5 -target 1.4" funktioniert mit dem aktuellen 1.5er javac nicht mehr. Mit anderen Worten: 1.5er Code läuft nicht auf früheren JVMs. (Der Code von früheren Java-Versionen läuft aber natürlich weiterhin auch mit einer 1.5er JVM.)



  • > DAS ist mir nun wirklich nicht klar. Du weisst schon, dass du für 1.5 nicht mal eine andere VM brauchst? Du kannst die Generics praktisch als statische Typprüfung durch den Compiler betrachten, der anschließend wieder die gute alte Object-Klasse einsetzt.<<
    Leider ist das auf Mobile Devices etwas anders, aber ich werde es sicher mal in meinem Picture Spider probieren, wenn ich wieder etwas mehr Luft habe.

    Wie das mit der I/O auf dem Handy ist, weiss ich ehrlich gesagt nicht. Auf jeden Fall finde ich die I/O Streams vom "normalen" Java für Desktop Systeme godlike. Keine Ahnung, ob das auf Handies anders gemacht wird. <<
    Ich meinte I/O auf Desktop Systemen. Ich finde es einfach Umstaendlich ueber die X Objekte und Klassen zu gehen, um einen Stream zu handlen. Ist aber wohl geschmackssache.
    Auf Handy's hast du weitaus schlechtere Moeglichkeiten. Da kannst du nur soetwas wie die Registry, in der du Objektname und Value zuordnen kannst, ansonsten musst du dich wie in OpenGL mit Herstellerspezifischen Sachen herumschlagen, was nicht immer zu vermeiden ist - siehe Nokia's FullCanvas, Vibra Funktionen usw.

    > Ja, das ist auch das Problem, das Microsoft bzgl. C# Sorgen macht. Ich war auf ein paar Seminaren von MS und die machen sich wirklich Sorgen, wie sie die Entwickler dazu bewegen können, von low-level und der WinAPI loszukommen. :)<<
    Kann ich verstehen, aber die aelteren, bleiben halt gerne auf dem Status, der nicht so weit vom den Grundlagen entfernt sind, und bauen sich lieber drumherumm alles selbst. Deshalb bin ich schon am ueberlegen, ob ich nicht auf Treiberentwicklung umschwenken sollte.

    P.S. J2ME mit MIDP / CLDC 1.0 haben nicht mal nen Stringtokenizer - sogar den musste ich mir selbst bauen 😉


Anmelden zum Antworten