Java oder Scala lernen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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! :)

Dann wird es wohl erstmal ein Intro in Java werden.

1

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.

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.

0
@tvetter

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.

1
@J0T4T4

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.

0

Bevor du an Java oder Scala gehst, würde ich dir auf jeden Fall noch php empfehlen.

Was kann PHP was Flask nicht kann?

0

Das halte ich ehrlich gesagt für Kontraproduktiv. PHP bietet kein Konzept, in dem Java oder Scala nicht deutlich überlegen wären.

PHP sollte man zwar auch können, aber am besten erst dann, wenn man vorher etwas "Richtiges" gelernt hat, um Ecken und Kanten selbstständig erkennen zu können ... und genau das können Einsteiger oft nicht, die bisher ausschließlich PHP gelernt haben.

Fazit: PHP gerne, aber bitte nicht am Anfang, wenn man noch völlig kritikunfähig ist. :)

1
@TeeTier

Im Web-Bereich wird man ja immer wieder mit PHP konfrontiert, aber ehrlich gesagt bin ich da noch nie auf etwas gestoßen was ich nicht aus einer bestehenden Lösung hinfrickeln konnte oder aber nicht auch mit HTML, CSS und besonders JavaScript (freilich besonders inklusive Node, Angular und MongoDB) oder Flask (ein Framework für Python) hinbekommen habe. Irgendwie erschien PHP mir immer überflüssig bzw. eher von "historischer" Bedeutung...

1

Was möchtest Du wissen?