Federighi : « Swift sera entièrement développé au grand jour sur GitHub »

Stéphane Moussie |

Swift s'ouvre, Craig Federighi aussi. Le Senior Vice President en charge de l'ingénierie logicielle a répondu aux questions d'Ars Technica et The Next Web sur le passage en open source du nouveau langage de programmation d'Apple.

Pourquoi rendre Swift open source ?

Si l'entreprise californienne a décidé de placer sa création sous licence Apache 2.0 (la même que celle utilisée par Microsoft pour une large partie de son framework .NET), c'est parce qu'elle croit dur comme fer qu'il s'agit du langage de programmation majeur pour les 20 prochaines années.

Selon Craig Federighi, il y avait une forte demande des développeurs, y compris de ceux de grosses compagnies comme IBM, pour réaliser toutes sortes d'applications en Swift. « Nous avons pensé que le meilleur moyen de rendre cela possible était au bout du compte le passage en open source. »

Le dirigeant justifie également cette ouverture peu commune chez Apple par la volonté de faire de Swift un langage largement enseigné :

Nous travaillons avec beaucoup de professeurs qui sont très intéressés par Swift parce que c'est un langage expressif qui permet d'introduire toutes sortes de concepts de programmation. Le rendre open source permet à ces professeurs de vraiment l'intégrer dans le cœur de leur programme scolaire.

Craig Federighi présente aussi cette ouverture comme une suite logique du développement de Swift 2. Il explique que bon nombre de changements apportés par cette mise à jour sortie en juin dernier ont été guidés par les retours des développeurs. Libérer Swift va permettre « d'approfondir considérablement cette interaction » avec les développeurs, estime-t-il.

Comment sera géré le projet ?

Et pour montrer que ce ne sont pas des paroles en l'air, il souligne que « l'équipe Swift va entièrement faire évoluer le langage au grand jour sur GitHub. Les modifications vont apparaître quotidiennement, y compris pour Swift 3.0. »

Plutôt qu'avoir à digérer une grosse mise à jour à la prochaine WWDC comme ce fut le cas avec Swift 2, les développeurs peuvent d'ores et déjà suivre les évolutions en temps réel sur GitHub.

L'une des nouveautés introduites aujourd'hui est le Swift Package Manager, un dépôt pour les modules Swift qui va progresser avec l'aide de la communauté. En plus de GitHub qui héberge le code, Apple a mis en place le site Swift.org qui sert de plateforme.

De nouveaux horizons

Apple a libéré dès le départ le compilateur pour Linux, qui permet donc d'écrire des applications en Swift pour Linux (seulement Ubuntu pour le moment). Et Windows ? Le responsable de l'ingénierie logicielle déclare que le système d'exploitation de Microsoft n'était pas une priorité pour le lancement, mais qu'il est très ouvert à l'idée d'une compatibilité avec celui-ci dans le futur. « Je pense qu'il est prévisible que quelqu'un dans la communauté, qu'il soit mené par Microsoft ou par d'autres, fasse ce portage. »

Il s'attend aussi à ce que la communauté pousse rapidement Swift dans les serveurs et l'utilise pour des applications de big data ou de machine learning, entre autres (lire : Perfect : du Swift « côté serveur »).

À plus court terme, Craig Federighi assure être conscient des lacunes de ce jeune langage, en particulier le problème de compatibilité ; la version actuelle de Xcode peut se retrouver dans l'incapacité de compiler du code Swift 1.x créé il y a moins d'un an. « Nous allons fournir des outils pour aider les développeurs à faire avancer leur code source », promet-il. L'un des objectifs de Swift 3.0 sera de faciliter ce cheminement de « vieux » code à travers le temps en évitant autant que possible la réécriture.

« Objective-C ne va pas disparaître »

Pour conclure, le dirigeant se veut rassurant sur Objective-C, qui « ne va pas disparaître », du moins pas tout de suite.

Nous aimons toujours le langage Objective-C. Nous sommes toujours très dépendants d'Objective-C et faisons encore une énorme part de notre travail avec lui ici à Apple. Nous allons continuer de le faire évoluer autant que nécessaire pour l'adapter à un monde en constante évolution.

Néanmoins, c'est bien Swift qui représente l'avenir. Craig Federighi « recommande » aux nouveaux développeurs et à ceux commençant de nouveaux projets d'adopter Swift. « Nous pensons que Swift est vraiment le bon point de départ. »

avatar guigus31 | 

Trop sympas, les mecs!

avatar bonnepoire | 

C'est le Apple qu'on préfère. Modernes et assez ouverts pour faire évoluer les choses dans le bon sens.

Est-ce que Swift sans Metal est aussi puissant? Je sais qu'un est un langage et l'autre un API mais ne sont-ils pas liés?

avatar buzzb0x | 

@bonnepoire :
Pas grand chose à voir. Métal est là pour fournir un accès plus bas niveau afin d'accélérer les tâches graphiques. Swift est comme tu le dis un langage de programmation, il existe complètement indépendamment de Métal et l'inverse est également vraie.

avatar bonnepoire | 

Ce n'est pas le sens de ma question. Je reformule: est-ce que swift exploite ou optimise Metal d'une façon ou d'une autre? Je sais que Metal est bas niveau

avatar iPal | 

@bonnepoire :
Non.

avatar iGeek07 | 

Pour une fois ils ne font pas les choses à moitié!
On voit qu'ils veulent vraiment donner toutes ses chances à Swift pour être un langage majeur.
Et un des développeurs du "packages manager" a été embauché par Apple parce qu'il travaillait sur Homebrew : de bonnes choses en perspectives! :)

avatar tbr | 

Je ne savais pas que Swift faisait du Métal, je croyais qu'elle faisait de la soupe-pop-music qui saoûle.

--> []

avatar instantcook | 

Un non-développeur peut-il s'essayer à Swift (plus par curiosité que pour en faire son métier), ou bien est-ce dans tous les cas complexe à appréhender ? Des ressources à conseiller ?
Merci

avatar iPekka | 

@instantcook :
Si tu n'as vraiment aucune connaissance en prog Swift n'est finalement pas un mauvais point de départ. La doc est bien faite et le eBook d'Apple t'en apprendra beaucoup.
Après attend toi à devoir intégrer beaucoup de notions parfois complexes, quelque soit le langage tu n'y couperas pas !
En tout cas Swift est vraiment super agréable à utiliser.

avatar buzzb0x | 

@instantcook :
Un développeur a été un non-développeur à un moment hein :)
Tu peux trouver des cours sur internet et il y a des ressources et un tutoriel sur le site d'Apple. Sur macg ils ont aussi parlé de plusieurs tuto. Swift me semble assez facile à aborder pour quelqu'un qui n'a jamais touché au code donc ça devrait aller. Après tu auras des bases que tu pourras retrouver dans pas mal d'autres langages si tu veux :)

avatar chrisann | 

Si tu cherches un livre : iOS 9 Programming Fundamentals with Swift, de Matt Neuberg.

avatar occam | 

Bonne recommandation.
Matt Neuburg est un excellent pédagogue (et par ailleurs un chic type, super-sympa).

Mais à part TidBits, hard-core du Mac et de iOS depuis des lustres, si on regarde du côté des éditeurs comme O'Reilly, Packtpub, Manning, NoStarchPress etc., on se rend compte que le marché des livres sur Swift vient d'exploser ces derniers mois, et de façon exponentielle ces dernières semaines. Il y en a pour tous les niveaux, et pour toutes les approches (ou presque).
On sent monter la vague de fond Swift; ça ne fait que commencer.

avatar oomu | 

@instantcook

oui. Et en particulier parce que Xcode intègre "playground"

Playground permet de taper du code swift et voir son résultat en temps réel.
Ce n'est pas fait pour écrire une app mais pour apprendre et comprendre ce que le code fait. Bon outil pour appréhender la programmation.

http://rshankar.com/xcode-6-and-playground/
https://developer.apple.com/xcode/

avatar chrisann | 

Franchement, Apple fait du bon boulot avec Swift. J'espère qu'ils vont tenir leurs promesses et que la communauté va suivre, notamment du côté universitaire. Swift me parait, toute proportion gardée, un concurrent crédible dans le milieu scientifique au redoutable Python.

avatar occam | 

Swift, concurrent de Python ?
Franchement, ça, j'y crois moins.

Les deux langages sont plutôt complémentaires.
Swift servira à écrire des apps, à programmer le système.
Python est plutôt un langage de script que de développement stand-alone.
Analyses dans PostgreSQL, dans PostGIS, dans MongoDB ? Python.
Script d'interface entre MySQL et R ? Python.
Langage pour une nouvelle app chez Affinity ? Swift. (Enfin, je parie.)
Client iOS ? Swift. Etc.

Et n'oublions pas qu'une bonne partie des programmes scientifiques en Python sont désormais exécutés dans un carnet de browser, comme c'est le cas pour Jupyter (cf. jupyter.org). À ce niveau, une bonne partie des capacités de Swift seraient gâchées, alors que pour Python, c'est idéal.

avatar chrisann | 

Entièrement d'accord ! Ils sont plus complémentaires que concurrents directs, c'est vrai, et au vue de la syntaxe de Swift, que je trouve jusqu'à présent assez similaire à celle de Python, cela peut s'avérer une complémentarité gagnante. Cela étant, toute proportion gardée, dans le monde de l'édition et de l'enseignement académique, Swift peut se transformer en un langage idéal pour apprendre l'informatique aux étudiants. Il me parait beaucoup plus simple que C et Objective-C à maitriser, et beaucoup moins indigeste — ce qui n'est pas peu dire, concernant Objective-C, que j'ai toujours trouvé très lourd, raison pour laquelle j'ai renoncé. Au niveau des usages, bien sûr chaque langage répond à des besoins particuliers (quoique je pourrais très bien traiter mes données avec C++). Il n'empêche que Swift est beaucoup plus rapide que Python, c'est une évidence, pas besoin de s'appeler Apple pour le dire : Python est un interpreted language, il est de fait plus lent que Swift. Pour un programmeur amateur dans mon genre qui ne maitrise que Python et R, Swift peut devenir une petite révolution. Je lis la doc Apple, et je constate à mon grand bonheur qu'il n'y a pas « tant » de différences que ça entre Python et Swift, du moins au niveau de la syntax, ce qui permettrait à des amateurs dans mon genre de « level up » sans trop de résistance, et de développer des applications standalone qui pourraient répondre à des besoins plus spécifiques et plus ambitieux. Je considère de plus en plus que tous les étudiants universitaires, peu importe leur cursus, devraient apprendre à coder et en ce sens Swift peut être un concurrent sérieux à Python au moins sur le plan pédagogique.

avatar MaamuT | 

Ah ils les sentent bien partir les développeurs hein, fallait bien une carotte paour les motiver à rester…

Va falloir retirer le bras après le doigt, et ensuite on verra pour les épaules et le bassin…

Gros pari pour la pomme, maintenant, il ne reste plus qu'à attendre le patch qui va corriger El Capitroll, parce que Swift ou pas, si le support est une bouse sans nom… bref.

Ils se bougent enfin le fondement et je ne vais pas cracher dans la soupe, mais il va vraiment en falloir plus pour remonter la pente, on est loin de la technique, maintenant c'est une image qu'Apple doit se reconstruire… muarff !

avatar Domsware | 

@MaamuT :
En moins vulgaire cela donne quoi ?

avatar bonnepoire | 

Rien à voir. Aucune pertinence et aucune intelligence. Tu es le trou noir de l'intellect.

avatar MaamuT | 

Oui jeune Padawan, c’est ce que me disent les lecteurs de MacG depuis 15 ans, mais je te parle de choses que les moins de 6 mois ne peuvent pas connaître…

Je me fous que ce soit du Swift ou du C++, ce que je vois c’est que le monde du dev Apple grogne depuis quelque temps, et que ce passage est un peu comme qui dirait un aveu d’impuissance, là où ils sont, ils ont besoin d’aide pour aller plus loin.

Que fera tu avec une application Swift fulll codded si le résolveur DNS de ton ordi n’est pas foutu de trouver le serveur sur lequel se trouve son contenu ?

Pourquoi de grands éditeurs fuient le sandbox ?

Depuis Lion, Apple engrange les effets de bords et utiliser un Mac en dehors des clous Apple est aujourd’hui une galère sans nom, et les devs ont des machines qui sont très loin des clous Apple.

Vous voyez les choses en imaginant les superbes résultats que l’on obtiendra bientôt grâce à ce super langage open source… et moi aussi j’imagine des choses magnifiques aussi, mais après, j’essaye aussi de les imaginer fonctionner sur les Macs d’aujourd’hui… et ça, c’est une toute autre affaire, entre la théorie est la pratique, le chemin est spécial avec Apple.

Grâce à Swift, je vais mettre seulement une semaine à développer un truc, là où je mettais deux semaines avec C++, cool, c’est une semaine de moins sur les 2 mois et demi que prend de toute manière la validation par le Store…

Avoir un environnement propice à la productivité et mettre au bout de la chaîne un goulot d’étranglement monstrueux.

En réponse, ils améliorent encore l’environnement, et toujours rien pour le goulot, triste.

Ce passage à l’open source est pour moi une très bonne chose c’est un fait, mais il va falloir surveiller tout ça, ce n’est pas la première fois qu’un tel projet est annoncé, pour être remis en questions quelques semaines plus tard.

En tout cas, cela peut aussi ramener Apple aux bonnes vieilles pratiques qu’elle connaît très bien pour en avoir abusé au bon temps.

avatar lmouillart | 

Je n'ai rien compris. Le peu que j'ai réussi à suivre mélange langage, client pour serveur de nom, qualité d'un OS, procédure de distribution de logiciel.

C'est très confus.

avatar bonnepoire | 

Ou très con. Le fus est inutile.

avatar JoKer | 

Tu as l'air de sous-entendre que développer en Swift impose de devoir publier sur le Mac App Store, alors que ce qu'Apple annonce c'est (entre autre) qu'on pourra écrire en Swift sur Linux pour développer des logiciels pour Linux (et d'autres).

Il y a une grosse différence entre quelques éditeurs qui sortent du Mac App Store et la volonté de développer pour OS X.
Ça serait sympa de ne pas tout mélanger.

avatar bonnepoire | 

Tu as l'air de sous-entendre que développer en Swift impose de devoir publier sur le Mac App Store, alors que ce qu'Apple annonce c'est (entre autre) qu'on pourra écrire en Swift sur Linux pour développer des logiciels pour Linux (et d'autres).
Justement. C'est pour ça que son intervention est inutile et creuse. Limite aberrante.

avatar MaamuT | 

Tu soulève LE point, Swift devrait être l'ouverture…

Ce sera la bonne réponse à bien des problèmes rencontrés par le dev Apple depuis un bon moment, et c'est une très bonne chose.

En temps que dev, j'en suis le premier ravis, mais, pourquoi continuer à dev sur la plate-forme Apple, puisqu'ils vont s'ouvrir aux autres ?

N'oublions pas que dans tout ça, les plus gros soucis relevés par les devs et concernant le monde du Mac, ne sont toujours pas au menu de la pomme.

Je suis mitigé, ravis d'avoir un bon outil à dispo, mais dégoûté de voir que le Mac est décidément loin des préoccupations d'Apple.

Oui Apple s'ouvre, et oui le Mac meure petit à petit et cette ouverture n'annonce rien quant à la direction prise par Apple…

Bref…

Pages

CONNEXION UTILISATEUR