Accueil Nos publications Blog Swift et l’ouverture d’Apple

Swift et l’ouverture d’Apple

Open Source Swift

Début décembre, Apple a fait un beau cadeau au monde : Swift est maintenant un projet Open source. Oh, on l’attendait depuis la WWDC de juin 2015, mais Apple avait déjà, par le passé, promis de l’Open Source et s’était contenté du service minimal, ou pire, n’avait jamais rien ouvert. Compte tenu de la popularité du langage, une sacré pression reposait sur sa sortie en Open Source, alors est-ce satisfaisant ? Et qu’est-ce que cette ouverture indique sur l’évolution d’Apple ?

Le concept

Comme indiqué au début de la page “About” sur Swift.org, le nouveau site officiel du langage, Swift veut devenir le meilleur langage pour aussi bien créer un système d’exploitation que des applications mobiles ou desktop, des scripts ou des services Web : à peu près tout ce que l’on peut vouloir faire avec un langage de programmation.

I became a penguin

Si aujourd’hui on peut voir JavaScript comme le langage le plus polyvalent, Swift cherche une omniprésence encore plus grande. Il a cependant un avantage important : il démarre sur des bases neuves avec un objectif bien défini !

Dans ce contexte, le passage en Open Source a du sens : comment espérer pouvoir concevoir le langage à tout faire, tout en restant dans sa tour d’ivoire, avec les problématiques et la vision d’une seule société ? D’autant qu’Apple n’est pas forcément le meilleur quand il s’agit d’être à l’écoute des développeurs, avouons-le.

Si Swift est aujourd’hui très populaire, il est à présent suffisamment “mature”, d’après Apple, pour montrer ses secrets et accepter la participation de la communauté, ce qui lui permet de passer la seconde et de se propulser vers son objectif : pouvoir tout faire.

Apple et l’Open Source

Swift est loin d’être la première initiative Open Source. Rappelons qu’Apple est à l’origine du projet WebKit, qui a engendré des navigateurs comme Safari ou Chrome, et a libéré le potentiel du Web Mobile. On ne peut pas dire que le projet soit très accueillant cela dit, et il reste confidentiel.

FaceTime = Open

La légende veut que les développeurs de FaceTime aient appris que leur protocole deviendrait Open Source en même temps que tout le monde, pendant l’annonce officielle. On attend toujours…

On a aussi tendance à oublier que le cœur d’OS X, Darwin, est Open Source. On peut le trouver, ainsi qu’une palanquée d’autres projets, sur la page Open Source d’Apple. Si WebKit n’est pas accueillant, l’initiative Darwin est glaciale : les releases sont envoyées à l’envi et ne semblent pas ouvertes aux contributions extérieures.

La dernière initiative en date est ResearchKit, le jeu d’outils permettant de transformer un périphérique iOS en appareil de collecte de données médicales, pour mener des études. Le projet a l’air de bien évoluer et d’accepter de nombreuses contributions extérieures.

On pouvait donc s’attendre au pire comme au meilleur, alors en fin de compte comment Apple a-t-elle géré l’ouverture de son nouveau bébé ?

Initial Commit

La surprise a été totale : le 3 décembre, pour accompagner la nouvelle home page du langage, Apple a publié une multitude de repositories sur GitHub, dont le plus crucial est bien entendu celui de Swift lui-même. Le langage est à présent disponible sur Linux, comme promis, et toute la procédure d’installation est proprement documentée.

Swift sur Github

Ceci existe et c’est très sérieux.

On pouvait s’attendre à une liste de commits entièrement vierge au démarrage mais ce n’est pas du tout le cas : on peut même voir que le commit initial date de juillet 2010 et que Chris Lattner a travaillé seul pendant un an avant d’être accompagné. Car oui, on peut voir le nom réel des développeurs qui ont rejoint le projet !

Swift Initial Commit

Ce détail n’est qu’un des nombreux signes de la transparence absolue sur ce projet. Une transparence tout à fait inédite chez Apple et qui laisse entendre que la compagnie américaine est prête à laisser grandir le langage et à le laisser la dépasser.

Un avenir à tracer

Cette transparence se retrouve également dans la feuille de route de Swift. On trouve même un repository dédié à l’évolution du langage, annonçant d’entrée de jeu ce qui se trouvera ou non dans le périmètre de Swift 3.0. Étonnant, quand on connaît l’amour d’Apple pour les effets d’annonce !

En l’occurrence, Swift 3.0 – prévu pour l’automne prochain – vise une importante stabilisation, une ouverture vers de nouvelles plates-formes et une traduction des API “Foundation”. Ce repository est permet également de collecter et traiter les propositions d’évolutions, dont certaines ont déjà été acceptées et étonnamment il s’agit surtout de suppressions de fonctionnalités !

Accepted Proposals

Si j’étais vous, j’éviterais d’utiliser l’opérateur `++` ou les boucles `for` avec index dans mon code Swift.

Ces suppressions peuvent paraître étonnantes, mais elles ont finalement du sens dans le contexte d’un nouveau langage : l’idée est d’encourager à utiliser les nouveaux outils plutôt que de continuer de s’appuyer sur l’ancien mode de pensée. Et puis, si vous souhaitez vraiment vous servir de l’opérateur ++, rien ne vous empêche de faire un fork du langage !

Le repository de Swift accepte aussi les Pull Requests et l’équipe semble très réactive. Si vous souhaitez participer à l’évolution et à la maintenance du langage, c’est aujourd’hui une possibilité. Que ce soit pour corriger des coquilles, soigner l’indentation du code ou améliorer des performances, vous pouvez proposer vos changements. Et si vous préférez remonter les bugs sans trop vous inquiéter de comment les corriger, il y a maintenant un Jira sur Swift.org pour ça.

On a donc, d’un côté, une volonté de guider le langage dans une direction précise, et d’un autre, une ouverture importante aux suggestions et aux participations de la communauté. L’avenir nous dira comment les deux se réconcilient.

Ce n’est qu’un début

Si vous en doutiez encore, Swift est pris très au sérieux et c’est un plaisir pour les développeurs de le constater de manière aussi concrète. Craig Federighi, le Vice Président de l’ingénierie logicielle, a lui-même fait la tournée des interviews de Ars Technica à The Talk Show, alors que la communication d’Apple n’est d’ordinaire pas ciblée sur des aspects aussi techniques.

En plus d’avoir proposé le projet Open Source, Apple délivre un Package Manager dans la veine de NPM côté Node, un REPL pour jouer du code en temps réel dans le terminal, mais aussi des bonnes pratiques de conception d’API pour proposer dès maintenant des conventions et maintenir une certaine cohérence au sein de la base de développeurs.

Ceux qui se méfiaient d’un Apple fermé et farouche peuvent commencer à s’intéresser à ce projet. On assiste ici à la création d’un langage nouveau qui a déjà beaucoup de traction et qui pourrait bien avoir un impact important sur les prochaines tendances dans le milieu du développement, qu’il soit mobile, Apple ou non.

Pour en savoir plus sur Swift, la page Getting Started sur le site officiel est un bon point de départ. IBM propose aussi une sandbox pour tester le langage dans votre navigateur.

Swift Sandbox

Si vous souhaitez vous tenir au courant de l’évolution du projet, Apple propose plusieurs mailing lists (attention c’est très bavard) ou vous pouvez simplement suivre la newsletter hebdomadaire This Week in Swift ou le blog Open source Swift.

Affaire à suivre, donc !