Eine Einführung in die neue Programmiersprache von Apple: Swift

Auf der diesjährigen WWDC stand iOS 8 und OS X Yosemite so sehr im Rampenlicht, dass eine der bedeutendsten Neuerungen der Veranstaltung fast übersehen wurde: Apple präsentierte die Programmiersprache Swift. Für den durchschnittlichen Nutzer mag das keine bahnbrechende Nachricht sein, doch für die Entwicklergemeinschaft könnte dies eine Revolution bedeuten. Bestimmte Programmiersprachen haben klare Vorteile gegenüber anderen – manche sind schneller, andere effizienter, wieder andere übersichtlicher oder unglaublich einfach zu handhaben. Apple reiht sich nun in die Liste der Unternehmen ein, die nach Google mit Go (Golang) und Microsoft mit dem .Net Framework eine eigene Programmiersprache entwickelt haben. Swift soll von diesen Sprachen gelernt haben und gleichzeitig dem Vorgänger Objective-C treu bleiben. Apple selbst bezeichnet Swift als die schnellste und robusteste High-Level-Programmiersprache. Im Folgenden werden wir das genauer beleuchten.

Die Notwendigkeit von Programmiersprachen

Es gibt verschiedene Methoden, um ein Gerät dazu zu bringen, „Dinge“ zu tun. Von modernen Wearables bis zu klassischen Computern kann jedes Gerät durch Maschinensprache (also rohen Bytecode oder Assembly) gesteuert werden, wobei jede Anweisung manuell erstellt wird. Alternativ können sogenannte höhere Programmiersprachen eingesetzt werden, die den Prozess vereinfachen. Deshalb wird versucht, Entwicklungssprachen so nah wie möglich an die normale menschliche Sprache anzupassen. Auch wenn der Name Swift primär Entwickler anspricht, werden wir die Erklärung vereinfachen, um das Verständnis der Technologie zu fördern, die zukünftige Apple-Produkte antreiben wird.

Elektronische Geräte sind ohne Programmierung im Grunde genommen nutzlose Objekte. Erst die Programmierung verleiht ihnen ihre Funktionalität. Im Grunde muss der Elektronik jede Aktion einzeln mitgeteilt werden. Früher erfolgte dies mit Lochkarten und später mit Maschinensprache. Im Laufe der Zeit haben wir jedoch Sprachen entwickelt, die es uns ermöglichen, auf eine natürlichere Weise mit Maschinen zu kommunizieren. Code ist im Grunde eine vereinfachte Form dessen, was er sein könnte. Wir schreiben Code, der in eine für den Computer verständliche Form übersetzt wird und dann ausgeführt wird. Zusammengefasst: Code schreiben – kompilieren – ausführen.

Warum „schnell“?

Die Frage „Warum?“ ist hier entscheidend. C, die Sprache aus den 70er-Jahren, war damals bahnbrechend, und in den 80er-Jahren kam ihr Ableger Objective-C. Apple nutzte diese Plattform seither für die Entwicklung. Die Devise war: „Wenn es nicht kaputt ist, repariere es nicht“. Und wenn etwas 30 Jahre lang funktioniert, was soll daran falsch sein? Genau. Apple verwendet Objective-C seit Jahrzehnten. Es war also an der Zeit für etwas Schnelleres, Leistungsfähigeres und Einfacheres. Hier kommt Swift ins Spiel.

Laut dem offiziellen E-Book über Swift (kostenlos bei iTunes erhältlich) ist „Swift eine neue Programmiersprache für iOS- und OS X-Apps, die auf den Stärken von C und Objective-C aufbaut, jedoch ohne die Einschränkungen der C-Kompatibilität. Swift verwendet sichere Programmiermuster und fügt moderne Funktionen hinzu, um die Programmierung einfacher, flexibler und unterhaltsamer zu gestalten. Die Neuentwicklung von Swift, unterstützt durch die etablierten und beliebten Frameworks Cocoa und Cocoa Touch, bietet die Chance, die Art und Weise, wie Software entwickelt wird, zu überdenken.“

Die Bedeutung von Swift

Auch wenn Apple seine Innovationen gerne als bahnbrechend darstellt, gab es bereits eine Idee von „Skript“-Sprachen. Herkömmliche Parameter, wie Code-kompilieren-ausführen, setzen voraus, dass man den Code erst nach der Kompilierung in Aktion sehen kann. Die Kompilierung zeigt die Möglichkeiten des Codes auf. Enthält der Code Fehler, führt die Kompilierung zu fehlerhaftem Verhalten oder Abstürzen. Der Programmierer muss dann den Fehler suchen, beheben und den Prozess erneut starten. Dieser Prozess ist mühsam und zeitaufwändig. Skriptsprachen werden zeilenweise ausgeführt, sodass Ergebnisse bereits während des Schreibens sichtbar sind, wodurch der Code nicht erst zu einem späteren Zeitpunkt auf Fehler überprüft werden muss. Das macht den Prozess schneller und einfacher.

Bisher waren Skriptsprachen jedoch in ihren Fähigkeiten eingeschränkt. Python beispielsweise ist sehr schnell, aber auf einfachere Aufgaben mit begrenzten Fähigkeiten beschränkt. Wie ein Formel-1-Auto, ideal für Rennen, weniger geeignet für den Lebensmitteleinkauf.

Für die Entwicklung eines Spiels ist Python nicht die bevorzugte Umgebung. Objective-C jedoch schon (oder C++, wenn man unter Windows arbeitet). Swift verspricht nun das Beste aus beiden (und vielen weiteren) Welten. Inspiriert von Objective-C, Rust, Haskell, Ruby, Python, C#, CLU und vielen anderen (Referenz: Swift-Entwickler/Experte Chris Lattner). Swift möchte die guten Dinge beibehalten und die schlechten eliminieren. In wichtigen Benchmarks ist die Ausführung schneller als bei Python und deutlich schneller als bei Objective-C, was einen guten Start bedeutet.

Weitere Vorteile von Swift

Swift bietet auch eine visuelle Echtzeitumgebung namens „Playground“, in der das Ergebnis in Echtzeit während der Kompilierung sichtbar ist, ähnlich einer Skriptsprache. Dies kann Prozesse je nach App-Design auf wenige Minuten verkürzen, da Probleme sofort erkannt und behoben werden können. Es ist das Programmieräquivalent zur Korrektur eines Fehlers auf einem Ausdruck oder zur Behebung eines rot unterstrichenen Wortes. So können komplexe Apps schneller erstellt werden.

Swift geht aber noch weiter. Bei höheren Sprachen mussten Klassen und Bibliotheken deklariert und aufgerufen werden, um Funktionen zu aktivieren, egal wie einfach sie waren. In C++ benötigte man <iostream.h> und <conio.>, um grundlegende Eingabe-, Ausgabe- und Datentypen zu nutzen. In Swift ist das nicht erforderlich. Es müssen keine Bibliotheken deklariert werden, da Swift die benötigten Datentypen und E/A-Funktionen selbst verwaltet. Das Drucken von „Hallo Welt“ wird somit von:

#include<stdio.h>
int main(void)
{
  printf("Hello World\n");
  return 0;
}

zu einem einfachen:

println("Hello, world")

Das ist der gesamte Code, der kompiliert werden muss. Außerdem wird auf das Semikolon „;“ als universelles Zeichen für das Ende einer Aussage verzichtet.

Nachteile von Swift?

Die Einführung von Swift bedeutet nicht den sofortigen Tod von Objective-C. Apps können weiterhin mit Objective-C erstellt werden, und bestehende Objective-C-Nutzer fühlen sich nicht völlig fremd, da es Ähnlichkeiten gibt. Da Apple aber bereits vier Jahre an einer neuen Programmiersprache gearbeitet hat, wird der Fokus nun auf die Weiterentwicklung und Unterstützung von Swift liegen. Möglicherweise wird Apple Objective-C eines Tages komplett aus den Annalen der Apple-Programmiersprachen streichen, aber dieser Tag ist noch nicht gekommen. Aber warum sollte man an Objective-C festhalten, wenn eine neue Sprache so einfach zu erlernen und so viel schneller ist?

Ein Hauptproblem ist die Umwälzung der Branche. Viele Karrieren basierten auf dem Wissen, wie man iPhone-Apps erstellt. Diese Karrieren sind nun veraltet. In diesem Bereich wird es Umstrukturierungen geben. Es wird auch eine neue Welle von Swift-Nutzern geben (Flappy Birds wurde bereits mit Swift entwickelt), was Vor- und Nachteile hat. Positiv ist, dass die Community neuen Input bekommt. Negativ ist, dass diese neuen Nutzer unerfahren sein werden und den Markt mit schlecht gemachten Apps überschwemmen könnten.

Wir werden in Kürze das Metal-Framework von Apple und seine Vor- und Nachteile, insbesondere im Bereich iOS-Gaming, beleuchten.

Fazit

Sollten Sie sich fragen, warum auf der WWDC-Konferenz keine neue Hardware angekündigt wurde, dann erinnern wir an die Aussage, dass Hardware ohne die passende Software nutzlos ist. Die Einführung von Swift war also die wohl größte Neuigkeit der Veranstaltung. Eine Neuausrichtung der Software, die das Gesicht der Hardware in Zukunft verändern wird. Um mit Swift loszulegen, benötigen Sie die Betaversion von Xcode 6 und eine Entwickler-ID.

Hier geht’s zu Swift