Java oder Scala lernen?

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

tvetter 
Fragesteller
 07.12.2015, 19:17

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.

tvetter 
Fragesteller
 06.12.2015, 20:59

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
J0T4T4  06.12.2015, 22:58
@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
tvetter 
Fragesteller
 07.12.2015, 19:03
@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