Mit der Geheimniskrämerei ist es vorbei: Seit Swift ein Open-Source-Projekt ist, verläuft die Entwicklung transparent. Dieser Beitrag fasst zusammen, wie Swift 3 voraussichtlich aussehen wird. Diese Pläne ändern sich laufend. Dieser Beitrag wird deswegen regelmäßig aktualisiert. (Erste Version 11.12.2015, letztes Update: 1.8.2016.)
PS: Die Liste der Änderungen hat inzwischen schon fast epische Ausmaße angenommen. Dieser Blogbeitrag ist eine Zusammenfassung der Neuerung, die mir am wichtigsten erscheinen, aber keine vollständige Referenz. Werfen Sie gegebenenfalls einen Blick auf die Seite https://github.com/apple/swift-evolution!
In den ersten Lektionen habe ich meinen Kindern gezeigt, was Code ist und wie man einfache Veränderungen an vorhandenen Code durchführen kann (Swift für Kinder, Teil I). Heute geht es mit if und for weiter.
Update 21.10.2016: ZIP-Archiv mit Code aktualisiert für Swift 3 final.
Im Sommer 1986, zwischen Matura und dem Beginn meines Studiums, habe ich mein erstes Buch verfasst — das »Atari ST Grafikbuch«. Natürlich hatte ich damals nie gedacht, dass dieses Buch den Grundstein für meine Karriere als IT-Autor legen würde. Das Buch ist eher aus einer Verlegenheit heraus entstanden, nachdem die Suche nach einem »richtigen« Ferialjob gescheitert war.
Natürlich ist es mir nicht entgangen, dass Fedora 24 schon seit fast zwei Wochen verfügbar ist. Aber ich bin erst jetzt dazu gekommen, zumindest einen kurzen Blick auf die Distribution zu werfen.
Vielleicht lag meine mangelnde Motivation auch daran, dass es — zumindest aus Desktop-Sicht — wenig relevante Neuerungen gab. Das haben anscheinend auch die Fedora-Entwickler so gesehen: Sie haben sich gar nicht erst die Mühe gemacht, Release Notes zusammenzustellen. Marketing-mäßig suboptimal, wenn ich das mal so sagen darf …
Ubuntu ist frei (Open Source) und samt Updates gratis, das stellt Canonical auf seinen Webseiten mehrfach klar. Nun hat golem.de heute die Story des Hosting-Unternehmens OVH präsentiert. OVH wurde offensichtlich von Canonical aufgefordert, Lizenzgebühren in der Höhe von 1 bis 2 Euro pro Ubuntu-Instanz zu zahlen.
@ubuntu asks us to bill you 1e-2e per month for each VPS/PCI/PCC/SD. If not, prohibition to use the mark "Ubuntu" on our website.
Meine beiden Kinder, aktuell 9 und 11 Jahre alt, sind wie die meisten ihrer Altersgenossen vernarrt in Smartphone-Spiele. Sie haben gesehen, dass ihr Vater Spiele programmiert, und wollen das nun auch können. Nicht irgendwelche Spiele, die auf einem Computer laufen, nein — es müssen Smartphone-Apps sein.
Update 21.10.2016: ZIP-Code-Archiv aktualisiert für Swift 3 final.
Mitglieder des Apple Developer Programs können seit gestern die erste Xcode-8-Beta herunterladen. Sie enthält erwartungsgemäß die erste offizielle Prerelease-Version von Swift 3. Aufgrund des Confidentiality-Regeln, die für Teilnehmer am Apple Developer Program gelten, kann ich hier keine Screenshots zeigen und nur über Dinge schreiben, die ohnedies schon öffentlich bekannt sind (z.B., weil Apple auf der WDDC darüber berichtet hat oder entsprechende Dokumente veröffentlicht hat). Aber auch mit diesen Einschränkungen gibt es ein wenig zu berichten.
Immer wieder passiert mir das: Ich probiere etwas Neues aus, geben dem Projekt einen Namen wie hello-spritekit und zwei Wochen später ist eine richtige App daraus geworden. Der ursprüngliche Name ist dann unpassend. Wie kann man also einem Xcode-Projekt einen neuen Namen geben?
In den letzten Wochen habe ich recht intensiv unter Swift 2.n mit dem SpriteKit gearbeitet. Ein großes Ärgernis ist dabei das umständliche Hantieren mit CGPoint, CGSize, CGRect– und CGVector-Strukturen. Lästig sind auch die ständig erforderlichen Typumwandlungen zwischen den im SpriteKit üblichen CGFloat-Zahlenformat und »gewöhnlichen« Integer- und Fließkommazahlen. Das ist umso absurder, als CGFloat auf 64-Bit-Plattformen ohnedies eine Double-Zahl ist. Einzig auf 32-Bit-Architekturen ist CGFloat tatsächlich ein Float.
Wie auch immer: Swift wäre nicht Swift, könnten wir uns das Leben nicht mit ein paar neuen Operatoren, nachträglichen Erweiterungen vorhandener Strukturen sowie mit globalen Funktionen leichter machen.