Comme promis, Apple ouvre les sources de son langage Swift

Comme promis, Apple ouvre les sources de son langage Swift

La séduction par l'open source

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

04/12/2015 4 minutes
44

Comme promis, Apple ouvre les sources de son langage Swift

Apple vient d’ouvrir les sources de son langage Swift. Une bascule importante, mais qui avait été promise en juin dernier. L’évolution du langage, qui prend la relève d’Objective-C depuis l’année dernière, se fera donc avec l’aide de communauté.

En juin dernier, lors de la WWDC, Apple avait présenté les grandes lignes de la version 2.0 de son langage Swift. Ce dernier était apparu officiellement l’année dernière comme le remplaçant officiel d’Objective-C, avec pour objectif d’en accélérer et sécuriser le développement. Nettement plus orienté objet, il se rapproche également du fonctionnel puisque le développement se faire par l’intermédiaire de fonctions imbriquées les unes dans les autres.

Swift ouvre ses sources, sous licence Apache 2.0

Mais outre les améliorations portées à son langage, Apple avait fait une autre annonce importante : Swift devait passer à l’open source. Une décision qui n’était pas si étonnante, de nombreuses entreprises tendant vers l’ouverture des sources pour les technologies de développement, notamment Microsoft pour une grande partie de .NET. Or, il est intéressant de constater qu’avec la disponibilité de ces sources, Apple a choisi exactement la même licence que son concurrent : Apache 2.0.

Les sources de Swift sont disponibles dans un dépôt GitHub ouvert pour l’occasion. On y retrouve évidemment le compilateur, le débogueur LLDV, l’outil REPL (Read Eval Print Loop), toutes les bibliothèques principales, ou encore le Swift Package Manager. Ce dernier est nouveau et n’est d’ailleurs disponible que sous forme de préversion. Il a pour ambition de devenir le grand dépôt de tous les modules dédiés à Swift.

Autre point intéressant, le site présente un document sur l’évolution de Swift. Pas question donc d’attendre la prochaine WWDC en juin 2016 pour en apprendre davantage sur la version 3.0 du langage. L’objectif principal sera ainsi la compatibilité du code, ce qui signifie qu’un code écrit pour cette mouture pourra être encore compilé par les versions suivantes. Ce n’est pas le cas aujourd’hui, et si cette compatibilité apparait avec Swift 3.0, cela signifie que des éléments seront incompatibles avec la nouvelle version pour les anciens projets en Swift 1.0 ou 2.0.

Pas de compatibilité avec Windows, sauf si la communauté s'en charge

Les évolutions se feront toutes dans le dépôt GitHub, même si un nouveau site officiel, Swift.org, concentre toutes les ressources pour les développeurs. Notez bien que la disponibilité de Swift n’est officielle que sur OS X, iOS et Linux. Pourquoi d’ailleurs ne pas proposer de compatibilité avec Windows ? Craig Federighi, vice-président de l’ingénierie chez Apple, a répondu à Ars Technica : « Nous pensons que Linux et bien entendu nos plateformes fournissent une bonne base de démarrage. Mais nous sommes ouverts au portage vers d’autres plateformes, surtout si l’on considère que LLVM, Clang et LLDB, qui sont les technologies fondatrices de Swift, sont déjà disponibles et portées vers Windows. Je pense qu’on peut s’attendre à ce que quelqu’un dans la communauté, conduit par Microsoft ou d’autres, s’attaque à ce portage. »

En d’autres termes, Apple ne bloquera pas un portage de Swift vers Windows, mais elle ne fera rien d’elle-même. Il s’agira donc d’une initiative émanant de la communauté, et le site officiel ne continuera à faire référence qu’à OS X, iOS et Linux.

Il est évident en tout cas qu’Apple veut fédérer une véritable communauté autour de Swift, pour en faire la promotion. Le passage en open source signifie que le langage pourrait être utilisé pour d’autres besoins que le seul développement d’applications iOS et OS X. Et plus les développeurs seront attirés, plus ils seront éventuellement tentés de venir publier une création sur l’un des App Store de l’entreprise à la pomme.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Swift ouvre ses sources, sous licence Apache 2.0

Pas de compatibilité avec Windows, sauf si la communauté s'en charge

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Fermer

Commentaires (44)


C’est dommage de ne pas le porter sous windows.

Ca ferme quand même une grosse partie du marché.



Puis bon, je sais pas si c’est moi qui le lis comme ça mais ça me fait genre :

“Y’a bien un mec qui le fera, nous on se casse pas trop le cul, mais si ça arrive un jour, ça nous profitera”








Dyonisos84 a écrit :



C’est dommage de ne pas le porter sous windows.

Ca ferme quand même une grosse partie du marché.



Puis bon, je sais pas si c’est moi qui le lis comme ça mais ça me fait genre :

“Y’a bien un mec qui le fera, nous on se casse pas trop le cul, mais si ça arrive un jour, ça nous profitera”



C’est comme ca que je le ressens aussi <img data-src=" />









Dyonisos84 a écrit :



C’est dommage de ne pas le porter sous windows.



Ca ferme quand même une grosse partie du marché.      






Puis bon, je sais pas si c'est moi qui le lis comme ça mais ça me fait genre :       

"Y'a bien un mec qui le fera, nous on se casse pas trop le cul, mais si ça arrive un jour, ça nous profitera"








Mhmm. Je le sens pas comme ça. Je le sens plutôt : "Les gars, vous voulez faire du Swift, et bah achetez un Mac d'abord parce-qu'on le portera JAMAIS sur Windows. Donc si vous voulez la 'version officielle', pas le choix ! Allez, à bientôt sur Apple.fr section 'achetez un Mac' "   





Apple a toujours fonctionné comme ça, et je pense que c’est pas prêt de changer :P



D’un autre côté, Microsoft a fait pareil avec .NET : on libère le code, mais faites les portages vous-même.








gjdass a écrit :



Mhmm. Je le sens pas comme ça. Je le sens plutôt : “Les gars, vous voulez faire du Swift, et bah achetez un Mac d’abord parce-qu’on le portera JAMAIS sur Windows. Donc si vous voulez la ‘version officielle’, pas le choix ! Allez, à bientôt sur Apple.fr section ‘achetez un Mac’ ”




Apple a toujours fonctionné comme ça, et je pense que c'est pas prêt de changer :P







Si c’était le cas, il ne l’aurait pas porté sous Linux. Et il n’aurait probablement d’ailleurs pas libéré le code du tout.



j’ai du mal avec ce nom car c’est aussi une boite dans le domaine des flux bancaires.









le podoclaste a écrit :



D’un autre côté, Microsoft a fait pareil avec .NET : on libère le code, mais faites les portages vous-même.







Au moins cela donne la possibilité de le faire, on change quand même de situation par rapport à il y a quelques années.



J’espère que Taylor est d’accord avec ça.



<img data-src=" />


\begin{appel au troll}



Apple ouvrir quelque chose, surtout logiciel ? Pas possible !



\end{appel au troll}



<img data-src=" /><img data-src=" /><img data-src=" /><img data-src=" /><img data-src=" />


Donc si Microsoft s’en charge on pourrait voir arriver tout le catalogue iOS sur le Windows Store? :)


Non. D’une part, Microsoft ne s’en chargera probablement pas. Ensuite, le langage ne suffit pas pour rendre les applications portable, il faut aussi les API.


C’est quoi l’intérêt de ce langage par rapport à la pléthore de langages sur le marché?



Vitesse? Super facile? Super rigoureux? APIs de la mort avec?


<img data-src=" />


Le portage de .Net sur les autres plateformes est bien en cours par Microsoft et ça avance même bien.


langage made in Apple: ceci est une révolution&nbsp;



<img data-src=" />&nbsp;





&nbsp;


Aucun interet de le porter sur Windows.

Par ailleurs tant qu’on a besoin d’un Mac pour compiler les apps destiner à iOS ou Mac, autant de le faire sur un Mac directement.

Si c’est pour développer des applis Windows sur Windows, autant ne pas utiliser Swift.



Bref, c’est comme Microsoft qui veut faire de pseudo open-source pour iOS et Linux dans Visual Studio.

A force, tant qu’à faire je suis passé à XCode pour faire du Swift…

La boucle est bouclée…..








tybreizh a écrit :



j’ai du mal avec ce nom car c’est aussi une boite dans le domaine des flux bancaires.





Et une norme. Et du coup quand tu mets SWIFT sur ton profil Linkedin, tu es contacté par des RH qui cherchent des développeurs pour le langage SWIFT alors que moi c’est le réseau SWIFT.



&nbsp;La recherche par mot clef caylemal.









Tortue facile a écrit :



Et une norme. Et du coup quand tu mets SWIFT sur ton profil Linkedin, tu es contacté par des RH qui cherchent des développeurs pour le langage SWIFT alors que moi c’est le réseau SWIFT.



 La recherche par mot clef caylemal.







Ca illustre bien que les RH ne connaissent souvent rien aux métiers pour lesquels elles recrutent, un CV SWIFT et un CV Swift n’ont rien à voir <img data-src=" /><img data-src=" />



Je me demande comment ils ont osé pondre un langage digne des années 90’.

Il est vrai qu’il est plus moderne que Objective C (style années 80’) et apparemment plus puissant.



Il est clair quand on veut développer en natif pour iOS ou Mac, &nbsp;Swift reste le meileur choix dans un monde où on n’a pas trop le choix.&nbsp;<img data-src=" />


Et les BSD ??? ils ont piqué leur noyau ça devrait pouvoir se faire sans trop de mal non ?


Y’ahttp://www.apple.com/opensource/ ethttp://www.opensource.apple.com/ qui va recommencer à faire du clic


Bien sûr que si, ça s’appelle la communication et le marketing. Ça fait du bien à l’image de release des sources jusqu’ici proprio. Il est là l’intérêt.


Swift est maintenant plus rapide que l’objective C :http://www.jessesquires.com/apples-to-apples-part-two/


Sans aucun doute, mais ça n’empêche pas que le portage sous Linux est fait, et qu’on peut désormais faire du Swift sans acheter de Mac (je laisse l’intérêt de la chose à l’appréciation de chacun).


Yup. Mais effectivement l’intérêt est limité. Sachant que OSX tourne sur un noyau BSD si je me souviens bien, ils se sont pas trop foulés les gars quand même. Donc s’ils avaient voulus faire un vrai portage, Windows serait dans la liste :P Anyway … Apple is Apple <img data-src=" />


Sauf que tu as faux, Swift est crossplatform (OSX IOS LINUX) et bientot Android!


Y’a AppCode de Jetbrains (IntelliJ)


c’est un peu l’impression que ça donne.


Apple ne se souvient pas que c’est en lançant iTunes pour Windows que les ventes d’iPod ont explosées ? S’ils veulent que ce langage soit massivement utilisé ils savent ce qui leur reste à faire. Celà dit, en visant uniquement leur plateforme et Linux ils ne vont pas avoir trop de monde dans leurs forums ;)


Et sinon qqun utilise Swift et peut-il faire un retour dessus ? innovations/avantages/inconvenients par rapport aux langages classiques genre Java/C#/PHP ?


Ça reste un langage Apple.&nbsp;Il faut pas se leurrer, il a été créé pour pondre des apps iOS et OS X avant tout.



L’intérêt est donc d’exploiter les API Apple avec une alternative à l’Objective C auquel pléthore de dev sont réfractaires pour tout un tas de raisons.



Si Swift marche en dehors de l’écosystème Apple, notamment sur Android, ça permettrait de grandement faciliter les dev mobiles multi-plateformes. Et même si les API sont différentes, jusque ici, choisir entre Java et ObjC c’était franchement lourdingue. Si ça permettait d’unifier les développements, ça serait un sacré pas en avant. Mais en écrivant ça j’ai l’impression d’être sacrément candide.








gjdass a écrit :



Yup. Mais effectivement l’intérêt est limité. Sachant que OSX tourne sur un noyau BSD si je me souviens bien, ils se sont pas trop foulés les gars quand même. Donc s’ils avaient voulus faire un vrai portage, Windows serait dans la liste :P Anyway … Apple is Apple <img data-src=" />



Non. OS X tourne avec un noyau Mach. Par contre, une bonne partie de ce qui gravite autour du noyau à bas-niveau a été récupéré de BSD (même si c’est de moins en moins vrai, par exemple le système d’init est maintenant 100% Apple).









Anozer a écrit :



L’intérêt est donc d’exploiter les API Apple avec une alternative à l’Objective C&nbsp;





J’imagine bien. Je parlais plutot du langage lui-meme d’ou ma phrase “par rapport aux langages classiques genre Java/C#/PHP”



En tant que langage seul, en dehors de toute contrainte et éco système Apple, il y a peu d’avantage.

&nbsp;

J’y ai jeté un coup d’oeil, c’est quand même plutôt agréable à écrire. Assez moderne et simple sans être une merdié comme JS (avis strictement perso) dès que tu commence à complexifier.



PHP ne permet pas de faire facilement des app standalone. C# est très centré microsoft même si moins vrai avec ASP.NET libre, mais ça reste marginal. Java est un vieux machin qui donne franchement pas envi d’y lancer.

De mon expérience perso, les “vieux” langages &nbsp;et “classiques” comme C++, Java, Obj C sont généralement appris par contraintes : parce que c’est le premier, parce que le client m’a pas laissé le choix, parce que c’était le sujet du cours à l’école. J’ai peu voire pas de connaissance ayant appris et persévéré pour le fun. Contrairement à PHP, JS & co. Et swift s’inscrit là dedans je trouve.



Je suis pas mauvais en C++, mais j’avoue que ça me fait chier de perdre du temps à triturer le langage dans tous les sens pour faire la moindre petite fonction. Quand je fais du PHP je m’éclate.








AlbertSY a écrit :



Par ailleurs tant qu’on a besoin d’un Mac pour compiler les apps destiner à iOS ou Mac, autant de le faire sur un Mac directement.





Moi c’qui m’a toujours fait marrer, c’est que Objective C fait un usage immodéré des caractères [ ] { et }. Et que ces touches n’apparaissent nulle part sur un clavier Azerty de Mac, il faut retenir une combinaison à trois touches pour les taper.



&nbsp;Y’a des moments où à force de vouloir tout faire pas comme les autres, on atteint les limites des bornes&nbsp;<img data-src=" />



Le @ au moins est facile d’accès sur un clavier Mac :).

Bon, après, on a le ~, le \, le |, et tout le reste ..&nbsp;<img data-src=" />



&nbsp;





Anozer a écrit :



En tant que langage seul, en dehors de toute contrainte et éco système Apple, il y a peu d’avantage.

&nbsp;

J’y ai jeté un coup d’oeil, c’est quand même plutôt agréable à écrire. Assez moderne et simple sans être une merdié comme JS (avis strictement perso) dès que tu commence à complexifier.



PHP ne permet pas de faire facilement des app standalone. C# est très centré microsoft même si moins vrai avec ASP.NET libre, mais ça reste marginal. Java est un vieux machin qui donne franchement pas envi d’y lancer.

De mon expérience perso, les “vieux” langages &nbsp;et “classiques” comme C++, Java, Obj C sont généralement appris par contraintes : parce que c’est le premier, parce que le client m’a pas laissé le choix, parce que c’était le sujet du cours à l’école. J’ai peu voire pas de connaissance ayant appris et persévéré pour le fun. Contrairement à PHP, JS & co. Et swift s’inscrit là dedans je trouve.



Je suis pas mauvais en C++, mais j’avoue que ça me fait chier de perdre du temps à triturer le langage dans tous les sens pour faire la moindre petite fonction. Quand je fais du PHP je m’éclate.





Merci pour le retour. ça donne envie de jeter un oeil, ne serait-ce par pure curiosité.



Justement je me posais la question du risque de confusion en lisant le titre. Avec les yachts, il n’y avait pas ce problème. <img data-src=" />





edith : correction de balise








Tortue facile a écrit :



Et une norme. Et du coup quand tu mets SWIFT sur ton profil Linkedin, tu es contacté par des RH qui cherchent des développeurs pour le langage SWIFT alors que moi c’est le réseau SWIFT.



Et pour ceux qui étudient les piafs ? (Swift = martinets) <img data-src=" />









33A20158-2813-4F0D-9D4A-FD05E2C42E48 a écrit :



Moi c’qui m’a toujours fait marrer, c’est que Objective C fait un usage immodéré des caractères [ ] { et }. Et que ces touches n’apparaissent nulle part sur un clavier Azerty de Mac, il faut retenir une combinaison à trois touches pour les taper.



&nbsp;Y’a des moments où à force de vouloir tout faire pas comme les autres, on atteint les limites des bornes&nbsp;<img data-src=" />





Edit : rofl, t’as raison en fait, j’avais oublié à quel point le clavier des MACs est pas ergonomique&nbsp;<img data-src=" />



Regarde le layout d’un clavier US, tu comprendras très vite pourquoi ces caractères spéciaux sont largement utilisés en programmation… ça fait un moment que je suis passé à ce layout pour coder ;-)


+1, et peu importe l’OS


Ce qui est inédit dans l’histoire récente de l’informatique, c’est que chaque constructeur veut maintenant nous pousser vers son langage de programmation. Je ne trouve pas que cela soit un progrès car cela fragmente le marché. Si encore on laissait le choix du langage comme cela à toujours été le cas dans l’informatique…



Hélas, nous savons ce qui va se passer inéluctablement dans un cas pareil : une couche supplémentaire va se développer par dessus pour assurer le développement simultané sur toutes les plateformes. Et ce n’est pas un bien…



Bref, en plusieurs décennies, je n’ai jamais assisté à un tel retour en arrière…









Anozer a écrit :



En tant que langage seul, en dehors de toute contrainte et éco système Apple, il y a peu d’avantage.

 

J’y ai jeté un coup d’oeil, c’est quand même plutôt agréable à écrire. Assez moderne et simple sans être une merdié comme JS (avis strictement perso) dès que tu commence à complexifier.



PHP ne permet pas de faire facilement des app standalone. C# est très centré microsoft même si moins vrai avec ASP.NET libre, mais ça reste marginal. Java est un vieux machin qui donne franchement pas envi d’y lancer.

De mon expérience perso, les “vieux” langages  et “classiques” comme C++, Java, Obj C sont généralement appris par contraintes : parce que c’est le premier, parce que le client m’a pas laissé le choix, parce que c’était le sujet du cours à l’école. J’ai peu voire pas de connaissance ayant appris et persévéré pour le fun. Contrairement à PHP, JS & co. Et swift s’inscrit là dedans je trouve.



Je suis pas mauvais en C++, mais j’avoue que ça me fait chier de perdre du temps à triturer le langage dans tous les sens pour faire la moindre petite fonction. Quand je fais du PHP je m’éclate.







On ne peut pas juste comparer les langages sans parler de leur champ d’application respectifs.



PHP, c’est un langage pour la programmation web côté serveur. Éventuellement un langage de script.

Java, C# et Swift sont des langages applicatifs. Mais on retrouve également C# et Java pour le web côté serveur.

Javascript est un langage de script pour navigateur. Mais ses adeptes ont juré de l’étendre partout, de repeindre les murs avec et même d’en faire une épidémie d’infection zombie.



La plupart de ces langages héritent plus ou moins ouvertement de C/C++ mais ont en réalité une vocation différente.

Java, C#, Swift, PHP et Javascript sont des langages “sécurisés”, c’est à dire avec bound checking. Ils marchent en réalité dans les pas (et le marché) de l’ancien langage Pascal, c’est à dire le développement “de tous les jours” qui doit être écrit rapidement.



C/C++ est un langage de compétition : le roi de la performance grâce à l’absence de “bound checking” et sa capacité à finement contrôler le rapport entre logiciel et matériel. C’est le roi des langages, celui avec lequel on écrit les systèmes d’exploitation, les grands logiciels, les moteurs de jeux vidéo, les grandes bases de données et la programmation embarquée. C’est le langage qui a le moins de limites et le plus de capacités.





Je suis pas mauvais en C++, mais j’avoue que ça me fait chier de perdre du temps à triturer le langage dans tous les sens pour faire la moindre petite fonction. Quand je fais du PHP je m’éclate.





Ces deux langages n’ont pas du tout la même vocation. Ils sont sympa tous les deux à programmer dans leur domaine respectif.

C/C++ est beaucoup plus puissant et rapide que PHP. Mais cela demande plus de maîtrise au départ…

Ils ne sont pas réellement concurrents dans la mesure ou l’on ne les utilisera pas pour les mêmes usages.

PHP, c’est pour du développement web personnalisé “rapide”. Et C/C++ c’est plus pour faire du progiciel qualitatif, de la programmation système ou de l’embarqué,



Au passage, C/C++ ne peut pas être qualifié de “vieux” langage dans la mesure ou son évolution est très rapide : le langage ne cesse de s’enrichir. Et surtout, il n’a toujours pas le moindre concurrent sérieux sur son véritable créneau.














J’étais plutôt conscient de ces aspects en écrivant mon commentaire&nbsp;&nbsp;(sans connaitre tous ces détails, merci pour les précisions). J’ai simplement voulu donner mon avis&nbsp;sur le langage Swift tel que je l’ai perçu : un langage simple mais relativement puissant. Et surtout cohérent.&nbsp;



Parce que contrairement à toi, je n’arrive pas à catégoriser les langages. Surtout en 2015 : on fait des apps embarquées et même serveur avec du javascript…&nbsp;Mais je ne suis pas développeur de métier. Je suis un bon dev web amateur, je me débrouille encore bien en C et C++ et j’ai des restes des autres langages appris à l’école (pas que des langages de programmation d’ailleurs). Pas plus.



Mes digressions sur le PHP avaient surtout pour but d’exprimer une certaine comparaison dans le confort d’écriture. En essayant d’extrapoler en dehors de l’application et du domaine, c’est celui avec lequel j’ai pris le plus de plaisir à construire des algos et systèmes. &nbsp;Je retrouve un peu de ça dans le bouquin Swift que j’ai lu.&nbsp;

&nbsp;

Si on remet le contexte Apple dans la boucle, bah pour moi c’est du pain béni que de pouvoir enfin m’amuser avec les API OS X/iOS sans toucher à l’Obj C que j’au toujours repoussé.



Mais je trouve ce genre de discussions passionnantes :)


il ne me semble pas que M$ soit en train de libérer .Net pour se taper Swift à la place … &nbsp; Il semblerai juste que le modèle open-source se révèle à la fois plus pertinent, efficace et économiquement viable que le closed source …