OK, danke für die Antwort.
C++ oder Java
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 444 |
|
|
Ehemalige
Anmeldungsdatum: Beiträge: 6018 |
Wenn Du in C++ dann mal gut zurechtkommst, dann solltest Du unbedingt die beiden Bücher 'Effective C++' und 'More effective C++' von Scott Meyers lesen. Danach weißt Du was man in C++ so alles falsch machen kann 😉. Ich war damals richtig geschockt... 😉 |
|
Anmeldungsdatum: Beiträge: 3785 |
sharkattack hat geschrieben:
Leider stimmt keines von beiden: wenn Du nicht bei 08/15 Progrämmchen stehen bleiben willst, kommst Du nicht darum bei C++ Programmen auch zusätzliche Bibliotheken zu installieren und auszuliefern. Bei Java musst Du schon sehr spezifische Anwendungsgebiete angehen, um mal soweit zu kommen. Auch die Behauptung, dass Java auf allen Systemen läuft, die Java installiert haben ist so nicht richtig. Denn man benötigt eine Mindestversion von Java um ein Programm laufen lassen zu können. Ein in Java 1.5 geschriebenes Programm (bytecode) läuft nunmal nicht auf einem System mit Java 1.3. (Natürlich kann man mit Java 1.5 auch für kleinere Ziel-VMs kompilieren (=bytecode generieren), aber dann kann man natürlich nicht die 1.5-spezifischen features nutzen.) Also so einfach mit dem "write once run everywhere" ist es nicht - ein frommer Wunsch von Sun, der aber leider schon sehr früh geplatzt ist, da schon die 1.1 Version nicht mehr kompatibel zur 1.0 Version war. Das sieht man Heute öfter noch bei vielen Applets im Internet. Da geistern natürlich noch unzählige "alte" Applets die eben nicht mehr (alle) Binärkompatibel (=Bytecodekompatibel) zu aktuellen JVMs sind. sharkattack hat geschrieben:
Und was machst Du wenn demnächst ein neuer Desktop für Linux herauskommt und die Gnome Apps nicht mehr laufen? Oder Du doch noch Dein Programm für Windows und Apple Mac anbieten möchtest? Das wäre kein Problem mit Java ... das war übrigens der Hauptgrund, warum ich mich bei Erscheinen von Java (vor 10 Jahren) darauf gestürzt habe: endlich nicht mehr nur für 1 System entwickeln. Ich habe so meine Programme und Utilities von Windows nach Linux rübergerettet - die laufen alle sofort auf Ubuntu weiter. Ist das nicht toll! |
|
Anmeldungsdatum: Beiträge: 3620 |
Die Diskussion hier ist echt sinnlos. Dem OP geht es darum, Programmieren zu lernen, und das heißt in erster Linie, sich eine Denkweise anzueignen. Wenn man das Programmierparadigma der objektorientierten Programmierung einmal verstanden hat ist es dann auch völlig wurscht, ob man ein Konzept nun in C++, Java, C# oder was auch immer umsetzt. Abgesehen von einigen Feinheiten wie Mehrfachvererbung (die es in Java/C# nicht gibt - *kotz*), Polymorphie (die in C++ mit dem virtual-Keyword nicht so schön ist), ist das dahinter stehende Modell immer das gleiche. Desweiteren sind Java und C++ sich syntaktisch so ähnlich, dass es einen C++-Programmierer nicht vor größere Schwierigkeiten stellt, Java zu lernen oder umgekehrt - ob man jetzt abstract void foo(); oder void foo()=0; schreibt ist reine Gewohnheitssache. |
|
Anmeldungsdatum: Beiträge: 17630 |
dentaku hat geschrieben:
|
|
Anmeldungsdatum: Beiträge: 3785 |
"Hello World" hat natürlich Recht: am wichtigsten ist erstmal sich zu überlegen, was man alles Programmieren möchte. Python und Java haben sehr unterschiedliche Zielgruppen. Du wirst mit Pearl viel schneller glücklich um schnell kleine Scripte und utils zu schreiben. (Meine Ausführungen sollten auch nur Falschaussagen richtig stellen.) |
|
Anmeldungsdatum: Beiträge: 340 |
Hello World hat geschrieben:
Das finde ich nicht. Die Diskussion ist vielleicht OT, aber nicht sinnlos. Ich habe mit diesem Thread sehr viel Neues erfahren und echt was gelernt, denke ich - auch wenn es nicht "mein" Thread ist 😉. Ansonsten stimme ich natürlich zu. Entscheidend ist, was man programmieren möchte. Und zur Portabilität: Das ist schon einen Gedanken wert, auch für einen Anfänger. Mir ging es damals so, dass ich meine Borland-C++-Programme nicht mal eben für Visual Studio fit machen konnte, geschweige denn für Java. Da muss man vermutlich etwas mehr Ahnung haben, wie ich als Anfänger. Ein Systemwechsel ist mit Java dagegen echt einfach. Und ich habe auch als Anfänger bereits Programme geschrieben, die ich gerne mit hinübergenommen hätte. So sind sie nach einem Systemwechsel dann auf der Halde gelandet. Was ich schade fand. Also: Für mich war auch als Anfänger das Thema Portabilität durchaus relevant. Der Java-Umstieg von Win auf Linux hat mich jüngst jedenfalls begeistert. Lieber Gruß, |
|
Anmeldungsdatum: Beiträge: 3785 |
Für mich ist Portabilität auch am wichtigsten. Das ist auch ein Grund, warum ich viele meiner kleinen Utilities nicht auf Windows mit Windows Scripten geschrieben habe, sondern als ein ANT Script mit verschiedenen Targets. Beim Umstieg auf Linux musste ich nur ANT auf Linux installieren und schon hat alles wieder funktioniert. Das ist auch der allgemeine Trend in der Softwarebranche: selbst Microsoft ist nun auf den Zug gesprungen und entwickelt selbst seine virtuellen Maschinen. Schliesslich will auch Microsoft auf dem stetig wachsenden Linux Markt mitverdienen. Und da soll dann auch Microsoft Office drauf laufen, weil es ja "viel besser" (...) ist als OpenOffice & Co. 🙄 |
|
Anmeldungsdatum: Beiträge: 340 |
Entschuldigung, wenn ich noch einmal OT gehe, aber das interessiert mich jetzt: dentaku hat geschrieben:
Ich habe ein Java-Programm mit GUI-Oberfläche programmiert. Es gibt hier eine Funktion, die per Button aufgerufen wird und dann 5 Minuten lang nur rechnet, also Daten aus Dateien ausliest und dann verschiedene Operationen vornimmt, ohne dass die GUI wesentlich dabei angesprochen wird. Würde so ein "reiner" Rechenprozess um einiges schneller werden, wenn ich die Server HotSpot VM laufen lasse? Um welchen Faktor schätzungsweise? Und unterstützt diese Server HotSpot VM trotzdem das GUI? Für eine kurze Erklärung wäre ich dankbar. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 444 |
Hi Also erstmal vielen Dank für die Hilfe und Erklärungen. Ich werde mit C++ anfangen, obwohl ich weiss, dass es ein ziemlich harter Brocken ist. Später kann ich ja dann immer noch Java lernen. Dann ist es sicher nicht mehr so schwer wie wenn ich neu anfangen müsste. |
|
Anmeldungsdatum: Beiträge: 340 |
@dentaku: Danke für den Tipp. Ich werde es ausprobieren und bin schon gespannt. Gruß, |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 444 |
Hi Noch eine Frage. Kann mir jemand ein gutes Buch empfehlen, um in die Welt des C++-Programmierens einzusteigen? |
|
Anmeldungsdatum: Beiträge: 334 |
Also ich bringe mir seit einiger Zeit C selber bei. Dazu habe ich mir das Buch "C von A bis Z" von Jürgen Wolf gekauft. Eine Open-Book Version gibts auf www.pronix.de. Dies kann ich nur jedem C-Programmierer egal ob Anfänger oder Fortgeschrittener empfehlen. Auf dieser Seite gibts auch n OpenBook zur Linux/Unix-Systemprogrammierung wo nur mit C abgehandelt wird. Vorher habe ich mit Qbasic geproggt hat mir aber langsam nicht mehr gereicht ☺ Dann habe ich mir überlegt ob ich mit C oder C++ anfangen soll. Ich habe mich für C entschieden weil ja alles was C auch C++ kann bis halt auf OOP, die ich ja sowieso als Anfänger eigentlich nicht benötige. Außerdem habe ich mir überlegt, lieber C zu lernen und dann einige Zeit dazu bleiben und wenn ichs dann perfekt beherrsche lerne ich dann C++. Da ich sowieso dann vorwiegend Programme für die Konsole bzw später dann für GNOME (GTK) schreibe brauche ich ja C++ nicht verpflichtend. MFG |
|
Anmeldungsdatum: Beiträge: 17630 |
CiRecT hat geschrieben:
hört, hört. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 444 |
Hi Hey was macht ihr hier aus meinem Thread? 😀 Es geht doch hier nicht um Java. Da meine Frage in dem Java Streit untergegangen ist, frage ich nochmal, ob mir jemand ein gutes Buch für Anfänger zu C++ empfehlen kann. |