Dix ans après le premier procès intenté par Oracle à Google au sujet du code de la plateforme Android, les deux géants de la tech s’affrontent enfin devant la Cour suprême. Depuis, il y a eu trois procès et deux appels. Des milliards de dollars sont en jeu ; de nombreux millions ont probablement été dépensés pour une parade de plaideurs chevronnés, de témoins experts et de pièces à conviction bizarres destinées à expliquer la programmation à des jurés non techniques. Tout cela pourrait connaître une fin décevante mercredi matin, avec une plaidoirie par téléconférence de la Cour suprême au milieu d’une pandémie.
Lorsque Google a développé Android, il a décidé de rendre la plate-forme mobile compatible avec Java. À l’époque, les applications destinées à l’environnement iOS étaient écrites en Objective-C, un langage similaire à l’omniprésent C, mais par ailleurs assez peu utilisé dans le contexte du développement d’applications iOS. Apple avait une avance significative dans le domaine du mobile.
Google avait pour objectif de rendre Android compétitif en rendant la plateforme interopérable avec Java, un langage de programmation populaire disposant d’une solide communauté de développeurs. Pour ce faire, la société a réimplémenté plusieurs API Java, dont les 37 qui sont en cause dans le procès. Pour Oracle et Google, l’enjeu du procès est de savoir si Oracle – qui possède Java Standard Edition – a désormais droit à une partie d’Android, à hauteur de milliards de dollars. Pour tous les autres, le procès consiste à savoir si la compatibilité des langages équivaut à une violation du droit d’auteur.
Pour le moins, le monde était différent lorsque l’affaire a été déposée pour la première fois. Les deux entreprises ont changé de mains – le procès a débuté alors que Larry Ellison était encore à la tête d’Oracle et qu’Eric Schmidt était le PDG de Google. Google est désormais une filiale d’Alphabet. Android en est à la version 11. La seule chose qui semble être restée la même est la popularité de Java en tant que langage de programmation.
Mais loin de la Silicon Valley, il y a eu un changement de mer qui englobe bien plus qu’un simple 6 milliards de dollars et l’avenir du droit d’auteur. Trois sièges de la Cour suprême ont été libérés depuis la dernière fois que Google a demandé à la haute cour d’examiner son cas. En 2014, la SCOTUS a refusé le certiorari, renvoyant l’affaire devant le tribunal de district de San Francisco pour un nouveau procès. Depuis lors, un juge a pris sa retraite et deux sont décédés – le plus récent étant la juge Ruth Bader Ginsburg.
La partie absolument la moins importante de l’héritage de Ginsburg est qu’elle était le vote le plus fiable dans les affaires de droit d’auteur, ayant tendance à voter en faveur des titulaires de droits. Sa perte signifie également que l’affaire Google contre Oracle est entendue par huit juges et qu’elle est donc susceptible d’être divisée. (Dans l’affaire de droits d’auteur sur les logiciels de 1996, Lotus v. Borland, un tribunal de huit juges s’est divisé à parts égales et n’a pas été en mesure de créer un précédent national).
Lorsque Google v. Oracle a commencé en 2010, il impliquait sept brevets ainsi qu’une revendication de droits d’auteur ; en 2012, l’affaire avait été réduite à seulement 37 API Java, constituées d’environ 11 500 lignes de code. (Les 11 500 lignes de code en question ont été écrites dans une « salle blanche », un projet isolé du code existant qu’ils désossaient. Cette prouesse d’ingénierie s’est avérée nécessaire lorsque les négociations entre Google et Sun Microsystems, propriétaire de la plateforme Java, ont échoué. Oracle a racheté Sun au début de l’année 2010 ; en août, elle avait porté plainte contre Google.
Dans ce contexte, une interface de programmation d’applications (API) est un ensemble d’interactions bien définies dans la programmation de logiciels. C’est un raccourci pour accéder rapidement à des services, des bibliothèques et d’autres fonctions. Une API peut condenser du code couramment utilisé ou verbeux, permettant aux programmeurs de construire sans avoir à réinventer la roue.
Une API n’est pas exactement un dictionnaire, mais elle en est suffisamment proche pour que Oracle contre Google pose un énorme problème. Techniquement, vous pouvez programmer en Java sans utiliser les 37 paquets d’API Java en cause. Mais vous n’écririez probablement rien d’utile, puisque ces API comprennent java.lang et java.util, des paquets de base qui offrent des fonctions comme les mathématiques ou la représentation des dates et des heures. Je peux aussi techniquement écrire cet article sans métaphores ni simulations, mais ce n’est pas quelque chose que je voudrais faire, ni que quiconque voudrait lire.
Pour être clair, les 37 API Java ont été réimplémentées dans une salle blanche. Oracle n’affirme pas qu’elles sont textuellement les mêmes, mais plutôt que la « structure, la séquence et l’organisation » des API sont si similaires qu’elles violent la loi sur le copyright. Cela signifie que les paquets, les classes et les méthodes de ces API portent le même nom. Une ligne de code écrite pour s’exécuter en Java Standard Edition ne s’exécutera pas nécessairement sur Android, mais elle s’en rapprochera beaucoup plus qu’elle ne l’aurait fait autrement.
La toute première manche du procès a donné lieu à un procès bifurqué en 2012 – un procès pour les revendications de brevet, et un second procès uniquement pour les revendications de droit d’auteur. Dans le procès sur les brevets, le jury a jugé que Google n’avait violé aucun brevet. Dans le procès sur le droit d’auteur, deux points juridiques distincts étaient en jeu : premièrement, la question de savoir si le code de déclaration et « la structure, la séquence et l’organisation » des API étaient protégeables par le droit d’auteur ; et deuxièmement, la question de savoir si l’utilisation par Google était un usage loyal. Le juge a statué sur la question du droit d’auteur, et a renvoyé la question de l’usage loyal à l’appréciation du jury.
Le jury s’est accroché sur l’usage loyal. Mais le juge – qui, par coïncidence, écrivait du code comme un hobby – a décidé que le code de déclaration et le SSO des API n’étaient pas couverts par le droit d’auteur après tout. La loi sur le droit d’auteur ne s’applique à aucune « idée, procédure, processus, système, méthode d’exploitation », et la façon dont les paquets, les classes et les méthodes étaient nommés et triés était trop fonctionnelle pour être jugée digne du droit d’auteur.
C’est ce jugement spécifique qui a été annulé par le circuit fédéral en 2014. Parce que le premier jury s’était accroché sur l’usage loyal, un tout nouveau jury a dû être convoqué pour un énième procès sur l’usage loyal en 2016. Le jury s’est rangé du côté de Google.
Mais en 2018, le Circuit fédéral – la même cour d’appel qui, en 2014, avait renvoyé l’affaire au jury – a jugé que le verdict du jury devait être annulé en faveur d’Oracle, car les preuves présentées au procès indiquaient clairement qu’aucune détermination de l’usage loyal ne pouvait être obtenue, et qu’il n’aurait donc pas dû être soumis à un jury en premier lieu.
L’annulation d’un verdict de jury est Big Judge Energy d’une manière qui ne manquera pas de susciter la controverse à la Cour suprême, et il est probable que la plaidoirie de mercredi comportera une bonne part de discussion sur le rôle du juge par rapport au jury dans une affaire de droit d’auteur. La question de savoir qui peut décider de l’utilisation équitable, et quand, est quelque chose qui peut être extrapolé à beaucoup de cas juridiques différents (ce que la SCOTUS aime) et qui n’a également rien à voir avec les mathématiques (ce que la SCOTUS n’aime pas).
Malheureusement, le véritable cœur de l’affaire se trouve dans la partie avec toutes les mathématiques et autres. La décision de la Cour suprême dans l’affaire Google contre Oracle pourrait avoir d’énormes ramifications pour l’industrie du logiciel, surtout parce que la Cour suprême pourrait réexaminer la question du droit d’auteur – la question de savoir si le code déclaratif et la structure, la séquence et l’organisation des API Java sont couverts par la loi sur le droit d’auteur du tout – qui n’a pas été en jeu depuis 2014.
Ce match de rancune de dix ans entre Google et Oracle n’est pas entièrement rationnel. La réimplémentation des API Java par Google s’inscrit dans une longue tradition d’itération qui était le plus souvent considérée comme acquise jusqu’à présent. Des produits comme MySQL, propre à Oracle, ont été créés comme des itérations de SQL d’IBM.
Ce n’est pas pour dire que le copier-coller est le cœur de la Silicon Valley. Mais il y a un moment où vous voulez encourager les choses à se ressembler, plutôt qu’à être différentes pour le plaisir de la différence. Pour résumer, le codage est le processus qui consiste à parler à la machine. Mais très peu de personnes qui développent des logiciels à notre époque parlent directement à la machine. Les logiciels existent par couches itératives, un jeu de chuchotements qui finit par atteindre le métal nu de l’ordinateur. De nouveaux langages sont dérivés des anciens, de nouvelles bibliothèques sont construites à partir de celles qui existent déjà, les dépendances sont empilées les unes sur les autres comme un jeu de Jenga qui risque de se terminer à tout moment. Et Google contre Oracle est une affaire qui se déroule à l’un des niveaux les plus bas d’une partie de Jenga en cours.
Nous sommes sur le point de savoir si la Cour suprême le sait.
Correction : Une version précédente de l’article indiquait à tort que la base de code d’Android comptait des milliards de lignes de code. Elle se compte en millions. Nous regrettons cette erreur.