Why did Google replace Java with Kotlin, and why only Kotlin but not other languages?
Zunächst einmal - Kotlin ist keine neue Programmiersprache. Sie befindet sich seit sechs Jahren in der Entwicklung - und sie läuft auf der JVM. Wenn Sie ein Software-Programmierer sind, dürften Sie sich der Tatsache bewusst sein, dass es immer etwas Neues geben wird, das altes Zeug ersetzt, und dass Sie bereit sein müssen, es zu lernen.
Seien wir ehrlich - Java ist alt. Ein Hauch von frischer Luft ist das, worauf wir gewartet haben. Seit Februar 2016, als Kotlin 1.0 ausgeliefert wurde, hat die Android-Gemeinschaft die Entwicklung von Kotlin aufmerksam verfolgt.
Ich begann, Kotlin mit Kotlin Koans zu lernen. Es dauerte einige Zeit, bis ein Java/C++-Entwickler wie ich, die neuen Konzepte verstanden hatte. Aber schließlich passte alles zusammen.
Das Gute daran ist, dass Sie Ihren gesamten bestehenden Java-Code mit nur einem Klick in ‘Android Studio in Kotlin’ konvertieren können - und immer noch auf diese Funktion in ‘Android Studio’ warten.
Alles war neu und gleichzeitig vertraut. Als ich noch nicht wusste, wie man etwas in Kotlin schreibt, schrieb ich Code in Java. Dann verwendete ich einen Java-zu-Kotlin-Konverter, der zusammen mit dem Kotlin-Plugin geliefert wurde. Das war eine große Hilfe. Nach ein paar Stunden war ich so überzeugt von meinen Fähigkeiten in Kotlin, dass ich nicht mehr zu Java zurückkehren wollte.
Das Schreiben von Anwendungen in Java war schon immer mit der Generierung von viel ‘Boilerplate Code’ verbunden. Erinnern Sie sich an POJOs? Mit der Einführung der Datenklassen von Kotlin, können wir uns von der Generierung der Getter und Setter für alle Objektfelder und dem Schreiben von Implementierungen der toString()-, hashCode()- und equals()-Methoden verabschieden. Statt 50+ Codezeilen in Java können wir diese Anzahl in Kotlin auf 1-2 reduzieren.
Ich zeige Ihnen einen kleinen Codeschnipsel :
/* That's how we used to define private variables, and getters setters to acces it, right? It was heck of a long task. 3 lines of code used to be 30+ lines of code */  
 public class Monster{   
 private String name;  
private final int MAX_HEALTH = 100;  
private static int curr_health = 100;  
private double dmg_inf;  
private double dmg_taken;   
public String getName() {  return name; }   
 public void setName(String pName) { this.name = pName; }   
 public String getMaxHp() {  return MAX_HEALTH;  
}   
 public void setCurrHealth(int dmgByEnemy) { this.health = curr_health - dmgByEnemy;  
}   
 /*  
* And many more getters and setters  
*/} 
Und jetzt ist unser neuer Kandidat an der Reihe. Sie werden überrascht sein, wie einfach es ist, eine Datenklasse in Kotlin zu definieren :
data class Monster(val name: String, val curr_health: Int, val dmg_inf: Double, val dmg_taken: Double, val isDead: Boolean) 
Java kann wirklich ein Krampf sein. Es gibt keine Mustervergleiche, Typen-Aliase, Erweiterungsfunktionen. Wir mussten viele Methoden überladen, weil wir keine Standardparameterwerte deklarieren konnten und so weiter und so weiter. Mit Kotlin sind die meisten dieser Probleme verschwunden. Seine vereinfachende, syntaktisch höhere Qualität schafft eine neue angenehme Erfahrung für die Entwicklung von Android-Anwendungen.
Zusammenfassung:
Wenn Ihr Hauptaugenmerk auf der Entwicklung von Android liegt, empfehle ich Ihnen dringend, Kotlin zu lernen. Es ist diese Mühe wert. Das Beste an Kotlin ist - es konzentriert sich nur auf Android.