jeudi, septembre 16, 2010

Java : un air empli de douceur qui fait tourner les têtes (et chavirer les coeurs)


Larry Ellison lui devait bien ça, qui, en solide compagnon pratiquant de la gaudriole de conseil d'administration, était accouru à la défense de Mark Hurd, limogé pour ses frasques « inappropriées » lors de sa podestature chez HP : le voici depuis une semaine coprésident — rien que ça ! — d'Oracle. La raison chavire à calculer l'addition du « golden parachute » de l'un au « golden handshake » de l'autre : des privautés fort rentables. Safra Catz devrait se méfier...



HP, piqué au vif, poursuit dûment en justice. Mais cet étalage revendiqué des concupiscences peccamineuses de CEOs insatiables ne fait qu'évoquer les dérèglements de la télé-réalité. Cependant un peu en deçà des webcams de cette « Maison des secrets », Oracle semble bien avoir plus discrètement mis en marche une machine infernale visant cette fois-ci Google.



Le 12 août dernier, Oracle attaque Google en justice en Californie. En jeu : tout le développement d'Android par Google déclaré en violation de sept brevets et dans le non respect d'un copyright. Comme toujours, le contexte du dépôt de la plainte n'est évidemment pas neutre. Le Gartner Group vient de déclarer Android et Symbian les deux systèmes d'exploitation dominants de la téléphonie mobile dans sa dernière étude de marché. La part de marché d'Android serait passée de la dérisoire insignifiance (3,9% en 2009) à la seconde place (17,7% en 2010) derrière Symbian, dépassant brutalement RIM (Blackberry) en quelques mois et, surtout, Apple. C'est une véritable course à émarger à la longue liste des OEM Android (8.317 produits sur le seul site de recherche chinois Alibaba) qui s'engage ainsi chez tous les fabricants. Que voilà riche promesse de contrevenants solvables, se signalant de surcroît volontairement taillables et corvéables, aux yeux d'Oracle !



Ces brevets et ce copyright étaient bien sûr dans la dot de Sun Microsystems épousaillée en janvier dernier pour 7,38 milliards de dollars par l'ogre de Redwood City. Rappelons, pour ceux que l'agitation gesticulatoire sur les « investissements d'avenir pour la société numérique » viendraient de tirer inopinément d'un sommeil paradoxal de plus de quinze ans, que Sun avait créé Java mais n'avait guère eu de succès à en tirer de substantiels revenus au-delà des (confortables) ventes de licences en leur temps à IBM, Microsoft, Oracle (!), HP — pardon Florence mais qui se souvient encore de Chai ? — et à Netscape. (Sujet de perplexité récurrent des observateurs de l'industrie, depuis la création même du langage de programmation.)



Au début du siècle Sun avait obtenu des réparations de Microsoft dans un premier procès qui les avait opposés sur Java. En 2002, Sun, certainement mis en appétit, avait repassé le plat et attaqué à nouveau pour obtenir gain de cause en 2004 et un dédommagement de 1,6 milliards de dollars avec des accords de fidélité prononcés la main sur le coeur.



De même on pourrait penser a posteriori que le passage de Java en Open Source a été soigneusement planifié par Sun. En choisissant la licence GPL, Sun ne se serait-il pas assuré que les fabricants d'équipements et les constructeurs, qui utilisent, eux, une version embarquée de Java — notamment Java Micro Edition (Java ME) — auraient à négocier des termes et des conditions de licences spécifiques ?



Bien avant qu'Oracle ne dévore Sun, les négociations d'un contrat OEM Java avec Google pour le développement d'Android devaient donc certainement aller bon train. Du coup, le développement d'une machine virtuelle complètement neuve, Dalvik, par Google, expressément pour Android, serait-elle la conséquence de la rupture de ces négociations de l'époque que l'on peut supposer particulièrement houleuses ?



Quoiqu'il en soit, le développement d'applications Android se fait en Java, ou plutôt dans un langage dont la syntaxe est celle de Java puisque le résultat de la compilation n'est pas destiné à une exécution sur la machine virtuelle Java. Ces programmes sont ensuite compilés en bytecode Java qui est traduit en bytecode Dalvik et installé sur l'équipement Android pour être exécuté. De toute évidence, Google a pris un soin extrême à ré-implémenter de novo une machine virtuelle suffisamment différente — mais modérément compatible — de la machine virtuelle Java pour se sentir à l'abri de revendications éventuelles de Sun — celles-là même qu'Oracle vient de décider de faire valoir contre le moteur de recherches. Dalvik met en oeuvre les bibliothèques Open Source du projet Apache Harmony (qui est sous Apache Licence v2) et vise seulement (et prudemment dirons-nous à la lueur des faits récents) la compatibilité avec Java SE 5 JDK.



Inutile de dire que Sun n'a donc pas du apprécier Dalvik (mais alors, pas du tout !), lorsque fin 2007 Google annonçait Android et Open Handset Alliance, une fédération de constructeurs et d'équipementiers, OEM actifs du nouveau système d'exploitation. Ironiquement, tout ce positionnement de Google dans l'univers en explosion du mobile était mené de main de maître par Eric Schmidt qui fut, avant de prendre les rênes Google en 2001, CTO et Directeur général de Sun, plus particulièrement en charge du développement de... Java ! Extraordinaire Silicon Valley !



À moins de vaticiner dans une confondante et rafraîchissante naïveté, il est difficile de ne pas imaginer qu'ici aussi la considération de la valeur d'un éventuel procès contre le triomphant — et indécemment pécunieux — Google sur une base solide de brevets et de copyright anciens n'ait pas été prépondérante dans le road show de l'opération de cession de Sun ! Ce qu'un Sun à la trésorerie exsangue et au cours de bourse en chute libre en 2008 ne pouvait faire, un troll hargneux aux coffres pleins pourrait, relevant ce glaive, menacer de dynamiter toute l'industrie.



Si la justice donne raison à Oracle, toute utilisation de Java hors de la doctrine sera sujette à caution ou à examen juridique sourcilleux. Qu'en sera-t-il par exemple de la fratrie de plus en plus nombreuse (Scala, JRuby, Jython, Rhino, etc.) des langages de programmation exécutés sur la machine virtuelle Java ? Qu'en sera-t-il des remarquables projets d'ateliers de design de compilateurs comme LLVM de Chris Lattner chez Apple, si d'aventure une nappe de bytecode s'échappait dans une vaste zone de compatibilité avec Java ? Qu'en serait-il, plus près de chez nous, à l'Université Paris VI Pierre et Marie Curie, de la machine virtuelle virtuelle VMKit de Bertil Folliot qui peut, à la demande, personnifier ou la Java VM ou la CLR VM de Microsoft ? (Faudra-t-il la déchoir de la nationalité Java, d'autant plus que sa cylindrée surpuissante semble particulièrement suspecte ?)



James Gosling, l'inventeur de Java, trouve ce procès dérisoire. Quant à Paul Allen, le cofondateur de Microsoft, il attaque tout le monde pour faire bonne mesure (Google, Apple, AOL, eBay, Facebook, Netflix, Office Depot, Officemax, Staples, Yahoo! et YouTube, rien moins) : c'est Interval Research, le défunt think tank d'Allen et Liddle lancé en 1992, qui avait tout inventé !



ShareThis