Google considérerait Swift comme un langage « de première classe » pour Android
L'OS mobile de Google pourrait-il basculer de Java à Swift ?

Le , par Michael Guilloux, Chroniqueur Actualités
Quelle est la meilleure alternative aux API Java d’Oracle pour Android ?
Un média US rapporte que selon ses sources, Google serait en train d’étudier la possibilité d’un système Android avec Swift, le langage de programmation multiparadigme d’Apple, comme un langage de « première classe ». Cela veut-il dire que Google envisagerait la possibilité de faire basculer Android de Java vers Swift ?

Pourquoi cela serait-il possible ? Cela fait maintenant six ans que Google est trainé devant les tribunaux par Oracle qui exige que le géant de Mountain View lui reverse des sommes énormes pour violation de droits d’auteur relatifs à des API Java. Ayant utilisé des éléments de base de Java dans son système d’exploitation mobile, Google est accusé par Oracle d’avoir copié dans Android « la structure, la séquence et l’organisation » de 37 API Java, sans autorisation. Les deux parties devront encore comparaître le mois prochain devant les tribunaux.

Pendant ce temps, Google a déjà commencé à explorer d’autres pistes pour ne plus être confronté à ce genre de situations à l’avenir. Pour les prochaines versions d’Android, le géant de la recherche en ligne a décidé de remplacer son implémentation des API Java par OpenJDK, la version open source du JDK d’Oracle. « Dans notre version d’Android à venir, nous avons prévu de retirer les bibliothèques du langage Java d’Android pour nous orienter vers une approche basée sur OpenJDK », a rapporté un porte-parole de la société en décembre dernier.

Si Google a donc décidé d’abandonner les API Java d’Oracle, pourquoi ne pas alors profiter pour se tourner vers Swift ? Dévoilé en juin 2014 au WWDC, le salon annuel d’Apple dédié aux développeurs sur Mac et iOS, Swift a rapidement gagné en popularité tendant à faire oublier Objective-C. De nombreux développeurs reconnaissent à Swift de rendre plus facile de construire des logiciels qui sont rapides et sûrs par conception. La montée en puissance du langage multiparadigme d’Apple est également observée au niveau des différents indices de popularité des langages de programmation (TIOBE, PYPL, RedMonk), alors qu’un analyste de RedMonk témoigne que « la croissance que Swift a connue est essentiellement sans précédent dans l’histoire de ces classements ». Également open source depuis décembre dernier, Swift semble encore avoir de très beaux jours devant lui, avec une communauté déjà dévouée.

Si Google officialise ses plans, il ne faudrait toutefois pas s’attendre à ce que la mise en œuvre soit effective de sitôt. Cela nécessiterait en effet une refonte complète de la plateforme Android, qui ne pourrait être implémentée que dans un moyen ou long terme. Il faudrait par exemple un runtime pour exécuter Swift sur Android, mais Google devrait également refaire entièrement sa bibliothèque standard pour supporter le langage de programmation d’Apple. Certaines API de bas niveau écrites en C++ ainsi que des API de haut niveau écrites en Java devraient être réécrites.

Cependant, faire de Swift le langage de base d’Android n’est pas une mission impossible. À la fin de l’année dernière, bien avant que Swift devienne open source, un développeur du nom de Romain Goyet est parvenu à faire fonctionner du code Swift sur Android en utilisant le kit de développement natif Android NDK. C’est donc une preuve que Google peut envisager une expérience au-delà de Java pour son système d’exploitation mobile open source.

Cette information ressort d’une réunion de discussion à Londres entre Google, Facebook et Uber à propos du nouveau langage d’Apple. Les deux autres entreprises, Facebook et Uber, envisageraient également de placer Swift plus au centre de leurs opérations.

Toujours dans la recherche d’un langage de première classe pour Android, Kotlin serait également ressorti dans les discussions internes chez Google. Kotlin est considéré comme un langage qui peut fonctionner partout où Java fonctionne. Il pourrait donc demander beaucoup moins de travail pour obtenir un langage autre que Java qui soit opérationnel pour Android. Comme Swift, Kotlin est orienté objet avec un accent sur la sécurité. En plus, il fonctionne avec Android studio, l’IDE officiel de Google pour le développement Android. Ce qui n’est pas le cas de Swift actuellement. Le problème, d’après les sources, est que Google estime que Kotlin est un peu trop lent lors de la compilation. La transition pourrait également être pénible pour les développeurs par rapport à Swift.

Source

Et vous ?

Que pensez-vous d’adopter Swift comme langage de base pour Android ? Qu’en est-il de Kotlin ?
Pensez-vous qu’il s’agisse d’une meilleure alternative que l’approche basée sur l’OpenJDK ?

Voir aussi :

Un développeur parvient à faire fonctionner du code Swift sur Android, en attendant la sortie de Swift sous licence open source

Bientôt le portage de Swift sur Android ? Un contributeur présente « le premier exemple d'une compilation croisée à l'extérieur de Darwin »


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 11/04/2016 à 11:28
Et pourquoi pas C# ?, avec l'ouverture de Microsoft vers l'open source ça pourrait être une bonne alternative, surtout que c'est un langage très proche du Java, donc les développeurs Java pourront plus vite s'y habituer.
Avatar de bilgetz bilgetz - Membre actif https://www.developpez.com
le 11/04/2016 à 12:01
Android y gagnerai énormément en choisissant Swift.
ça permettrai de faire du développement multi plateforme beaucoup plus facilement (même core, module spécifique a l'os).

Citation Envoyé par youtpout978 Voir le message
Et pourquoi pas C# ?, avec l'ouverture de Microsoft vers l'open source ça pourrait être une bonne alternative, surtout que c'est un langage très proche du Java, donc les développeurs Java pourront plus vite s'y habituer.
Ce point est vrai, mais android y gagnerai beaucoup moins.
Par contre Windows mobile y gagnerai énormément.

Je pense que ça va se jouer à coup de gros sous en Oracle qui fera peut être machine arrière en voyant ce qu'il perde, Apple et Micro$oft.
Avatar de archqt archqt - Membre habitué https://www.developpez.com
le 11/04/2016 à 12:10
Ils auraient du faire comme BlackBerry, interface compatible Qt. Et description en QML. Cela aurait évité un procès, permis de faire du cross-plateforme. Free s'y est mis pour programmer la freebox. Après un "binding" vers un autre langage aurait été possible aussi.
Avatar de Greg-dev Greg-dev - Membre régulier https://www.developpez.com
le 11/04/2016 à 13:38
Je ne vois pas l'intérêt, dans ce cas autant que Google arrête les smartphones et laisse le marché à Apple...

A la place de Google je resterai en Java ou alors je passerai en JS avec un NodeOS pour smartphone histoire de déchirer les perfs !
Avatar de marc.collin marc.collin - Membre éclairé https://www.developpez.com
le 11/04/2016 à 14:03
Ils vont passer à openjdk, il y a déjà un bon travail à faire de leur part et il pourrait ensuite passer à swift. Un autre changement.

L'écosystème de Java est de très loin supérieur à swift, ne serait qu'en outils de dev, framework, librairie et nombre de développeur.
Passer à swift c'est faire table rase de tout ça. Alors que passer à openjdk règle le problème à Oracle.

Je doute fort qu'oracle est la somme demandé pour 37 api qui ne sont pas primordiale, le passage à openjdk semble s'est fait rapidement.

Ne pas oublier que si Oracle gagnerait, c'est tout le domaine logiciel américain qui en souffrirait au niveau de l'interopérabilité
Avatar de Mouke Mouke - Membre averti https://www.developpez.com
le 11/04/2016 à 14:11
Je suis pas convaincu de cette idée. Java possède l'atout d'avoir un écosystème ultra complet, d'être maitrisé et connu par ses utilisateurs. C'est un langage propre, qui impose la rigueur.

Swift est un langage encore mal connu, trop jeune, sans un écosystème réel et sans intérêt autre que iOs d'un point de vue professionnel.
La force d'Android, c'était qu'en utilisant Java, on pouvait très facilement apprendre les bases du dev' Android vu que Java est un langage déjà répandu, aussi bien en milieu scolaire que professionnel.

Quant à l'idée de proposer Js : Non. Déjà parce que niveau perfs y'a déjà des solutions C++ en Android, donc les perfs d'un pauvre langage de script hein. Ensuite Js ça reste un langage bricolé avec plein de défauts graves qui seraient une régression par rapport à Java : Js est mal documenté, Js est confus, Js est mal maitrisé, Js est pas facile à débugger, j'en passe les meilleures.

Donc personnellement je pense que rester sur une base Java/C++ c'est la meilleure option : Java pour les applications "classiques" avec toute sa force (rigueur, gestion de dépendances, puissance, écosystème, simplicité, performances par rapport à un langage de script), C++ quand l'application a besoin de grosses performances et d'optimisation (comme un jeu, par exemple), quand Java ne suffit plus.
Avatar de GilbertLatranche GilbertLatranche - Membre averti https://www.developpez.com
le 11/04/2016 à 15:41
Citation Envoyé par Mouke Voir le message
Quant à l'idée de proposer Js : Non. Déjà parce que niveau perfs y'a déjà des solutions C++ en Android, donc les perfs d'un pauvre langage de script hein. Ensuite Js ça reste un langage bricolé avec plein de défauts graves qui seraient une régression par rapport à Java : Js est mal documenté, Js est confus, Js est mal maitrisé, Js est pas facile à débugger, j'en passe les meilleures.
+1.

Les délires de la commu Javascript, ça va bien 2 minutes.
Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 11/04/2016 à 18:46
Le but est de mettre la pression sur Oracle pour montrer qu'il perdrait plus que Google en perdant Androïd car Java, à part sur Androïd est en perte de vitesse.

Mais non, Google ne passera pas sur Swift, il faudrait réécrire toutes les applications (outre le fait de réécrire tous le coeur Androïd)... c'est trop de travail. Par contre oui, Google passera sur OpenJDK ou C++ pour se libérer totalement d'Oracle. Le problème fondamental est que les "brevets" que revendique Oracle n'en sont pas vraiment ce sont des "idées" alors il y aura toujours une faiblesse. Et Google serait donc bien tenté de changer de langage mais il ne le peux pas.
Avatar de TiranusKBX TiranusKBX - Expert confirmé https://www.developpez.com
le 12/04/2016 à 8:07
Citation Envoyé par Mouke Voir le message
Quant à l'idée de proposer Js : Non. Déjà parce que niveau perfs y'a déjà des solutions C++ en Android, donc les perfs d'un pauvre langage de script hein. Ensuite Js ça reste un langage bricolé avec plein de défauts graves qui seraient une régression par rapport à Java : Js est mal documenté, Js est confus, Js est mal maitrisé, Js est pas facile à débugger, j'en passe les meilleures.
c'est vôtre avis très bien mais le seul fait réel que vous citez est "Js est pas facile à débugger", le reste c'est de l'ordre de la querelle de cloché (plus on tape plus ça rentre ?)
Il est certain que C++ écrase tout mais de la à dire que Java est plus rapide que Node.js c'est soit nier les fait soit du fanatisme, à non c'est du même ordre

Quand au changement de langage d'Android je m'en fiche un peut, quand je doit sortir quelque chose dessus c'est une app Cordova de m**de
Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 12/04/2016 à 8:41
Citation Envoyé par TiranusKBX Voir le message
c'est vôtre avis très bien mais le seul fait réel que vous citez est "Js est pas facile à débugger", le reste c'est de l'ordre de la querelle de cloché (plus on tape plus ça rentre ?)
Il est certain que C++ écrase tout mais de la à dire que Java est plus rapide que Node.js c'est soit nier les fait soit du fanatisme, à non c'est du même ordre

Quand au changement de langage d'Android je m'en fiche un peut, quand je doit sortir quelque chose dessus c'est une app Cordova de m**de
Là tu compares Node.Js à J2EE, j'ai des doutes sur le faite qu'une app desktop/mobile en Node.Js soit plus performante en général qu'une app en Java.
Contacter le responsable de la rubrique Accueil