Java VS Kotlin für App Entwicklung?

2 Antworten

Zuerst eine Anmerkung zu meiner folgenden Antwort: Ich werde mich auf die Entwicklung von mobilen Apps für Android fokusieren. Für Applikationen generell würde ich deutlich zu Java tendieren, aufgrund des lange bestehenden Supports verschiedener OS, der größeren Community und der längeren Beständigkeit.

Wenn man Java mit Kotlin vergleichen möchte, lohnt sich zuerst ein Blick in die Android Dokumentation, die den offiziellen Support von Kotlin verkündet:

https://developer.android.com/kotlin/index.html

Kotlin hat gegenüber Java einige Vorteile, die vor allem darauf zurückzuführen sind, dass die Sprache jünger und moderner ist.

  • Code kann kürzer formuliert werden als das weitschweiferigere Java (Bsp.: Getter-/Setter-Methoden). In manchen Fällen könnte die Kürze von Kotlin aber auch dazu führen, dass Code-Abschnitte schwerer zu entziffern sind
  • Beinhaltet neue sprachliche Features, wie z.B. Smart Casts, Extension Methods, Lambda Expressions, usw. ...
  • Java-Bibliotheken / -Frameworks können eingebunden werden
  • Datentypen sind standardmäßig non-nullable, so kommt es weniger zu NullPointerExceptions.

Nachteilig ist bspw. die Tatsache, dass bei einer Kotlin-App die apk-Datei durch die Standardbibliothek und Laufzeitumgebung von Kotlin etwa 800KB mehr Speicherplatz verbraucht.

Ein weiteres Plus, welches Java gegenüber Kotlin hat, ist die große Community, die hinter dieser Sprache steht. Du wirst zu Java-Problemen eher Hilfe finden, als zu Problemen mit Kotlin.

(...) welche dieser zwei Programmiersprachen sind eurer Meinung nach am besten geeignet für die App Entwicklung und wieso? (...)

Ich denke, beide Sprachen sind gut geeignet, sogar der Support in Android Studio ist vorhanden. So sollte man seine Entscheidung noch von anderen Faktoren abhängig machen:

  • Handelt es sich bei der App, die man entwickeln möchte, um ein größeres Projekt, welches etwas mehr Speicherplatz verbraucht? Womöglich wägt man daran ab, denn wie gesagt bringt Kotlin 800KB Handgepäck mit.
  • Wie immer entscheidet es sich an eigenen Ressourcen (z.B. Kompetenz/Erfahrung) und der verfügbaren Zeit für ein Projekt. Wenn letzere nur in geringen Maßen vorhanden ist, wäre es wohl Wahnsinn, die Sprache zu wählen, mit der man bisher am wenigsten Erfahrung gemacht hat.

Einem Anfänger würde ich für den Einstieg zu Java raten, aufgrund des größeren vorhandenen Lernmaterials. Ein späterer Umstieg auf Kotlin dürfte dann einfach fallen und sich wegen seiner sprachlichen Eigenschaften auch lohnen.

Zum Schluss ein Kommentar zu dem oft als Vorteil beworbenen Fakt, dass ein Mix aus Kotlin- und Java-Dateien in einem Projekt genutzt werden kann: Selbst wenn dies gut und ordentlich strukturiert werden sollte, sehe ich dies eher kritisch. Ich halte es besser, ein Projekt stringent zu halten, zumal man beim Lesen des Codes nicht Kontextwechsel zwischen zwei verschiedenen Sprachen vollziehen muss.

Es ist so ziemlich egal, weil beide von Android offiziell unterstützte JVM Sprachen sind. Am besten wählst du die Sprache, die du schon kannst oder lieber magst.