Frage von tvetter, 82

Java oder Scala lernen?

Ich kenne mich bereits sehr gut aus mit HTML, CSS und JavaScript. Zudem habe ich einige Erfahrung in Python, Flask und Cordova. Man kann sich also denken das ich im Bereich der Webentwicklung (und Webapps für Mobil) unterwegs bin.

Ich will jetzt noch eine 'richtige' Programmiersprache lernen. Sollte ich mit Java einsteigen oder mit Scala anschauen? Java ist ja bekannt dafür ökonomisch gut verwertbar zu sein. Über Scala habe ich vieles gutes gehört hinsichtlich sprachlicher Exzellenz und Innovation und es läuft ja auch auf der Basis der Java-Technologie.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von TeeTier, Community-Experte für programmieren, 72

Auf jeden Fall Java zuerst.

Begründung: Du wirst in Scala viele Java-APIs benutzen können / müssen / dürfen / sollen, dabei kommst du um Java-Quelltext nicht drum rum.

Das gleiche gilt für Clojure, Groovy, Jython, JRuby, und vermutlich auch alle anderen Sprachen, die in der JVM laufen.

Selbst wenn du später ausschließlich in Scala programmieren wirst, und nie wieder Java anfasst, so wird dir dieses Wissen jedoch nicht schaden. Im Gegenteil: Du wirst sogar enorm davon profitieren.

Und sei es nur, dass du mitreden kannst, wenn sich Leute über "invokedynamic" unterhalten. (Das gleiche gilt übrigens auch für C#-Programmierer, die sich ebenfalls mit den Grundlagen von .Net befassen sollten, um die Unterschiede und Inkompatibilitäten zu VisualBasic zu kennen.)

Also Scala ist zwar wirklich toll, aber den "Unterbau" solltest du schon wirklich kennen! Und dafür bedarf es Java. :)

Viel Spaß beim Lernen, wofür auch immer du dich entscheidest! :)

Kommentar von tvetter ,

Dann wird es wohl erstmal ein Intro in Java werden.

Antwort
von J0T4T4, 82

Ich habe mir mal Scala angeschaut und glaube, dass es ähnlicher am Programmierstil von HTML (ja, HTML ist keine Programmiersprache), JavaScript und Python ist als Java. Also wenn du bereits gelerntes wiederverwenden möchtest, dann nimm Scala, und wenn du deinen Horizont erweitern möchtest, dann Java (oder gleich Assembler, das erweitert wie noch nie, lach).

Und da ja in der Ausführung keine großen Unterschiede bestehen, ist das egal für dich.

Kommentar von tvetter ,

Richtig, HTML ist keine Programmiersprache, sondern eine Auszeichnungssprache. Insofern verstehe ich auch nicht was du damit sagen möchtest das Scala ähnlich am Programmierstil von HTML sei?

JavaScript und Python dagegen sind vom Aufbau durchaus 'richtige' Programmiersprachen, werden aber als Script ausgeführt. Das ist bei Scala ebenfalls nicht der Fall, denn das wird, wie Java, in Bytecode übersetzt.

Was sozusagen das 'revolutionäre' an Scala ist, dass es funktionale Elemente in eine objektorientierte Programmiersprache bringt.

Assenmbler ist mir zu nah an der Maschine.

Kommentar von J0T4T4 ,

Vieleicht habe ich das nicht so klargemacht, aber mit Progtammierstil meine ich nicht die Art, wie damit programmierte Programme laufen (obwohl das auch Auswirkungen auf den Stil hat), sondern, wie ähnlich sich die Prinzipien ubd die Syntax der Sprache sind. Scala unterstützt zum Beispiel XML-Elemente, was wiederum ähnlich zu HTML ist. Weiterhin hast du die Typenfreiheiten, die dir auch in Python gegeben werden. Und auch die allgemeine Deklaration von Variablen hat mich an JavaScript erinnert.

Java wurde eben stark durch Sprachen der C-Familie beeinflusst, und Scala scheint da eher anders zu sein. Hättest du PHP, welches auch Teil der C-Familie ist, und nicht Python gelernt, dann wäre das jetzt anders, aber die Sprachen, die du kannst, ähneln meiner Meinung nach eher Scala, was Prinzipien und Syntax angeht. Die technische Realisierung, also interpretiert oder nicht, ist ja bei Java und Scala gleich, weshalb das hier nicht betrachtet werden muss.

Und das mit Assembler war nur ein Witz, weil Assembler die in meinen Augen größte Differenz zu deinen gelernten Sprachen aufweist.

Kommentar von tvetter ,

Unter dem Einfluss von C steht vieles. Sogar JavaScript ist nach Brendan Eich von C beeinflusst. Python auch (und ist sogar selbst in C geschrieben).

Davon abgesehen verstehe ich jetzt besser was du meinst.

Kommentar von yerooke ,

Tut JavaScript auch bzw. ECMA Script 6

Keine passende Antwort gefunden?

Fragen Sie die Community