Ouvrir le menu principal

MacGeneration

Recherche

Pour Craig Federighi, Swift peut remplacer le langage C à terme

Nicolas Furno

Tuesday 15 December 2015 à 20:00 • 60

AAPL

Dans sa tournée médiatique effectuée à l’occasion de l’ouverture de Swift, Craig Federighi est passé chez John Gruber. Le célèbre blogueur tient aussi un podcast hebdomadaire, simplement nommé The Talk Show, et c’est à l’occasion de l’épisode 139 que le senior vice-président en charge du software chez Apple a répondu à ses questions. Une trentaine de minutes d’entretien, avec quelques considérations générales, mais aussi des points plus techniques.

Craig Federighi, lors d’un keynote de WWDC
Craig Federighi, lors d’un keynote de WWDC

Craig Federighi est revenu au cours de cette interview sur la naissance du langage chez Apple. On sait que le projet était à la base l’œuvre d’un seul homme, Chris Lattner, avant d’être adopté par l’entreprise et développé pour devenir le langage de programmation qu’il est aujourd’hui. L’histoire complète de ce développement est disponible sur GitHub, mais le SVP indique que le désir de le rendre open-source a toujours été présent chez Apple.

Il y a bien eu des débats en interne, mais plutôt pour choisir la date de l’ouverture, pas pour savoir si Swift allait être un langage propriétaire ou non. Craig Federighi peut très bien arranger la réalité sur ce point, mais il fait remarquer qu’il y avait déjà plusieurs projets open-sources menés par Apple, de WebKit (moteur d’affichage de Safari) à Clang et LLVM (compilateur de code). Par ailleurs, il n’y avait aucun inconvénient majeur à ouvrir le code source du langage : Swift sera utilisé sur des produits qui ne sont pas vendus par Apple, c’est aussi tout l’intérêt. Et peut-être même qu’il y aura des projets qui mèneront Swift loin des intérêts d’Apple, mais ça n’est pas gênant.

Il rappelle par ailleurs tous les avantages liés à cette ouverture. Ils ont déjà été évoqués à plusieurs reprises, mais Craig Federighi insiste sur deux d’entre eux : l’utilisation possible dans les serveurs et l’éducation. Pour le premier point, l’inspiration est venue d’IBM qui a adopté Swift pour ses applications mobiles et qui a très vite demandé une solution pour utiliser ce code sur les serveurs. Mais en interne aussi, les équipes en charge d’iCloud ont cherché à exploiter le langage pas seulement dans iOS et OS X, mais aussi sur les serveurs. Qui, comme partout ailleurs, tournent sous Linux chez Apple.

IBM propose déjà une fonction similaire au « Playground » de Xcode, mais dans un navigateur. Un projet impossible sans l’ouverture de Swift à Linux.
IBM propose déjà une fonction similaire au « Playground » de Xcode, mais dans un navigateur. Un projet impossible sans l’ouverture de Swift à Linux.

Avoir le même langage dans son application mobile et sur le serveur, composant souvent essentiel d’une app aujourd’hui, est un avantage indéniable. Le patron du logiciel chez Apple évoque l’obligation, jusque-là, de maîtriser deux langages totalement différents (Objective-C et Java, par exemple) pour couvrir tous les besoins. En apprenant uniquement Swift, un développeur devrait désormais pouvoir s’en sortir partout, du client à l’arrière-boutique sur le serveur.

Cette aptitude à servir à des fins très différentes est un autre élément clé pour comprendre Swift. Dès le départ, Apple a donné un objectif extrêmement ambitieux : proposer un langage capable de développer le noyau d’un système d’exploitation, une application ou même un script. Swift n’y est pas encore, mais l’interview permet de comprendre en quoi cela devrait être possible. La réponse de Craig Federighi est assez technique, mais on peut la résumer ainsi : la syntaxe est suffisamment simple pour être utilisée pour un script, mais ses bases sont suffisamment solides pour offrir la même performance qu’un langage de bas niveau, comme C.

D’ailleurs, Apple espère à terme remplacer totalement C ou C++ et n’utiliser que du Swift. Le blogueur et son invité rappellent que ce n’est pas possible avec Objective-C : pour les fonctions les plus gourmandes, il est souvent nécessaire de repasser à C ou C++ si l’on veut bénéficier des meilleures performances. La différence est que le nouveau langage d’Apple est moins dynamique que son prédécesseur et tout se fait, pour Swift, au moment de compiler le code source, pas quand l’application tourne. Ce côté statique permet d’optimiser au mieux le code final et de gagner en performances, mais aussi en stabilité.

John Gruber a interrogé son interlocuteur sur l’adoption de Swift en interne, et la réponse de Craig Federighi n’évacue pas les résistances qu'il y a. Certains développeurs conservent leur attachement à l’Objective-C, quand d’autres s’y intéressent de plus en plus. Et puis même ceux qui veulent faire du Swift ne le peuvent pas toujours : la compatibilité avec les applications 32 bits, toujours assurée dans OS X, oblige des pans entiers à rester en Objective-C, puisque Swift n’est prévu que pour du 64 bits. En passant, c’est peut-être une manière d’annoncer l’arrêt du 32 bits sur Mac… pour OS X 10.12 ?

Quand c’est possible, Apple développe en Swift plutôt qu’en Objective-C. Outre l’équipe d’iCloud, une partie d’OS X El Capitan a été écrite en Swift, en l’occurence toutes les nouvelles fonctions liées à la gestion des fenêtres, comme Split View. Les développeurs ont commencé par coder uniquement ces fonctions en Swift et ils ont ensuite entrepris un gros chantier pour convertir tout le code Objective-C.

C’est la force de Swift, rappelée au cours de l’interview : on peut l’utiliser en même temps qu’Objective-C. Ce qui permet à de gros projets de se mettre au nouveau langage, tout en continuant à accéder et modifier le reste du projet, resté avec l’ancien langage de programmation. Craig Federighi glisse même que certaines équipes n’utilisent Swift que pour des tests unitaires, ce qui montre bien qu’on est encore loin d’un passage complet à la nouveauté, mais plutôt à un déploiement très progressif.

Au-delà de ses propres besoins, Apple espère que Swift deviendra le langage de référence pour l’éducation. C’est un point que le SVP avait déjà soulevé lors des premières interviews données à la presse et il insiste à nouveau sur ce sujet avec John Gruber. Il y a déjà de nombreux cours basés sur Swift, mais ce sont des cours spécialisés pour apprendre à développer des applications mobiles. Ce qu’espère le constructeur, c’est que Swift pourra devenir un langage de référence pour apprendre à coder tout court. Et pour cela, il doit être open-source : voilà un argument de plus, glissé par Craig Federighi.

Le Playground de Xcode, une interface parfaite pour apprendre le Swift. Depuis le début, Apple a beaucoup insisté sur l’aspect pédagogique de son langage.
Le Playground de Xcode, une interface parfaite pour apprendre le Swift. Depuis le début, Apple a beaucoup insisté sur l’aspect pédagogique de son langage.

Si les questions les plus techniques, sur les différences entre Objective-C et Swift notamment, vous intéressent, l’interview est disponible intégralement en audio ou en texte.

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner