Swift ist Open Source!

Es ist soweit liebe Freunde! Apple hat den Quellcode von Swift freigegeben. Der Quellcode befindet sich unter https://github.com/apple/swift und kann bis zum ersten Commit eingesehen werden.

Der erste Commit wurde von Latter am 18. Juli 2010 gemacht und es ist super dass die komplette Historie bewahrt wurde!

Aktuell benötigt man zum kompilieren des LLVM Frontends ein aktuelles OS X oder Ubuntu. Eine entsprechende Anleitung findet man unter GitHub. Wie bereits von uns vermutet wurde das Frontend vollständig in C++ entwickelt, was auch nahe liegt das Lattner selbst bereits LLVM und clang in C++ entwickelt hat.

Selbiges gilt natürlich auch für die Swift Laufzeitumgebung. Auf den ersten Blick ist alles super dokumentiert, es gibt einen Code of conduct und natürlich sind Pull Requests von aussen möglich und es wurden bereits mehrere akzeptiert. Apple  ernst zu meinen.

Lizenz

Dankbarerweise hat Apple entgegen der Erwartung vieler Hater Swift unter die Apache 2.0 Lizenz gestellt. Zudem ist das Copyright bei den Erschaffern und nicht Swift selbst. Dies ist eine gesunde Entscheidung und könnte viele in der Open Source Community dazu bringen ebenfalls für Swift zu commit-ten.

Apache Logo

Runtime Exception

Zudem sollte nicht unerwähnt bleiben, dass ein Programm welches kompiliert wird mit dem Swift Compiler keinen expliziten Hinweis darauf geben muss, dass es mit Produkten von Swift.Org kompiliert wurde. Dies folgt aus dem Ausschluss der Sektionen 4a,b und d in der Apache 2.0 Lizenz

 

Es wird spannend

Abzuwarten ist wie viel Auswirkung dieser Schritt auf die Community haben wird. Wir rechnen selbst immer noch stark mit einer sehr guten Alternative zu node.js für die Serverseitige Entwicklung mit Swift. Perfect liefert einen Anfang, mit der Veröffentlichung des Quellcodes könnte sich das zu einem Laubfeuer ausbreiten.

Als Zielgruppe für den Quellcode dürften sich vor allem Studenten und interessierte des Compiler-baus interessieren. Aber auch normale Entwickler bekommen die Chance Einblicke in die hintergründigen Abläufe des Swift Frontends zu bekommen.

Es wird zudem aktuell an einer API Guideline gearbeitet, welche ebenfalls bis Swift 3.0 fertiggestellt sein soll. Diese dient Entwicklern sich an gewissen Regeln und Direktive zu halten um ein einheitliches Bild für die Swift API zu garantieren. Mit einfachen Beispielen wird aber bereits jetzt sehr gut verdeutlicht was die Erwartungen Lattners an neue Entwickler und deren Ergänzungen sind. Den aktuellen Entwurf findet ihr hier https://swift.org/documentation/api-design-guidelines.html.

Installation

Eine Installationsanleitung und eine Beschreibung des Buildsystems findet ihr hier https://swift.org/getting-started/#installing-swift. Swift nutzt hierfür Ninja. Man kann wie auf der Seite beschrieben aber auch durchaus Xcode zur Entwicklung nutzen.

Package Manager

Apple hat zudem einen eigenen Package Manager für Swift veröffentlicht. Den Quellcode findet ihr ebenfalls auf GitHub und weitere Informationen zu diesem unter https://swift.org/package-manager. Welche Auswirkungen dies auf andere Package Manager wie Carthage oder CocoaPods haben wird bleibt abzuwarten.

Wie sich herausstellte wirkte unter anderem Matt Thompsom (AFNetworking, Alamofire, NSHipster) und Max Howell (PromiseKit, Homebrew) an dem Produkt mit. Dies würde auch erklären warum Thompsom seit Mai 2015 keinen Tweet mehr veröffentlicht hat und auch nicht mit neuen Produkten in Erscheinung trat. Beide sind jetzt Angestellte von Apple und können hoffentlich ihre Kreativität auch dort weiterhin voll ausleben!

Foundation und CoreFoundation

Nicht allzu überraschend dürfte die Entscheidung gewesen sein CoreFoundation und das darauf basierende Foundation mit zu veröffentlichen. Dadurch ist es von Anfang möglich bereits bekannte Datentypen wie NSArray oder NSString weiter nutzen zu können. Swifts eigene Implementierung für Strings ist bekanntlich immer noch nicht vollständig ausgereift.

Ein weiteres Ziel durch die Veröffentlichung des Quellcodes ist zudem die vollständige bzw. teilweise Portierung von wichtigen Klassen zu Swift. Laut Lattner forciert man hierfür das Release von Swift 3.0.

Den Quellcode zu beiden Projekten findet ihr ebenfalls auf Github https://github.com/apple/swift-corelibs-foundation.

Swift.org

Alle wichtigen Informationen und auch einen Blog findet man auf der offiziellen Seite für Swift. Man findet hier neben nützlichen Anleitungen zum Umgang mit der Buildumgebung auch weitere Teilprojekte welche das gesamte Bild von Swift formen. Einige wie den Package Manager  haben wir bereits.

XCTest

Ein wenig überraschen für uns aber durchaus eine willkommene Ergänzung ist die Veröffentlichung von XCTest. XCTest ist das Unit-Test Framework von Apple und löste einst OCTest ab. Dadurch bekommen wir von Anfang an ein sehr wichtiges Tool in die Hand, um von Anfang an auch Tests unter Linux ausführen zu können. Dadurch dürfte sich ein Framework Kampf fast erledigen. Wobei diese meist nur aus Philosophischen Gründen entstanden sind (TDD vs. BDD).

 

Das ganze große Spiel hat begonnen und wir sind fest davon überzeugt das uns eine goldene Zukunft bevor steht.

Previous post

Server-Side Swift mit Perfect

Next post

24 Tage Advent, 24 Stunden Swift Seminar für Euch :-)

The Author

Stefan Mayer-Popp

Stefan Mayer-Popp

Stefan Mayer-Popp ist leidenschaftlicher Softwareentwickler, Fachbuchautor, Trainer und Berater aus dem Münchner Umland. Als passionierter IT- und Apple-Profi hat Mayer-Popp unzählige IT-Projekte in verschiedensten Branchen erfolgreich umsetzen und unterstützen können. Neben seiner Tätigkeit als Teamleiter bei CHECK24 teilt Mayer-Popp seine Erfahrungen auf IT-Veranstaltungen und propagiert Swift aktiv auf verschiedenen Meetups.

1 Comment

  1. 6. Dezember 2015 at 14:04 — Antworten

    Sehr schöner Post.

    Eine kleine Anmerkung möchte ich hinzufügen. Die neue Implementierung von XCTest hat mich auch sehr überrascht. Man muss aber bedenken, dass Apple selbst dazu auf der Github-Seite schreibt:

    „This project is the very earliest stages of development. It is scheduled to be part of the Swift 3 release.“

    Somit dauert das noch, bis wir wirklich mit der Swift-Version von XCTest arbeiten werden können.

Leave a reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.