Conférence Programmez ! DevCon #1 « Après-midi Windows 10 IoT »

Venez découvrir Windows 10 IoT, un Windows dédié aux objets connectés et au Raspberry Pi. Vous saurez tout sur l’architecture, le développement, le déploiement d’une app pour IoT et découvrir le back-end IoT ! Plus d'informations.

Google adopte OpenJDK pour Android N

Par:
fredericmazue

lun, 04/01/2016 - 15:19

Contrairement aux précédentes versions d'Android, Android N ne s'appuiera pas sur Java. Chat échaudé craint l'eau comme on dit.

En 2009, Oracle a racheté Sun Microsystems pour dès 2010, porter plainte contre Google pour un usage illégal des APIs Java.

S'en est suivi un procès interminable, dont les rebondissements ont défrayé la chronique. En 2012, la justice a donné raison à Google, mais en 2014 une cour fédérale a modifié partiellement cette décision. En 2015 la cour suprême n'a pas voulu rendre de jugement et renvoyé l'affaire vers une cour inférieure. Entre temps Oracle a modifié son accusation.... Bref plus personne ne s'y retrouve.

A l'évidence Google ne veut plus revivre ça, ni prendre le risque de payer une amende ou des royalties astronomiques. Au départ, Oracle réclamait 6 milliards de dollars de dommages et intérêts...

Google a donc pris la décision de ne plus s'appuyer sur Java, mais sur OpenJDK, la version libre, pour la prochaine mouture de son système d'exploitation Android. Mountain View l'a expliqué ainsi à Venture Beat :

Pour la prochaine version d’Android, nous prévoyons de remplacer l'utilisation de la librairie Java par une approche basée sur OpenJDK, afin de créer un socle commun pour les développeurs qui veulent créer des applications et de services. Google contribue depuis longtemps à la communauté OpenJDK, et nous sommes impatients d'aller de l'avant en faisant plus de contributions à OpenJDK dans le futur.

Commentaires

Personnellement, je pense qu’il y a longtemps que Java est dépassée par la technologie .NET.

Microsoft a bien réagi en mettant une grande partie de .NET en Open source et en proposant des versions pour Linux et OSX. Mais face à Java ils sont grandement aidés par ORACLE qui semble faire n’importe quoi avec cette technologie. ORACLE est simplement en train de tuer la poule aux œufs d’or. Si même Android ne s’appuie plus directement sur Java, ou va-t-on ?

Pour avoir utilisé les deux  (Java et .Net), je ne vois pas en quoi .Net dépasse Java. Je pense d'ailleurs le contraire. La communauté Java est toujours très active et en avant-garde de bien de nouveaux concepts qui seront intégrés plus tard dans .Net.

Toutefois, je suis d'accord que le leadership de Oracle sur la plateforme Java est lamentable, tout simplement. Ca ferait pleurer tout passioné du libre...

Java dépassé par .Net ??? Des versions de .Net pour Linux ??? Mais c'est tout l'inverse : Java fonctionne sur toute plate-forme (Linux, Windows, mais aussi tout appareil ménager : frigo, robot ménager, volets roulants, machines à café, etc.) depuis sa création. C'était même sa raison d'être. Alors que Microsoft fonctionne péniblement sur Linux depuis peu. Microsoft n'a strictement rien compris à ce que compatibilité multi-plateforme voulait dire... En revanche, je suis bien d'accord que Oracle conduit une politique suicidaire vis-à-vis de Java. L'échappatoire reste, une fois de plus le monde libre. 

Pour déveloper en C# et Java depuis des années, je suis bien obligé d'admettre que aujourd'hui le langage C# est loin devant Java. Même si Microsoft est parti avec un handicap de 10 ans entre la sortie de Java 1.0 et .NET 1.0, ils ont largement rattrapé le coup depuis l'âge d'or de Java 1.4.

La sortie coup sur coup de .NET 3.0 et .NET 3.5, challengers sérieux de Java 6, ont apporté les plus importantes features du langage java au monde .NET, tout en introduisant des nouveautés décisives. Depuis java n'est plus le langage intouchable qu'il pouvait être avant. Malgré les efforts des versions 7 et 8 pour ne pas se laisser distancer, le langage C# possède un autre rythme et d'autres moyens. Les nouveautés Java sont absorbées par .NET en moins de 2 ans alors que des fonctionnalités majeures de .NET sont toujours des exclusivités Microsoft après 10 ans : delegate, Linq, yield return, WPF. D'autres comme les lambdas ou les Optional<> apparaissent enfin dans le monde java, mais Microsoft a déjà sorti 3 nouveautés pour chaque feature enfin portée. L'effort semble dérisoire ...

Les atouts de java sur .NET se sont réduits à peau de chagrin, et même son argument numéro 1 -- sa légendaire interopérabilité -- est désormais attaqué par la nouvelle politique de Microsoft consistant à ouvrir le framework à l'ensemble des systèmes d'exploitation. Ce n'est pas encore fait, bien sûr, mais un réussite semble crédible de la part d'un éditeur qui a réussi à imposer son rythme. Car .NET prend sérieusement l'initiative depuis le Framework 4.0, et on se demande si java proposera un jour des paramètres nommés pour faciliter la relecture du code, un pattern async/await pour des développements asynchrones faciles, ou encore le très demandé opérateur de propagation de null avec lequel programmer devient un vrai plaisir, et qui est susceptible de ranger les NullReferenceExceptions au placard comme java l'avait fait, via son code managé, avec le segfault il y a 20 ans.

Bref, rien ne sert de partir à point, il faut courrir.