Programmiersprache: Vorweihnachtlicher Wunschzettel für Kotlin

Laut einer Umfrage von JetBrains ist das einfachere Abfangen mehrerer Exceptions das meistgefragte Feature für die Weiterentwicklung von Kotlin.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Umfrage: Wanderer wollen trotz Smartphones weiter Wegemarkierungen
Lesezeit: 3 Min.
Inhaltsverzeichnis

Im Juni hatte JetBrains eine Umfrage zu den meistgewünschten Features für Kotlin gestartet. Nun hat das Unternehmen in einem Blogbeitrag die Ergebnisse veröffentlicht. Insgesamt haben sich 1540 Personen an der Umfrage beteiligt und mit "Multicatch and Union Types" einen eindeutigen Sieger gekürt, auf den sie aber wohl noch eine Weile warten müssen.

Ziel der Umfrage war, die Weiterentwicklung der Sprache nach den Wünschen der Entwicklerinnen und Entwickler auszurichten. Das Formular gab nicht alle Ergänzungen vor, an denen das Team derzeit arbeitet, und erlaubte Mehrfachnennungen. Die Planung ist langfristig ausgelegt: Es gibt keine Garantie, dass häufig gewünschte Features es schnell in die Sprache schaffen. Laut dem Blogbeitrag wird keins in die aktuelle 1.6.x-Reihe einfließen, die im November gestartet ist und bis Mai läuft.

Nach dem eindeutigen Sieger folgen viele Einträge dicht hintereinander.

(Bild: JetBrains)

Mit 45 Prozent der Stimmen liegt "Multicatch and Union Types" deutlich an der Spitze des Wunschzettels. Hintergrund ist, dass Kotlin nicht in der Lage ist, in einer catch-Klausel mehrere Exceptions abzufangen. Daher muss Code im Zusammenspiel mit Java-APIs, die unterschiedliche Exceptions auslösen können, bisher für jede einzelne einen eigenen catch-Block enthalten, wie in folgendem Beispiel aus dem Blogbeitrag zum Start der Umfrage:

fun loadData(path: String) {
   try {
       findDataLoader(path).loadXmlData()
   } catch (e: IOException) {
       println("Failed")
   } catch (e: JDOMException) {
       println("Failed")
   }
}

Ein möglicher Ansatz sind Union Types, die Kotlin bisher nicht kennt. Damit ließen sich alle Fehlerfälle in eine Union und damit das Abfangen in eine catch-Klausel zusammenfassen:

fun loadData(path: String) {
   try {
       findDataLoader(path).loadXmlData()
   } catch (e: IOException | JDOMException) {
       println("Failed")
   }
}

Daneben wäre es auch möglich, eine Enum-ähnliche Syntax einzuführen. Unter denjenigen, die insgesamt für "Multicatch and Union Types" gestimmt haben, fanden nur 13 Prozent diesen Ansatz attraktiv, während 87 Prozent die Union Types bevorzugen.

Laut JetBrains ist das meistgewünschte Feature gleichzeitig das, das am komplexesten umzusetzen ist. Offensichtlich sind Experten im Core-Compiler-Team gefragt, die derzeit mit der Umsetzung eines neuen Compiler-Frontends, dem K2 Compiler, beschäftigt sind. Die Implementierung wird daher noch auf sich warten lassen.

Auf Platz zwei der gefragten Features liegen mit 32 Prozent Zustimmung "Collection Literals". Sie sollen das Erstellen von Collections wie Listen oder Maps mit vorgegebenen Werten einfacher und übersichtlicher gestalten als über Library-Funktionen:

// Literal:
val list = [1, 2, 3]
// Library-Funkion:
listOf(1, 2, 3)

// Literal:
val map = ["one": 1, "two": 2, "three": 3]
// Library-Funktion:
mapOf(�one� to 1, �two� to 2, �three� to 3)

Abgesehen davon, dass die Literale klarer sind, ersparen sie den Overhead, der dadurch entsteht, dass die Funktionen mit varargs auf eine veränderliche Parameterliste setzen.

Die Teilnehmerinnen und Teilnehmer konnten neben ihren Wünschen auch einzelne Features ablehnen beziehungsweise downvoten. An die Spitze der uninteressanten Ergänzungen hat sich mit lediglich 10 Prozent das Überladen von bitweisen Operatoren wie & und | gesetzt. Der eigentliche Sieger der Negativliste ist aber das Nichts: 40 Prozent der Befragten lehnen keins der aufgeführten Features grundsätzlich ab.

Zusätzlich zu den Most Wanted hat JetBrains die Liste der Least Wanted Features veröffentlicht.

(Bild: JetBrains)

Neben den Wünschen hat JetBrains Statistiken zu den Hintergründen veröffentlicht. Demnach arbeiten 71 Prozent der Befragten seit mehr als zwei Jahren mit Kotlin und 85 Prozent setzen die Sprache in produktivem Code ein.

Weitere Details zu der Umfrage lassen sich dem Kotlin-Blog entnehmen. Dort sind auch die anonymisierten Rohdaten verlinkt.

(rme)