Vor eineinhalb Jahren hat Apple die Programmiersprache Swift vorgestellt. Wie man es sich von einer neuen Sprache erwartet, ist Swift modern und vereint in sich viele (die besten?) Features aus diversen anderen Programmiersprachen, kombiniert mit ein paar eigenen Ideen.
Wie jede neue Sprache leidet Swift noch unter einigen Kinderkrankheiten. Die größte besteht darin, dass die Sprache work in progress ist. Wer immer sich auf Swift einlässt, muss damit rechnen, dass sein Code schon mit der nächsten Swift-Version an neue Syntaxregeln oder veränderte Standardbibliotheken angepasst werden muss. (In der Apple-eigenen Entwicklungsumgebung Xcode funktioniert das zum Glück weitgehend automatisch.)
Trotz dieser Einschränkung ist Swift durchaus schon praxistauglich und wird bereits intensiv genutzt. Der Grund dafür ist leicht erklärt: Wer native Apps für iOS, OS X, die Apple Watch etc. programmieren will, hat nur die Wahl zwischen Objective C (uralt mit steinzeitlicher und abschreckender Syntax) und Swift. Apple erklärt dezidiert, die Zukunft heißt Swift. Da fällt die Entscheidung nicht schwer …
Swift ist jetzt ein Open-Source-Projekt
Gestern hat Swift eine Ankündigung vom vergangenen Sommer wahrgemacht: Swift wurde zusammen mit diversen Tools als Open-Source-Code freigegeben. Das Projekt wird auf GitHub gehostet, es gibt öffentliche Mailing-Listen und einen öffentlichen Bug-Tracker.
Was aus Linux-Sicht eine Selbstverständlichkeit ist, ist für Apple durchaus ein Paradigmenwechsel. Wenig andere IT-Firmen betreiben einen derartigen Aufwand, neue Entwicklungen so lang wie möglich geheim zu halten. Zumindest für Swift ist dies nun nicht mehr möglich.
Braucht Linux noch eine Programmiersprache?
Interessanterweise bevorzugt Apples Open-Source-Strategie Linux. Linux wird von Anfang an offiziell unterstützt, für Ubuntu gibt es sogar fertige Binärpakete. Apple stellt es der Community frei, auch Windows-Versionen von Swift zu entwickeln, engagiert sich dafür aber nicht selbst.
Da freut sich die Linux-Gemeinde aber, dass ihr noch eine Programmiersprache zur Verfügung steht!? Sie hat ja schon Erfahrung damit, nachdem Sun Java zum Open-Source-Projekt machte und später Microsoft auch C# und einen Teil des .NET-Frameworks freigab. Ein Blick auf Java und C# zeigt aber auch, dass die Begeisterung nicht grenzenlos ist:
Warum zeigt die Linux-Community nicht mit mehr Freude an so tollen und ausgereiften Programmiersprachen wie Java oder C#, die mit immensem (Kosten-)Aufwand von Firmen wie Oracle oder Microsoft vorangetrieben werden?
Vielleicht liegt es ganz einfach daran, dass es schon genug ausgezeichnete Programmiersprachen gibt. Die Linux-Kernelentwicklung wird bei C bleiben, die Anwendungsentwicklung für KDE und Gnome funktioniert mit C++ bzw. C. passabel, diverse Scripts lassen sich in der Bash oder, viel besser, mit Python entwicklen. Und für nahezu jede Spezialaufgabe stehen diverse weitere Programmiersprachen zur Auswahl.
Und jetzt kommt also Swift — und Sie spüren sicher schon meine Skepsis: Was bietet Swift, was Linux nicht ohnedies schon hat? Gegenwärtig nichts. In der aktuellen Form können Sie mit Swift unter Linux nicht viel mehr anfangen, als Algorithmen zu entwickeln. Interessant vielleicht für Unterricht und Lehre, aber nicht darüber hinaus.
Die Anbindung an das Linux-Umfeld, beispielsweise in Form einer GTK-Bibliothek, fehlt noch vollständig. Im Apple-Mikrokosmos stehen Swift-Programmierern unzählige Bibliotheken zur Auswahl; diese Bibliotheken sind aber nicht Teil der Open-Source-Strategie. Einzig die Foundation-Bibliothek, eine Art Standardbibliothek für recht elementare Aufgaben, soll unter Swift neu implementiert und ebenfalls als Open-Source-Code freigegeben werden.
Kurzum, ich bezweifle, dass Swift unter Linux auf Anhieb zum großen Erfolg wird. Vielleicht aber auf längere Sicht, denn …
Braucht Apple Linux?
Eine absurde Frage. Apple ist erfolgreich wie nie zuvor und schwimmt im Geld.
Aber auch im Apple-Kosmos gibt es schwarze Löcher. Eines ist die Server-Seite. Apple betreibt Server-Farmen in der Liga von Google und Amazon. Es ist wenig bekannt, welche Hard- und Software dabei eingesetzt wird. theRegister hat 2011 darüber spekuliert, es wäre eine Mischung aus Microsoft Azure und Amazon Services. Äußerst unwahrscheinlich ist auf jeden Fall, dass Apple eigene Hardware und OS X einsetzt. Apple hat den Server-Bereich in den letzten Jahren immer mehr vernachlässigt. So schön MacBooks, iMacs etc. sind — für das Rechenzentrum sind sie nicht konzipiert.
Die ganze schöne App(le)-Welt setzt eine solide dahinterliegende Server-Infrastruktur voraus. Und für App-Entwickler wäre es natürlich eine feine Sache, den Client (die App) und die Server-Seite (die Cloud) in der gleichen Programmiersprache entwickeln zu können. Wenn sich Swift unter Linux etabliert, wäre das möglich. Aus meiner Sicht liegt hier das größte Potential, die größte Chance für Swift unter Linux. Also Swift als Puzzleteil für eine Apple-Cloud unter Linux.
Ein zweiter Aspekt ist der Einsatz von Swift in Schulen, Universitäten — ein Segment, in dem Apple (zumindest in den USA) stark vertreten ist. Swift verkörpert moderne Sprachkonzepte und wäre insofern eine attraktive Wahl für den Unterricht. Aber solange Swift Apple-only ist (bzw. war), ist diese Option nicht praxistauglich. Keine Schule, keine Uni kann erwarten, dass jeder Schüler/Student Apple-Geräte nutzt. Gelingt es Swift aber, den Apple-Kosmos zu verlassen, dann hätte Swift als Unterrichtssprache eine reelle Chance. (Persönlich finde ich ja Python wegen seiner Einfachheit noch erheblich attraktiver, zumindest als erste Programmiersprache, aber sei’s drum.)
Fazit
In jedem Fall ist die Freigabe von Swift eine weitere Bestätigung für die Open-Source-Idee. Welche Strategien und Pläne Apple für Swift hat, darüber kann man (so wie ich) nur spekulieren. Langfristig könnte Swift aber zu einem durchaus interessanten Angebot selbst für eingefleischte Linux-Entwickler werden.