Dix ans après qu’Oracle a poursuivi Google pour la première fois sur le code de la plate-forme Android, les deux géants de la technologie se confrontent enfin à la Cour suprême. Depuis lors, il y a eu trois procès et deux appels. Des milliards de dollars sont en jeu; plusieurs millions ont probablement été dépensés pour un défilé d’avocats chevronnés, de témoins experts et de pièces de procès étranges destinées à expliquer la programmation à des jurys non techniques. Tout cela pourrait s’achever de manière anticlimatique mercredi matin, avec une plaidoirie par téléconférence devant la Cour suprême au milieu d’une pandémie.
Lorsque Google a développé Android pour la première fois, il a décidé de rendre la plate-forme mobile compatible avec Java. À l’époque, les applications pour l’environnement iOS étaient écrites en Objective-C, un langage similaire à l’omniprésent C, mais autrement utilisé uniquement dans le contexte du développement d’applications iOS. Apple avait une longueur d’avance significative dans le mobile.
Google visait à rendre Android compétitif en rendant la plate-forme interopérable avec Java, un langage de programmation populaire doté d’une solide communauté de développeurs. Pour ce faire, la société a réimplémenté plusieurs API Java, y compris les 37 en cause dans le procès. Pour Oracle et Google, le procès consiste à savoir si Oracle – qui possède Java Standard Edition – a désormais droit à un morceau d’Android, à hauteur de milliards de dollars. Pour tous les autres, le procès consiste à savoir si la compatibilité linguistique équivaut à une violation du droit d’auteur.
Pour dire le moins, c’était un monde différent lorsque l’affaire a été déposée pour la première fois. Les deux sociétés ont changé de mains – le procès a commencé alors que Larry Ellison était toujours à la tête d’Oracle et Eric Schmidt était le PDG de Google. Google est désormais une filiale d’Alphabet. Android est en version 11. La seule chose qui semble être restée la même est le popularité de Java comme langage de programmation.
Mais loin de la Silicon Valley, il y a eu un changement radical qui englobe bien plus que 6 milliards de dollars et l’avenir de la loi sur le droit d’auteur. Trois sièges à la Cour suprême ont été libérés depuis la dernière fois que Google a demandé à la Haute Cour de réexaminer son affaire. En 2014, SCOTUS a nié certiorari, renvoyer l’affaire au 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écemment, la juge Ruth Bader Ginsburg.
La partie 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 aussi que Google contre Oracle est entendu par huit juges et est donc enclin à un tribunal partagé. (Dans l’affaire du droit d’auteur de logiciel de 1996 Lotus contre Borland, un tribunal de huit juges divisé également et n’a pas été en mesure de créer un précédent national).
Quand Google contre Oracle commencé en 2010, il impliquait sept brevets ainsi qu’une revendication de droit d’auteur; en 2012, l’affaire avait été réduite à seulement 37 API Java, composées d’environ 11 500 lignes de code. (Les différentes versions d’Android vont de 12 à 14 milliards de lignes de code). Les 11 500 lignes de code en cause ont été écrites dans une «salle blanche», un projet cloisonné loin du code existant qu’ils faisaient de la rétro-ingénierie. Cette prouesse d’ingénierie est devenue nécessaire lorsque les négociations entre Google et Sun Microsystems – propriétaire de la plate-forme Java – ont échoué. Oracle a acquis Sun au début de 2010; en août, il avait intenté une action contre Google.
Une interface de programmation d’application (API) dans ce contexte est un ensemble d’interactions bien définies dans la programmation logicielle. C’est un raccourci pour accéder rapidement aux services, bibliothèques et autres fonctions. Une API peut condenser du code couramment utilisé ou détaillé, permettant aux programmeurs de créer sans avoir à réinventer la roue.
Une API n’est pas exactement un dictionnaire, mais elle est suffisamment proche de celle qui Oracle contre Google pose un énorme problème. Techniquement, vous pouvez programmer en Java sans utiliser les 37 packages API Java concernés. Mais vous n’écririez probablement rien d’utile, car ces API incluent java.lang et java.util, des packages de base qui offrent des fonctions telles que faire des mathématiques ou représenter des dates et des heures. Je peux aussi techniquement écrire cet article sans métaphores ni comparaisons, mais ce n’est pas quelque chose que je voudrais faire, ou 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 identiques textuellement, mais plutôt que «la structure, la séquence et l’organisation» des API sont si similaires qu’elles enfreignent la loi sur les droits d’auteur. Cela signifie que les packages, les classes et les méthodes de ces API portent le même nom. Une ligne de code écrite pour s’exécuter dans Java Standard Edition ne fonctionnera pas nécessairement sur Android, mais elle se rapprochera beaucoup plus qu’elle ne l’aurait été autrement.
La toute première course au procès a abouti à un procès bifurqué en 2012 – un procès pour les revendications de brevet et un deuxième procès juste pour les revendications de droits d’auteur. Dans le procès des brevets, le jury a statué que Google n’avait violé aucun brevet. Dans le procès du droit d’auteur, deux points juridiques distincts étaient en cause: premièrement, si le code de déclaration et «la structure, la séquence et l’organisation» des API étaient protégés par le droit d’auteur; et deuxièmement, si l’utilisation de Google était une utilisation équitable. Le juge a statué sur la question du droit d’auteur et a renvoyé la question de l’utilisation équitable au jury.
Le jury s’est attaché à l’utilisation équitable. Mais le juge – qui par coïncidence écrit du code comme passe-temps – 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 de fonctionnement» et la façon dont les packages, les classes et les méthodes ont été nommés et triés était trop fonctionnelle pour être considérée comme digne du droit d’auteur.
C’est cette décision spécifique qui a été annulée par le Circuit fédéral en 2014. Parce que le premier jury s’était accroché à l’utilisation équitable, un tout nouveau jury a dû être convoqué pour un autre procès sur l’utilisation équitable 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 statué que le verdict du jury devait être annulé en faveur d’Oracle, car les preuves présentées au procès indiquaient clairement qu’il n’y avait pas d’équité la détermination de l’utilisation a pu être atteinte, et n’aurait donc pas dû aller devant un jury en premier lieu.
Annulation d’un verdict de jury est Big Judge Energy d’une manière qui ne manquera pas d’être controversée pour la Cour suprême, et il est probable que l’argumentation orale de mercredi comportera de nombreuses discussions sur le rôle du juge par rapport au jury dans une affaire de droit d’auteur. La question de savoir qui décide de l’utilisation équitable et quand est quelque chose qui peut être extrapolée à de nombreux cas juridiques différents (ce que SCOTUS adore) et n’a rien à voir avec les mathématiques (ce que SCOTUS n’aime pas).
Malheureusement, le vrai cœur de l’affaire réside dans la partie avec tous les calculs et autres. La décision de la Cour suprême dans Google contre Oracle pourrait avoir d’énormes ramifications pour l’industrie du logiciel, surtout parce que la Cour suprême peut réexaminer la question du droit d’auteur – la question de savoir si le code et la structure de déclaration, la séquence et l’organisation des API Java sont couverts par la loi sur le droit d’auteur – ce qui n’a pas du tout Je n’ai pas joué depuis 2014.
Ce match de rancune de dix ans entre Google et Oracle n’est pas entièrement rationnel. La réimplémentation par Google des API Java fait partie d’une longue tradition d’itération qui était généralement considérée comme acquise jusqu’à présent. Des produits comme MySQL d’Oracle ont été créés comme des itérations du SQL d’IBM.
Cela ne veut pas dire que le copier-coller est au cœur de la Silicon Valley. Mais il y a un moment où vous voulez encourager les choses à se ressembler, plutôt que d’être différentes par souci de différence. Pour dire les choses grossièrement: le codage est le processus consistant à parler à la machine. Mais très peu de personnes qui développent des logiciels à cette époque parlent directement à la machine. Le logiciel existe en couches sur couches itératives, un jeu de chuchotements qui atteint finalement le métal nu de l’ordinateur. Les nouvelles langues sont dérivées des anciennes; les nouvelles bibliothèques sont construites sur les bibliothèques existantes; les dépendances sont empilées les unes sur les autres comme un jeu de Jenga qui est sur le point de se terminer à tout moment. Et Google contre Oracle est un cas qui se produit à l’un des niveaux les plus bas d’un jeu en cours de Jenga.
Nous sommes sur le point de savoir si la Cour suprême le sait.