AW: Welche Programmiersprache fortführen?
Mh... das ist nicht so einfach zu beantworten. Es ist tatsächlich stark davon abhängig, was du vorhast.
Aber vorher erstmal: Du hast recht, dass du am Anfang dich erstmal auf eine Sprache konzentrieren solltest. Was die Portabilität von Java angeht, ein kleiner Einschub: C++ Programme sind nicht sofort inkompatibel mit einem anderen Betriebssystem. Wenn du eh eher zum OpenSource Sektor gehören möchtest, stellt die Portabilität eventuell kein großes Problem dar. Man kann auch mit C++ wunderbar plattform unabhängig programmieren. Aber ja: In Java ist es wohl deutlich einfacher.
Trotzdem würde ich dir nicht empfehlen auf Java umzusteigen. Da kannst du auch lieber andere Sprachen nutzen, die plattform unabhängig sind.
Es hängt, wie gesagt, davon ab, was du machen möchtest:
- Wenn du dich auch für den hardwarenahen Teil der Programmierung interessierst oder Anwendungen erstellen möchtest, die performancekritisch sind (wie z.B. Spiele), lohnt es sich auf jeden Fall bei C++ zu bleiben oder zu einer anderen System-Sprache, wie Rust oder D, wechseln.
- Wenn du simple Anwendungen programmieren willst mit Buttons und son Kram, solltest du vllt. tatsächlich Java in Erwägung ziehen, obwohl es eine unschöne Sprache ist.
- Auch wenn plattform-unabhängige Anwendungen toll klingen, wird es in Zukunft in den meisten Fällen auf folgende Art von Plattformunabhängigkeit rauslaufen: Browser. Anwendungen, die nur im Browser laufen, kommen immer mehr und werden auch die Zukunft bestimmen, weil es für den Anwender so einfach ist, sie zu nutzen. Hier solltest du dir dann Sprachen wie Javascript (eher hässlich) oder besser Coffeescript anschauen. Außerdem sind natürlich Grundlagen in HTML sowie CSS Grundlagen zum Designen wichtig.
- Möchtest du eher auf hohem Level programmieren und dir ist die Performance egal? Mach weiter mit Python oder schau dir eine andere Scriptsprache mit tollem Sprachdesign, wie Ruby, an.
- Oder doch in eine ganz andere Richtung? Hauptsache möglichst viel unterschiedliche Sprachen lernen und alle Bereiche ausprobieren? Probier mal einen LISP Dialekt, wie das moderne Clojure (was übrigens in der JVM läuft, also auch Java-kompatibel ist). Oder ältere Sprachen wie Haskell: Die bieten nach wie vor interessante Sprach-Features.
- Möglicherweise ist App Entwicklung etwas für dich? Dann bist du ziemlich auf Java bei Android eingeschränkt oder kannst bei Apple mit der neuen Sprache Swift spielen.
Kurz noch mal die angesprochenen Sprachen zusammengefasst:
C++: Trotz des Alters meist genutzte Sprache, wenn es um Performance geht. Also auch Spiele so wie alle wichtigen großen Projekte, wie Foto-/Videobearbeitung, Betriebssysteme, Spiele, Datenbanksysteme, Browser, etc... Es ist aber eine alte Sprache und das merkt man an vielen Stellen. Dort ist die Sprache dann unschön und hat echte Mängel. Trotzdem ist die Sprache sehr komplex und erlaubt das Programmieren mit unterschiedlichen Programmierparadigmen, sodass man schon einiges von der Welt der Programmierparadigmen mitbekommt, wenn man C++ komplett beherrscht.
Rust: Eine neue Sprache von Mozilla, die leider noch nicht fertig entwickelt ist. Trotzdem gibt es schon jetzt viele Fans, meiner Meinung nach berechtigt. Die Sprache versucht C++ abzulösen (was bitter nötig ist) und schafft dies bis jetzt recht gut. Die Sprache bietet viele interessante Sprachkonstrukte und sieht sehr vielversprechend aus. Eventuell aber nichts für Anfänger, da sich die Sprache noch immer ein wenig ändert (Noch in Entwicklung).
D: Ebenfalls ein C++-Ersatz. Bietet ein interessantes Macrosystem und soll quasi "C++ ohne die schlechten Teile" sein. Ich habe schon von vielen sehr schlauen Leuten Gutes über D gehört, habe aber leider keine persönliche Erfahrung. Wäre aber möglicherweise etwas für dich, wenn dir C++ zu alt ist.
Java: Oft als Einsteigersprache angepriesen und sogar oft in der Industrie benutzt. Aber meist für... "langweiligere" Sachen. Man kann natürlich haufenweise interessante Sachen machen, aber wie viele Anwendungen nutzt man täglich, die in Java geschrieben wurden? JDownloader und Minecraft fällt mir ein. Wobei das letzte ein Haufen Hobbyentwickler sind, die eher in ihren Erfolg gestolpert sind, als ihn sich durch super Programmierung zu verdienen
Wenn du auf Android Apps entwickeln möchtest, musst du wohl auch Java nutzen.
Javascript: Hat nichts mit Java zu tun. Ist eine Scriptsprache, mit der man auf Websiten Sachen machen kann. Nicht wirklich schön die Sprache, aber leider für das Web erforderlich. Es gibt allerdings auch ein paar Sprachen, die einen "Ersatz" sein wollen, wie z.B. ...
Coffeescript: Ein Javascript in "schön", so sagen die Entwickler. Man hat tatsächlich viele schlechten Seiten von Javascript versteckt und kann mit Coffeescript schneller und schöner arbeiten. Allerdings eine wirklich komplett tolle Sprache ist es auch nicht.
Ruby: Eine recht moderne Scriptsprache mit tollen neuen Sprachkonstrukten und Ideen. Selber leider nicht viel Erfahrung...
Haskell und Clojure: Haskell ist schon alt und funktioniert anders, als die meisten Sprachen, die man so kennt. Insbesondere ist es kein C-Nachfahre. Clojure ist ein LISP Dialekt, was nochmal etwas komplett andereres ist... Beide Sprachen sind mindestens eine Erfahrung wert.
Aber vllt solltest du noch genauer sagen, was du vorhast.
Grüße