C++ oder Java?

  • Hallo zusammen,

    also ich programmiere jetzt schon seit einigen Jahren mit AutoIt und möchte mich mal langsam nach anderen Programmiersprachen umsehen und lernen. Ich habe vor einigen Monaten ein Buch über C++ gekauft und angefangen es zu lesen (allerdings habe ich bei der mitte aufgehört, wegen meine Ausbildung (Schule, Arbeit, ...) und kann nur sagen: Es ist mittel bis schwer. Man hört aber auch immer viel von Java.

    Ich habe mich mal so im Google umgesehen und auch hier im Forum, kann aber kein Fazit daraus ziehen, welche von den beiden Programmiersprachen besser geeignet ist. Gerade für Anfänger bzw. Einsteiger!

    Ich würde mir nähmlich dann ein Buch über die Programmiersprache kaufen um es zu lernen.

    Ich habe auch noch ein paar Fragen zu den Unterschieden, der zwei Programmiersprachen. Bezüglich auf: Schwierigkeit (Lesbarkeit des Syntax, Einstieg zum lernen, ...) und Performance.

    MfG

    Mehmet T.

    • Offizieller Beitrag

    Also wenn du dich nach etwas anderem umsehen möchtest, stell dir vorher die Frage warum.
    Wenn du gerne was Neues lernst - OK, ist immer ein akzeptabler Grund. ^^
    Wenn du nicht zwingend mit Objekten arbeitest und auch sonst keine zeitintensiven Programme schreibst, gibt es eigentlich keinen Grund sich Java oder C++ zuzuwenden.
    Die jahrelange Arbeit mit AutoIt bringt einen entscheidenden Nachteil mit sich ;( - wir denken "variant". Die anderen Sprachen verlangen aber ganz konkrete und saubere Datentypen. Mal einfach so zum Debuggen 'MsgBox()' geht nicht. Da muß der auszugebende Wert auch ein String sein.
    Ich versuche mich gerade für mein Notepad++ Interface ein wenig an C++. Ganz schön hartes Brot für einen AutoItler.
    Aber wenn es der Erweiterung des Horizonts dienen soll, leg auf jeden Fall los. Beide Sprachen sind plattformunabhängig, wobei ich dann schon C++ mit EXE und DLL gegenüber Java bevorzugen würde.

  • Java ist einfach aber schnarchend langsam (siehe Minecraft oder früher Terminals der Sparkasse).

    C++ ist sehr schnell, aber nicht gerade einfach. Kommt natürlich auf die Definition an. Ich finde es nicht schwer, solange man keine Windows-GUIs macht. Liegt aber wahrscheinlich daran, dass ich viel mit Irrlicht arbeite.

  • Java hat einen Vorteil gegenüber C++: es ist Plattform unabhängig, wobei Java ähnliche Syntax hat wie C++.

    Ich versuche auch seit einigen Jahren mit C++ anzufangen, aber mir fehlt noch der Einstieg, zumal ich mich an AutoIt sehr gewöhnt habe und keine zeitkritischen Anwendungen schreiben muss.

    Viel Spaß mit C++.

    Selam,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    • Offizieller Beitrag

    Java wäre meine Empfehlung. Es ist einfachER plattformunabhängig als C++ (da sind oft Anpassungen nötig, v.a. bei graphischen Programmen). Außerdem bringt es viel (!) mehr von Haus aus mit an Funktionen. Die Standardbibliothek von Java ist klasse (kleiner Insiderwitz obendrein :D). Es gibt für C++ mindestens genauso viele Bibliotheken für nahezu jeden Zweck, aber die Einbindung und Suche nach der richtigen Bib überfordert anfangs vermutlich.

    Eclipse ist eine wunderbare IDE für Java, für C++ am ehesten noch VisualStudio von Microsoft.

    Zu bedenken ist aber, dass Java inzwischen in der Hand des Teufels ist (Oracle).

    Viel Spaß!
    Johannes

  • Wie siehts denn so mit der Geschwindigkeit aus?
    Dass C++ um einiges schneller ist als Java ist, ist ja klar, aber wie siehts mit Java selbst aus?
    Reicht es um (gute) Spiele zu machen?

    C++ mag mich nicht :D
    Ich habe auch ein Buch, aber die ganzen Typenumformungen überfordern mich :D
    angefangen bei Strings...
    Das ist bei Java glaub ich einfacher.^^

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • Wie siehts denn so mit der Geschwindigkeit aus?
    Dass C++ um einiges schneller ist als Java ist, ist ja klar, aber wie siehts mit Java selbst aus?
    Reicht es um (gute) Spiele zu machen?

    Minecraft wurde in Java geschrieben (natürlich mit entsprechenden Modulen). Es ist aber auch ganz schön langsam, im Vergleich zu der sehr simplen Nachprogrammierungen mit Irrlicht.


    C++ mag mich nicht :D
    Ich habe auch ein Buch, aber die ganzen Typenumformungen überfordern mich :D
    angefangen bei Strings...
    Das ist bei Java glaub ich einfacher.^^

    Wieso? Wenn man die richtigen Header verwendet reicht ein Befehl.
    itoa geht zum Beispiel wie Int in AutoIt. std::string(666) gibt den String "666".
    Probleme gibt es oft nur, weil die Typen der Header untereinander nicht umwandelbar sind, und man teilweise in den Grundtypen zwischenspeichern muss, was viel Arbeit mit buffer bedeutet.

  • @FugFix
    Ja, ich würde gerne mein Wissen im Bereich Programmierung, erweitern. Und daher wollte ich voher fragen welche Sprache eher für den Einstieg geeignet ist. Wie gesagt, finde ich C++ mittels bis schwer. Allerdings möchte ich ja auch mit GUIs programmieren und bei C++ ist das wirklich ein harter brocken. Wie es jetzt bei Java ist weiß ich nicht. So wie alle ja sagen ist es einfacher.

    Was haben alle gegen Oracle. Ist das was, was ich wissen sollte? :P

    In meiner Arbeit ist eine Kollegin, der ihr Freund studiert bzw. studierte Informatik und kann so fast alle Sprachen: C++, Java, PHP, etc. und er empfiehl jetzt auch erstmal Java. Aber ich wollte mir erstmal mehrere Meinung einholen.

    Marthog
    Das glaube ich nicht. Laut Wikipedia und auf anderen Seiten ist heute Java (fast) genauso schnell wie C++!

    Kennt jemand ein gutes Buch (Java) für ANFÄNGER!

    EDIT: Mit AutoIt bin ich natürlich zufrieden: einfache Syntax, schnelle Programmierung, gute Referenzen/Tutorials, etc.

    Einmal editiert, zuletzt von MehmeX (23. März 2011 um 22:00)

  • Die Standardbibliothek von Java ist klasse (kleiner Insiderwitz obendrein :D)


    haha :rofl:

    naja ich wage mich zurzeit an c# ran.
    Solange du nicht platformunabhängig programmieren willst, finde ich c# eigentlich gut, weil dir ja die .net library zu verfügung steht
    ist denke ich vergleichbar mit java, wobei c# (glaube ich) schneller ist
    wenn ich c# gut beherrsche wage ich mich an c++ ran

  • Hi Mehmex,

    jeder ist bei einer Programmiersprache einmal Anfänger ! ;)

    Die "besser - schlechter" Diskussionen sind allesamt sinnfrei. Es kommt manchmal auf den speziellen Fall an, ob eine Programmiersprache für einen bestimmten Zweck besser geeignet ist.
    Ich empfehle Dir das Buch "Der C++ Programmierer" von U. Breymann. Ein sehr gutes Buch. ;)


    Gruß
    Greenhorn


  • Allerdings möchte ich ja auch mit GUIs programmieren und bei C++ ist das wirklich ein harter brocken. Wie es jetzt bei Java ist weiß ich nicht. So wie alle ja sagen ist es einfacher.


    Ich habe mir ein Buch gekauft, wo es auschließlich über C++ und die Win API geht.
    Nach den ersten 20 Seiten ware ich fähig eine GUI zu erstellen, Nach weiteren 300 Seiten wusste ich, wich ich alle Standard Steuerelemente erstelle und in der WndProc richtig darauf reagiere.
    Und ich finde es auf keinen fall ein Nachteil, dass ich jetzt immerhin auch schon eine gewisse zeit mit Autoit programmiere, ich gegenteil. man kann sich sehr viel von Autoit herleiten.
    Die wirklich kravierende und markante veränderung von Autoit zu C++ sind die ' '.

    Ich empfinde es also nicht als Nachteil erst mit Autoit anzufangen und dann auch Hochsprachen zu wechseln.

    ich empfehle dieses Buch http://www.beck-shop.de/Petzold-Windows-Programmierung-5-Auflage-Sonderausgabe/productview.aspx?product=383968&utm_source=google&utm_medium=merchant&utm_campaign=Newbooks_V-F
    Es ist zwar schon etwas älter. In dem Buch wird sicherlich auch nirgends Windows Vista oder Windows 7 vorkommen, allerdings hat dich an der API nicht grundlegen was geändert, dass es nichtmehr zutreffen würde.

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Das Buch Windows Programmierung von C. Petzold habe ich auch.
    Ist auch ein sehr gutes Buch, aber eben Windowsspezifisch.
    Die Sprache die in dem Buch benutzt wird ist C (ohne ++). ;)

    Übrigens auch eine Programmiersprache an der man nicht vorbeikommt ... ;)


    Gruß
    Greenhorn


  • Hi,
    ich programmiere schon gut nen Jahr C++, (mit großen Pausen) und muss sagen: so schwer ist es nicht, aber ohne Google währ ich schon viele male gescheitert. Wenn man aber nicht gerade riesig lange Spiele oder Software schreibt dann reicht AutoIt, in den meißten Fällen, vollkommen aus. Wenn es dann mal etwas schneller sein soll gibt es ja Assembler ;) Obwohl das recht viel frust erzeugt :D

    Mal einfach so zum Debuggen 'MsgBox()' geht nicht.


    Wozu gibt es die Konsole und cout ?

    Übrigens auch eine Programmiersprache an der man nicht vorbeikommt ... ;)


    Ou ja :pinch: gefühlt die hälfte der Open Source Libs sind in C geschrieben.

  • Solange du nicht platformunabhängig programmieren willst, finde ich c# eigentlich gut, weil dir ja die .net library zu verfügung steht


    Das ist nicht ganz korrekt. Mit etwas Aufwand kannst du auch mit .NET weitgehend pplattformunabhängig programmieren. Du musst dich aber auf die Assemblies beschränken, die bereis in Mono umgesetzt wurden. http://mono-project.com/Compatibility

  • Muss mich hier auch mal mit einmischen :).
    Mir gehts eigentlich wie MehmeX. Ich habe häufig eine GUI aber leider manchmal nicht die Geschwindigkeit die ich brauche.
    Welche Sprache wäre als AutoIt Ersatz die beste Wahl, wenn man ebenfalls GUIs etc. bastelt? Wie stehts um VB oder Delphi?

    Grüße

  • C++, C++ und nochmal C++.
    Stirb, Java!

    blubbstar: Ich gehe mal davon aus, dass du nichts "Koda-mäßiges" mehr brauchst.
    Dennoch: Delphi und VB bieten genau das an.
    Wenn du das auch für C++ brauchst, gibt es Microsofts Visual C++.
    Ich sage aber mal: C++, weil du eh nur dlls erstellen musst, die du dann mit AutoIt aufrufen kannst.
    Sorry, war etwas wirr...

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Eigentlich wollte ich mich aus dieser Diskussion bisschen raushalten da ich denke man wird keine zufriedenstellende Antwort hinbekommen da man nicht wirklich weiß welche Anforderungen wichtig sind.
    Aber auf 2, hier genannten, Punkt möchte ich doch noch mal eingehen:

    Allerdings möchte ich ja auch mit GUIs programmieren und bei C++ ist das wirklich ein harter brocken.

    Wenn man direkt mit der WinAPI programmiert ist die Aussage richtig - aber das macht man doch nicht. Zumindestens nicht bei größeren Projekten.
    Dafür gibt es ja GUI-Toolkits mit denen das dann wunderbar einfach wird.
    Um nur einige zu nennen: QT, wxWidgets, FLTK...
    Ich persönlich programmiere in FLTK und finde nicht das dies ein unheimlich schwieriger Brocken ist.
    Das Problem mit der Plattformabhängigkeit hat man damit auch gelöst.

    Laut Wikipedia und auf anderen Seiten ist heute Java (fast) genauso schnell wie C++

    Momentan sieht es bei uns im Institut so aus das einer vornehmlich JAVA programmiert und für die Entzerrung von 12 64 Megapixelbildern 30 Minuten benötigt.
    Ein anderer sollte das daher in C++ programmieren da das zu lange dauert und ohne Anpassung des Algorithmus sind wir nun bei 5 Minuten...
    JAVA und C# sind wunderschöne Sprachen für große Projekte bei denen Performance nicht die oberste Prämisse ist.
    Geht es nicht um die High-End Performance würde ich JAVA oder C# immer C++ vorziehen.
    An anderen Stellen kommt man allerdings da nicht vorbei.

    Es gilt daher wie immer: Es kommt nur auf den Anwendungszweck an. Es gibt keine bessere und schlechtere Sprache.

  • Zitat

    Momentan sieht es bei uns im Institut so aus das einer vornehmlich JAVA
    programmiert und für die Entzerrung von 12 64 Megapixelbildern 30
    Minuten benötigt.
    Ein anderer sollte das daher in C++ programmieren
    da das zu lange dauert und ohne Anpassung des Algorithmus sind wir nun
    bei 5 Minuten...

    Ok das ist ein Beweis. Aber bei eher kleineren Programmen ist die Performance nicht so wichtig, denke ich. Wenn ich mir die Geschwindigkeit von AutoIt anschaue, für die Programme, dich ich schon programmiert habe, reicht das vollkommen aus.

    Eigentlich ist mir die Plattformunabhängigkeit auch nicht SO wichtig. Ich würde eher für Windows programmieren, natürlich wäre es nicht schlech auch für Linux (Ubuntu, OpenSUSE, ...) zu programmieren.

    Hmm ... ich danke das ich dann mal eher bei C++ erstmal bleibe und werde mir das Buch nochmals von anfang an, nach der Schulprüfung, durchlesen. Denn das Buch das ist jetzt habe heißt: "Jetzt lerne ich C++ (Start ohne Vorwissen)" von Dirk Louis aus Markt+Technik. In diesem Buch werden erst nur die Grundlagen von C++ gelehrt und das ziemlich gut und verständlich. Vielleicht kennt es jemand. Ich war schon bei der Objektorientierte Programmierung und habe das ebenso weit verstanden. Danach werde ich mich auf C++ Win API begehen.

    So wie ich das sehe, ist C/C++ die Mutter aller Programmiersprachen. :D