Circa ein halbes Jahr ist es nun her, dass Apple auf der diesjährigen Entwickler-Konferenz WWDC seine neue Programmiersprache Swift vorgestellt hat. Seit dem Release von iOS 8 im September wurde zudem offiziell der erste Golden Master-Status[1] erreicht, und mit dem Erscheinen von OS X Yosemite haben all diese finalen Funktionen auch Einzug in Apples aktuelle Version 6.1 seiner Entwicklungsumgebung Xcode gehalten. Zeit, ein erstes Fazit zu ziehen, über die Zukunft von Swift zu sinnieren und darüber zu sprechen, ob und für wen sich ein Ein- beziehungsweise Umstieg lohnt.

Seit Juni beschäftige ich mich nun schon persönlich mit Apples neuer Programmiersprache Swift. Ich war seit der Vorstellung von Swift in der Keynote auf der WWDC sofort Feuer und Flamme und konnte es kaum erwarten, erste Programmiererfahrungen mit Swift zu sammeln. Heute betreue ich neben drei in Objektive-C geschriebenen Anwendungen zwei Swift-Projekte. Und spätestens seit September – wo iOS 8 offiziell erschienen ist und gleichzeitig der erste Golden Master von Swift freigegeben wurde – macht das Entwickeln damit auch wahrlich Spaß. Zuvor merkte man noch regelmäßig an vielen Ecken und Enden, das Swift eben noch sehr stark in der Entwicklung war und sich einige Dinge regelmäßig änderten oder noch angepasst wurden. Dies hatte natürlich immer Nacharbeit auf der eigenen Seite zur Folge. Derartige Probleme existieren seit September tatsächlich nicht mehr und die Sprache ist soweit auch final; so final eben etwas sein kann, was immer noch weiterentwickelt wird. Aber das ist ja bei jeder anderen Programmiersprache gleich.

Nun habe ich also das Glück, mich parallel sowohl mit der Programmiersprache Objective-C als auch mit Swift zu beschäftigen. Und eines kann ich klipp und klar sagen: Mir persönlich bereitet die Arbeit mit Swift wesentlich mehr Spaß und Freude, als die Entwicklung mit Objective-C. Die Syntax von Swift ist meines Erachtens sehr gut gelungen und intuitiv, Abfragen und Schleifen sind schlanker, die Erstellung von Variablen und Konstanten mehr als einfach und selbst Klassen mit mehreren Properties und Methoden wirken mit Swift aufgeräumter. Es sind in meinen Augen viele Details, die die Arbeit mit Swift so komfortabel und angenehm machen, ohne etwas von den Möglichkeiten, die man bisher mit Objective-C hatte, einbüßen zu müssen.

Was mir besonders gut gefällt und in meinen Augen ein extremer Pluspunkt gegenüber Objective-C ist, sind die Fundamental Types in Swift. Dabei handelt es sich um Typen wie Int, Bool, Strings, Array oder Dictionaries, die direkt von Haus aus jede Menge Funktionen und Möglichkeiten liefern, ohne den Umweg über Klassen wie NSString, NSArray oder NSDictionary aus Apples Foundation Framework gehen zu müssen. Zwei Strings einfach mal mittels Plus-Operator + zusammensetzen? In Swift kein Problem, und das ohne eine Methode der Klasse NSString anwenden zu müssen. In diesem Bereich wurde tatsächlich ganze Arbeit geleistet, und gerade Einsteiger werden dadurch mit Swift wesentlich schneller erste Erfolgserlebnisse erzielen als mit Objective-C.

Ebenfalls ein mächtiges neues Instrument in Swift sind die sogenannten Optionals, die es erlauben, beispielsweise Parameter einer Funktion als optional zu deklarieren. Damit ist einerseits innerhalb der Funktion klar, dass dieser Parameter möglicherweise beim Aufruf nicht mitgeliefert wird, umgekehrt sieht man aber auch bereits beim eben genannten Funktionsaufruf sofort, welche Parameter Pflicht sind und welche nicht. In Objective-C gab es eine derartige Information nicht. Hierfür musste zur Not die Dokumentation konsultiert und geprüft werden, ob der Parameter einer Methode nun Pflicht ist oder nicht. Schlimmstenfalls wusste man es einfach nicht und rief eine Methode entsprechend ohne einen notwendigen Parameter auf, womit im Umkehrschluss ein Absturz der Anwendung einherging. Dank der Einführung von Optionals können derartige Probleme in Swift von vornherein unterbunden werden. Und das gilt nicht nur für Apples System Frameworks, sondern auch für alle eigenen Klassen und Funktionen. Wenn Sie sich während der Entwicklung im Detail Gedanken darüber machen, welcher Wert optional ist und welcher nicht, können Sie bereits bei der ersten Implementierung wesentlich sicherere und stabilere Apps programmieren.

„Swift ist sehr durchdacht, und dazu noch einfach und intuitiv in der Anwendung“

Sie merken es wohl schon: Ich bin aktuell von Swift mehr als begeistert und arbeite liebend gern damit. Swift ist sehr durchdacht, und dazu noch einfach und intuitiv in der Anwendung. Hat man sich einmal ein paar Wochen ausgiebig mit Swift befasst, gehen die verschiedensten Kniffe und die Syntax im Nu in Fleisch und Blut über. Ich zumindest, möchte es nicht mehr missen.

Jedoch gibt es bisweilen noch einen sehr unschönen Nachteil, der mir in regelmäßigen Abständen (eigentlich fast täglich) die Arbeit mit Swift vermiest, und der ist Xcode. Während all meine Objective-C-Projekte – egal wie groß sie sind – problemlos in Xcode laufen, scheint Xcode bei Swift bisweilen noch Schluckauf zu haben. Entweder passiert lange Zeit gar nichts, oder es stürzt sogar ein Service ab, der dafür sorgt, dass das Syntax Highlighting für wenige Sekunden nicht korrekt funktioniert; manchmal hilft sogar nur ein Neustart von Xcode. Und glauben Sie mir: so groß sind meine Swift-Projekte nun auch noch nicht.

Generell kann ich aber nach dem aktuellen Stand jedem, der sich für Swift interessiert, nur raten: probieren Sie es aus, und zwar sofort! Natürlich braucht es seine Zeit, bis man wirklich fit in einer neuen Programmiersprache ist, und zu Beginn geht alles etwas langsamer als mit dem bereits altbekannten. Doch es lohnt sich. Ich meine es ernst, wenn ich sage, dass Swift mir mein iOS-Entwicklerleben deutlich vereinfacht und ich auch tatsächlich mehr Spaß an der Arbeit habe.

Der aktuelle größte Vorteil von Objective-C ist ganz eindeutig seine Verbreitung

Unbedingt sei klar gestellt, das Objective-C selbstverständlich nicht aus der Welt ist (und das mit Sicherheit auch nicht schnell sein wird, wenn überhaupt). Der aktuelle größte Vorteil von Objective-C ist ganz eindeutig seine Verbreitung. Bisher war Objective-C das A und O für die iOS- und auch OS X-Entwicklung, und entsprechend sind die meisten Projekte mit dieser Sprache umgesetzt, ebenso wie unzählige Frameworks die beispielsweise frei auf GitHub zur Verfügung stehen. Hier wird auch nicht so schnell eine Änderung stattfinden, schließlich wird sich kaum jemand hinsetzen und all seine bisherigen (womöglich auch sehr umfangreichen) Objective-C-Projekte noch einmal in Swift komplett neu schreiben. Das dürfte der Aufwand auch kaum wert sein. Genauso wird Objective-C die Sprache Numero Uno sein, wenn Sie heute als App-Entwickler in einer Agentur einsteigen möchten und dort an Projekten mitarbeiten, die bereits seit mehreren Jahren entwickelt und gewartet werden; und zwar in Objective-C. Wie bereits geschrieben wird kaum jemand die Anwendungen in Swift neu schreiben. Das ist tatsächlich ein wichtiger und essentieller Punkt, der klar für Objective-C spricht und der dafür sorgen wird, das Objective-C auch die nächsten Jahre noch eine sehr wichtige und verbreitete Programmiersprache in iOS- und OS X-Kreisen sein wird.

Aber lassen Sie sich deswegen nicht Swift abschwatzen, ganz im Gegenteil. Swift stößt bereits jetzt auf gigantisches Interesse, und dieses dürfte im Laufe der Zeit weiter zu- als abnehmen. Verpassen Sie nicht die Chance, frühzeitig Ihre Expertise als App-Entwickler in diesem Bereich auf- und auszubauen. Denn Swift wird sich mehr verbreiten, gerade bei Einsteigern in der App-Entwicklung, die auch noch nie zuvor mit Objective-C gearbeitet haben, und irgendwann gibt es sie dann zuhauf, die Swift-Frameworks auf GitHub und die Swift-Projekte in den Agenturen. Steigen Sie nicht erst dann ein, wenn fast jeder bereits Swift beherrscht, sondern widmen Sie sich Swift jetzt, und seien Sie einer der Ersten, der sein Know-how und sein Expertenwissen in dieser wahnsinnig spannenden Programmiersprache beweisen kann. Es lohnt sich auf jeden Fall!

[1] Golden Master bezeichnet in der Software-Entwicklung einen quasi finalen Zustand der Software, in dem (so gut wie) alle Fehler beseitigt sind.

Lesen Sie auch folgenden Beitrag von Thomas Sillmann: Swift 1.2 und 2.0 im Detail