Peu après la présentation « succincte » de Mac OS X Lion, Apple faisait discrètement savoir qu’elle allait cesser de proposer sa propre implémentation de Java avec son système d’exploitation. L’affaire a fait grand bruit jusqu’à ce qu’Apple et Oracle annoncent qu’elles allaient travailler conjointement au portage d’OpenJDK pour Mac OS X (lire : Java : un accord entre Apple et Oracle).
D’autre part, Apple s’engage à fournir Java SE 6 avec Snow Leopard et Lion. Par contre, les prochaines versions à commencer par Java SE 7 seront disponibles auprès d’Oracle. Pour Bertrand Serlet, senior vice president of Software Engineering d’Apple, c’est une bonne nouvelle pour les utilisateurs Mac : « Nous sommes ravis de travailler avec Oracle pour que nos utilisateurs continuent de bénéficier d'une version Java très performante sur Mac ».
Cet accord est-il une bonne chose pour l’utilisateur Mac ? Va-t-on vers une meilleure prise en charge de Java sur Mac OS X ? Comme l’indiquait Steve Jobs à un utilisateur mécontent, Java sur Mac a presque toujours un train de retard (lire : Steve Jobs répond sur Java et Mac OS X). De plus, en matière de sécurité, Apple n’a pas toujours été irréprochable (lire : Java sur Mac se traîne des failles depuis six mois).
Afin de faire le point, nous avons demandé à Emmanuel Puybaret et Henri Gomez, deux spécialistes de Java sur Mac ce qu’ils pensaient des récentes annonces d’Apple et d’Oracle.
Emmanuel Puybaret est développeur et formateur Java, il a écrit plusieurs ouvrages spécialisés (notamment Les Cahiers du programmeur : Java 1) et est l’auteur de Sweet Home 3D, un logiciel libre d'aménagement d'intérieur lequel est écrit en Java (lire : Sweet Home 3D passe la troisième).
De son côté, Henri Gomez est un développeur Java de longue date impliqué dans bon nombre de projets open source. Il tient un blog sur lequel il partage ses découvertes sur (entre autres) tout ce qui touche à OpenJDK.
Quelle est votre lecture de l'annonce faite conjointement par Apple et Oracle ?
- Emmanuel Puybaret : C'est une très bonne nouvelle. Non seulement, on est assuré d'avoir Java SE 6 dans Mac OS X Lion ce qui permettra à tous les programmes Java existants de continuer à fonctionner, mais en plus Java SE 7 sera disponible librement sous Mac OS X via OpenJDK. Par ailleurs, Apple va contribuer activement avec Oracle à cette version libre, gage d'une intégration correcte de Java dans Mac OS X.
- Henri Gomez : Ma lecture est qu'Apple se concentre sur ses technologies propres, XCode, ObjectiveC, Cocoa, OS X et iOS. Le projet OpenJDK était une excellente opportunité pour Apple de se dégager de la maintenance Java tout en reversant dans un projet GPL (c'est important), ses adaptations pour OS X et Cocoa.
J'imagine que les équipes d'Apple font contribuer le code OS X et qu'ensuite il est probable qu'ils le laissent vivre et évoluer par le soutien de la communauté.
Le rachat de Sun par Oracle concrètement a-t-il changé beaucoup de choses concernant Java ? Le fait que Larry Ellison et Steve Jobs s'entendent bien a-t-il pu faire évoluer les choses selon vous ?
- Emmanuel Puybaret : Peut-être, mais alors l'amitié et le business ne doivent pas faire si bon ménage dans leur cas, car annoncer l'abandon de Java sans donner aucune suite pendant 3 semaines, j'appelle ça un coup de couteau dans le dos plutôt qu'une preuve d'amitié, non ?
Bien que l'annonce du rachat de Sun date d'il y a 18 mois, l'intégration de Sun ne s'est effectuée dans les faits que récemment et Oracle commence à dévoiler petit à petit sa stratégie : annonce de Java SE 7 pour la mi 2011 qui ne comportera finalement que les nouvelles fonctionnalités déjà développées (le fameux plan B), IBM et Apple qui rejoignent OpenJDK, procès contre Google... Qu'on apprécie ou non certaines décisions, on sent que Java commence à revivre enfin après une longue période de léthargie.
- Henri Gomez : Sujet délicat. Le rachat de Sun par Oracle va énormément changer l'écosystème Java et cela a déjà commencé. Ce que Sun n'a pas su faire, autrement dit monétiser Java, Oracle saura le faire.
Par contre, on assiste à énormément de départs en masse de pointures Java, des profils très techniques et pointus. Cela peut être inquiétant pour le futur, même si souvent ils rejoignent des structures plus petites qui oeuvrent aussi dans l'écosystème Java.
Pour les relations entre Larry Ellison et Steve Jobs, je pense que cela a dû aider à pousser Apple vers OpenJDK (ou OpenJDK vers Apple). Je perçois aussi un recentrage des activités, le poste utilisateur chez Apple sur iOS/OS X et ce qui est serveur chez Oracle.
- Est-ce une bonne chose pour les développeurs Java sur Mac ?
- Emmanuel Puybaret : Définitivement, si Apple et Oracle tiennent leurs promesses bien sûr. À terme, les mises à jour Java pour Mac OS X pourront sortir en même temps que leurs cousines sous Windows, Linux et Solaris. Et les développeurs pourront contribuer à corriger des bugs ou proposer des améliorations sans attendre le bon vouloir d'Apple comme jusqu'à maintenant.
- Henri Gomez : Qu'Apple rejoigne OpenJDK, absolument puisque cela va devenir le Java commun à toutes les plateformes, Windows, Linux et maintenant OS X.
J'ai pu faire des tests de performance entre OpenJDK 6 et la VM Apple et là aussi, les performances sont meilleures côté OpenJDK.
Ne reste qu'à attendre le pont AWT / Cocoa et on aura une VM parfaitement utilisable avec les outils de développements Java actuels, avec un gain de performance en prime.
- Suite à l’abandon de Java par Apple, vous [Emmanuel Puybaret] vouliez lancer JKoala, un portage d'OpenJDK sur Mac. Allez-vous le poursuivre ?
- Emmanuel Puybaret : Non, je l'ai déjà arrêté dans la foulée de l'annonce. Le développement d'une seconde version open source d'AWT / Swing sous Mac OS X ne présente pas d'intérêt maintenant qu'Apple a rejoint OpenJDK. Autant contribuer à améliorer leur version une fois qu'elle sera disponible.
Malgré tout, je ne regrette pas d'avoir lancé ce projet. C'est une initiative parmi d'autres qui a fait sûrement bouger les acteurs en jeu et ça a été l'occasion de mieux connaître les acteurs d'OpenJDK et de Java sous Mac OS X.
Revenons-en à OpenJDK pour Mac, comment les choses se présentent ? Apple a communiqué des informations sur ses mailings listes. Pouvez-vous nous en dire plus ?
- Emmanuel Puybaret : Le fait qu'Apple précise de façon publique ses intentions sur Java est déjà en soit un fait extraordinaire, et cela faisait très très longtemps que ça n'était pas arrivé ! Espérons qu'on puisse y voir une première preuve que l'équipe Java d'Apple commence à basculer dans le monde moins secret de l'open source...
Apparemment, la décision de rejoindre OpenJDK n'a pas été simple et Apple n'en est qu'au début de sa contribution. Ils vont d'abord compléter SoyLatte, la version d'Open JDK pour BSD qui fonctionne sous Mac OS X avec X11, pour qu'elle puisse s'adapter à l'architecture Java mise au point par Apple lors de la dernière mise à jour de Java. Puis dans les mois qui viennent, Apple va contribuer son implémentation de Java 6 et remplacer la couche graphique qui fait appel à X11 par une couche qui fera appel à Cocoa et OpenGL.
Apple contribuera aussi son Look and Feel Swing pour Mac OS X ainsi que son API eAWT/eIO spécifique. Par contre, l'implémentation actuelle des composants graphiques AWT ne pourra pas être contribuée, et un système de remplacement sera développé pour assurer la compatibilité avec les programmes existants.
- Henri Gomez : L'adaptation d'OpenJDK 6 sur OS X, d'après le projet OpenJDK BSD est un travail énorme qui a été accompli par des bénévoles, comme M. Landoff, Greg Lewis, Kurt Miller, Dalibor Topic.
Un coup de chapeau a eux, car ça reste l'oeuvre de passionnés et dans un cadre totalement Open source.
OpenJDK 7 a profité de ses patchs et fourni un support OS X quasiment complet.
Le point bloquant est le pont AWT vers Cocoa, pour l'instant il n'est qu’en mode X11, ce qui n'est pas satisfaisant.
Pour donner une idée, mon environnement de développement, Eclipse, tourne sous OpenJDK 1.7 64bits depuis quelque temps déjà et fonctionne sans aucun problème. Il n'y a pas de problème d'accès à l'interface utilisateur puisqu'Eclipse utilise SWT qui a un pont Cocoa depuis plusieurs années.
L'annonce de la création du projet de portage OpenJDK 1.7 sous OS X cette semaine et l'arrivée des ingénieurs Apple est particulièrement rassurante puisqu'on va pouvoir profiter des développements Apple dans OpenJDK 1.7.
Je compte d'ailleurs suivre ce projet, comme le projet BSD, avec mon camarade Gildas Cuisinier et l'inclure dans notre projet de construction continu de JVM OpenJDK, afin de pouvoir fournir régulièrement l'état de l'art à la communauté Java sous OS X.
Quels sont les avantages de travailler sur Mac pour un développeur Java ?
- Emmanuel Puybaret : On peut développer et tester la portabilité des programmes Java avec un seul ordinateur grâce aux logiciels de virtualisation comme Parallels Desktop, VMware ou VirtualBox, où vous pouvez installer Windows, Linux, Solaris...
- Henri Gomez : J'ai switché sur Mac l'année dernière parce que je voulais un environnement stable, avec une bonne ergonomie et surtout un noyau Unix.
Mac OS X apporte tout ça, avec en plus l'accès à la ligne de commande qui est quand même souvent utilisée par les développeurs Java, notamment avec certains outils de constructions d'applications comme Maven.
Apple n'a pas semblé être très active concernant Java ces derniers temps… Où en est-on par rapport aux autres JVM sur les autres plates-formes ?
- Emmanuel Puybaret : Si certaines fonctionnalités ont permis d'améliorer récemment l'intégration des programmes Java dans Mac OS X, la liste des bogues et fonctionnalités standards qui manquent à l'implémentation Java sous Mac OS X est en effet trop longue à mon goût : une boîte de dialogue d'ouverture de fichiers Swing qui rappelle celle de Mac OS... 9, une boîte de dialogue de choix de couleurs qui n'a jamais été adaptée au look de celle de Mac OS X, pas de fenêtre de forme non-rectangulaire ou translucide, une implémentation du Java Plug-in 2 qui n'est toujours pas celle par défaut et qui n'est pas compatible avec les versions actuelles de JOGL et Java 3D,... je préfère m'arrêter là pour ne pas lasser vos lecteurs.
Certaines de ces fonctionnalités ont reçu des correctifs extérieurs comme avec le projet Quaqua Look and Feel par exemple, mais pourquoi Apple n'a jamais développé ces correctifs elle-même ? Ca restera toujours un mystère, d'autant plus opaque que les listes des bugs et demandes d'amélioration d'Apple sont complètement privées.
- Henri Gomez : Je ne pense pas que Java ait jamais été une cible pour Apple. Il leur fallait une VM pour le fonctionnement d'applications serveur et ils ont donc fait l'effort. Pour l'utilisateur normal, le non-développeur, Java n'est quand même pas souvent utile sur son poste.
Pour un serveur par contre, c'est quasiment indispensable, puisqu’on y retrouve souvent des serveurs d'Application comme JBoss ou Glassfish.
Et sans Java, c'est un pan énorme de services qui ne peut être offert sur serveur.
D'ailleurs je trouve que l'annonce de l'arrêt de la maintenance Java et des XServe est peut-être révélatrice.
Jusqu'à présent, Mac OS X à la différence de Windows était un package très complet et intégrait par défaut Java et Flash. Apple a semble-t-il changé son fusil d'épaule. Comment jugez-vous cette nouvelle politique ?
- Emmanuel Puybaret : Cette intégration simplifie l'accès à de nombreux programmes pour les utilisateurs de Mac OS X, mais elle oblige les développeurs à s'adapter au rythme des mises à jour, ou plutôt des non-mises à jour, qu'Apple effectue dans Mac OS X pour ces technologies. Par exemple, Sweet Home 3D, un logiciel que j'ai développé en Java, reste encore compatible avec Java 5 pour pouvoir fonctionner sous Mac OS X Tiger, parce qu'Apple a décidé que Java 6 ne serait disponible qu'à partir de Mac OS X Leopard sous Intel.
- Henri Gomez : La aussi, ça reste dans une approche très Cupertinoesque, un recentrage sur ses propres technologies et son écosystème.
Personnellement je suis partisan de l'ouverture, et c'est d'ailleurs cette ouverture qu'il y avait dans OS X, son coté tout packagé qui a autant attiré les développeurs Java, qui ne voulaient plus perdre de temps sur leur configuration Windows.
Maintenant, on voit un système qui se replie sur lui même, qui s'inspire de plus en plus d'iOS, ce qui permet certes d'attirer le plus grand nombre, mais qui aussi semble décider tout seul de ce qui est bon ou pas pour sa plateforme. C'est vraiment dommage de mon point de vue.
- Le Mac App Store n'acceptera pas les applications écrites en Java. Qu'est-ce que cela vous inspire ?
- Emmanuel Puybaret : Je soupçonne que c’est cette décision qui a poussé Apple à abandonner Java précipitamment, puisque la sortie de la dernière mise à jour de Java avec la fameuse release note qui annonçait la fin de la version Java d'Apple est intervenue juste après le special event présentant Mac OS X Lion et le Mac App Store.
Il n'empêche que je ne comprends pas ce qui peut justifier d'exclure du Mac App Store une application écrite en Java ou en n'importe quel autre langage, à partir du moment où elle s'intègre correctement au système. Si c'est pour éviter une dépendance vis-à-vis de la version de Java installée, les développeurs n'auront qu'à fournir leur programme en l'accompagnant d'un runtime Java pour le rendre autonome. C'est ce que je fais déjà pour les versions Windows et Linux de Sweet Home 3D et ça fonctionne très bien. Le programme pèse 20 Mo de plus au téléchargement, mais ça n'est plus un problème avec la bande passante à laquelle les internautes ont désormais accès. Aussitôt que ce sera possible de faire la même chose avec OpenJDK pour Mac OS X, je relancerai l'équipe du Mac App Store sur ce sujet.
- Henri Gomez : C'est un choix pertinent dans l'esprit Apple qui n'accepte pas les applications produites en dehors de ses outils comme XCode.
Et puis, l'App Store reste quand même pour le grand public, je ne vois pas l'intérêt pour Apple d'y héberger une application comme Tomcat ou Eclipse :)
Mais personnellement je regrette ce choix, l'ouverture est toujours bénéfique.
Un mot enfin sur l'abandon du Xserve ?
- Emmanuel Puybaret : Je n'utilise pas de Xserve mais c'est un message plutôt sombre qui est envoyé au monde de l'entreprise... ou alors, si Apple nous présente finalement une solution alternative comme pour l'épisode Java, c'est encore une façon bien bizarre de communiquer ! À force de mettre la charrue avant les bœufs, Apple ne risque-t-elle de se prendre les pieds dans le tapis ?
- Henri Gomez : Je n'ai jamais travaillé avec du matériel Xserve, et je le regrette, car c'était une fois de plus la patte d'Apple, mais cette fois-ci dans un environnement serveur.
De bien belles machines, performantes et qui avaient leur public et leurs applications propres. Je suis sur que notre outillage de construction continue d'OpenJDK aurait tourné comme une horloge sur un XServe (sic) :-)
D’autre part, Apple s’engage à fournir Java SE 6 avec Snow Leopard et Lion. Par contre, les prochaines versions à commencer par Java SE 7 seront disponibles auprès d’Oracle. Pour Bertrand Serlet, senior vice president of Software Engineering d’Apple, c’est une bonne nouvelle pour les utilisateurs Mac : « Nous sommes ravis de travailler avec Oracle pour que nos utilisateurs continuent de bénéficier d'une version Java très performante sur Mac ».
Cet accord est-il une bonne chose pour l’utilisateur Mac ? Va-t-on vers une meilleure prise en charge de Java sur Mac OS X ? Comme l’indiquait Steve Jobs à un utilisateur mécontent, Java sur Mac a presque toujours un train de retard (lire : Steve Jobs répond sur Java et Mac OS X). De plus, en matière de sécurité, Apple n’a pas toujours été irréprochable (lire : Java sur Mac se traîne des failles depuis six mois).
Afin de faire le point, nous avons demandé à Emmanuel Puybaret et Henri Gomez, deux spécialistes de Java sur Mac ce qu’ils pensaient des récentes annonces d’Apple et d’Oracle.
Emmanuel Puybaret est développeur et formateur Java, il a écrit plusieurs ouvrages spécialisés (notamment Les Cahiers du programmeur : Java 1) et est l’auteur de Sweet Home 3D, un logiciel libre d'aménagement d'intérieur lequel est écrit en Java (lire : Sweet Home 3D passe la troisième).
De son côté, Henri Gomez est un développeur Java de longue date impliqué dans bon nombre de projets open source. Il tient un blog sur lequel il partage ses découvertes sur (entre autres) tout ce qui touche à OpenJDK.
Quelle est votre lecture de l'annonce faite conjointement par Apple et Oracle ?
- Emmanuel Puybaret : C'est une très bonne nouvelle. Non seulement, on est assuré d'avoir Java SE 6 dans Mac OS X Lion ce qui permettra à tous les programmes Java existants de continuer à fonctionner, mais en plus Java SE 7 sera disponible librement sous Mac OS X via OpenJDK. Par ailleurs, Apple va contribuer activement avec Oracle à cette version libre, gage d'une intégration correcte de Java dans Mac OS X.
- Henri Gomez : Ma lecture est qu'Apple se concentre sur ses technologies propres, XCode, ObjectiveC, Cocoa, OS X et iOS. Le projet OpenJDK était une excellente opportunité pour Apple de se dégager de la maintenance Java tout en reversant dans un projet GPL (c'est important), ses adaptations pour OS X et Cocoa.
J'imagine que les équipes d'Apple font contribuer le code OS X et qu'ensuite il est probable qu'ils le laissent vivre et évoluer par le soutien de la communauté.
Le rachat de Sun par Oracle concrètement a-t-il changé beaucoup de choses concernant Java ? Le fait que Larry Ellison et Steve Jobs s'entendent bien a-t-il pu faire évoluer les choses selon vous ?
- Emmanuel Puybaret : Peut-être, mais alors l'amitié et le business ne doivent pas faire si bon ménage dans leur cas, car annoncer l'abandon de Java sans donner aucune suite pendant 3 semaines, j'appelle ça un coup de couteau dans le dos plutôt qu'une preuve d'amitié, non ?
Bien que l'annonce du rachat de Sun date d'il y a 18 mois, l'intégration de Sun ne s'est effectuée dans les faits que récemment et Oracle commence à dévoiler petit à petit sa stratégie : annonce de Java SE 7 pour la mi 2011 qui ne comportera finalement que les nouvelles fonctionnalités déjà développées (le fameux plan B), IBM et Apple qui rejoignent OpenJDK, procès contre Google... Qu'on apprécie ou non certaines décisions, on sent que Java commence à revivre enfin après une longue période de léthargie.
- Henri Gomez : Sujet délicat. Le rachat de Sun par Oracle va énormément changer l'écosystème Java et cela a déjà commencé. Ce que Sun n'a pas su faire, autrement dit monétiser Java, Oracle saura le faire.
Par contre, on assiste à énormément de départs en masse de pointures Java, des profils très techniques et pointus. Cela peut être inquiétant pour le futur, même si souvent ils rejoignent des structures plus petites qui oeuvrent aussi dans l'écosystème Java.
Pour les relations entre Larry Ellison et Steve Jobs, je pense que cela a dû aider à pousser Apple vers OpenJDK (ou OpenJDK vers Apple). Je perçois aussi un recentrage des activités, le poste utilisateur chez Apple sur iOS/OS X et ce qui est serveur chez Oracle.
- Est-ce une bonne chose pour les développeurs Java sur Mac ?
- Emmanuel Puybaret : Définitivement, si Apple et Oracle tiennent leurs promesses bien sûr. À terme, les mises à jour Java pour Mac OS X pourront sortir en même temps que leurs cousines sous Windows, Linux et Solaris. Et les développeurs pourront contribuer à corriger des bugs ou proposer des améliorations sans attendre le bon vouloir d'Apple comme jusqu'à maintenant.
- Henri Gomez : Qu'Apple rejoigne OpenJDK, absolument puisque cela va devenir le Java commun à toutes les plateformes, Windows, Linux et maintenant OS X.
J'ai pu faire des tests de performance entre OpenJDK 6 et la VM Apple et là aussi, les performances sont meilleures côté OpenJDK.
Ne reste qu'à attendre le pont AWT / Cocoa et on aura une VM parfaitement utilisable avec les outils de développements Java actuels, avec un gain de performance en prime.
- Suite à l’abandon de Java par Apple, vous [Emmanuel Puybaret] vouliez lancer JKoala, un portage d'OpenJDK sur Mac. Allez-vous le poursuivre ?
- Emmanuel Puybaret : Non, je l'ai déjà arrêté dans la foulée de l'annonce. Le développement d'une seconde version open source d'AWT / Swing sous Mac OS X ne présente pas d'intérêt maintenant qu'Apple a rejoint OpenJDK. Autant contribuer à améliorer leur version une fois qu'elle sera disponible.
Malgré tout, je ne regrette pas d'avoir lancé ce projet. C'est une initiative parmi d'autres qui a fait sûrement bouger les acteurs en jeu et ça a été l'occasion de mieux connaître les acteurs d'OpenJDK et de Java sous Mac OS X.
Revenons-en à OpenJDK pour Mac, comment les choses se présentent ? Apple a communiqué des informations sur ses mailings listes. Pouvez-vous nous en dire plus ?
- Emmanuel Puybaret : Le fait qu'Apple précise de façon publique ses intentions sur Java est déjà en soit un fait extraordinaire, et cela faisait très très longtemps que ça n'était pas arrivé ! Espérons qu'on puisse y voir une première preuve que l'équipe Java d'Apple commence à basculer dans le monde moins secret de l'open source...
Apparemment, la décision de rejoindre OpenJDK n'a pas été simple et Apple n'en est qu'au début de sa contribution. Ils vont d'abord compléter SoyLatte, la version d'Open JDK pour BSD qui fonctionne sous Mac OS X avec X11, pour qu'elle puisse s'adapter à l'architecture Java mise au point par Apple lors de la dernière mise à jour de Java. Puis dans les mois qui viennent, Apple va contribuer son implémentation de Java 6 et remplacer la couche graphique qui fait appel à X11 par une couche qui fera appel à Cocoa et OpenGL.
Apple contribuera aussi son Look and Feel Swing pour Mac OS X ainsi que son API eAWT/eIO spécifique. Par contre, l'implémentation actuelle des composants graphiques AWT ne pourra pas être contribuée, et un système de remplacement sera développé pour assurer la compatibilité avec les programmes existants.
- Henri Gomez : L'adaptation d'OpenJDK 6 sur OS X, d'après le projet OpenJDK BSD est un travail énorme qui a été accompli par des bénévoles, comme M. Landoff, Greg Lewis, Kurt Miller, Dalibor Topic.
Un coup de chapeau a eux, car ça reste l'oeuvre de passionnés et dans un cadre totalement Open source.
OpenJDK 7 a profité de ses patchs et fourni un support OS X quasiment complet.
Le point bloquant est le pont AWT vers Cocoa, pour l'instant il n'est qu’en mode X11, ce qui n'est pas satisfaisant.
Pour donner une idée, mon environnement de développement, Eclipse, tourne sous OpenJDK 1.7 64bits depuis quelque temps déjà et fonctionne sans aucun problème. Il n'y a pas de problème d'accès à l'interface utilisateur puisqu'Eclipse utilise SWT qui a un pont Cocoa depuis plusieurs années.
L'annonce de la création du projet de portage OpenJDK 1.7 sous OS X cette semaine et l'arrivée des ingénieurs Apple est particulièrement rassurante puisqu'on va pouvoir profiter des développements Apple dans OpenJDK 1.7.
Je compte d'ailleurs suivre ce projet, comme le projet BSD, avec mon camarade Gildas Cuisinier et l'inclure dans notre projet de construction continu de JVM OpenJDK, afin de pouvoir fournir régulièrement l'état de l'art à la communauté Java sous OS X.
Quels sont les avantages de travailler sur Mac pour un développeur Java ?
- Emmanuel Puybaret : On peut développer et tester la portabilité des programmes Java avec un seul ordinateur grâce aux logiciels de virtualisation comme Parallels Desktop, VMware ou VirtualBox, où vous pouvez installer Windows, Linux, Solaris...
- Henri Gomez : J'ai switché sur Mac l'année dernière parce que je voulais un environnement stable, avec une bonne ergonomie et surtout un noyau Unix.
Mac OS X apporte tout ça, avec en plus l'accès à la ligne de commande qui est quand même souvent utilisée par les développeurs Java, notamment avec certains outils de constructions d'applications comme Maven.
Apple n'a pas semblé être très active concernant Java ces derniers temps… Où en est-on par rapport aux autres JVM sur les autres plates-formes ?
- Emmanuel Puybaret : Si certaines fonctionnalités ont permis d'améliorer récemment l'intégration des programmes Java dans Mac OS X, la liste des bogues et fonctionnalités standards qui manquent à l'implémentation Java sous Mac OS X est en effet trop longue à mon goût : une boîte de dialogue d'ouverture de fichiers Swing qui rappelle celle de Mac OS... 9, une boîte de dialogue de choix de couleurs qui n'a jamais été adaptée au look de celle de Mac OS X, pas de fenêtre de forme non-rectangulaire ou translucide, une implémentation du Java Plug-in 2 qui n'est toujours pas celle par défaut et qui n'est pas compatible avec les versions actuelles de JOGL et Java 3D,... je préfère m'arrêter là pour ne pas lasser vos lecteurs.
Certaines de ces fonctionnalités ont reçu des correctifs extérieurs comme avec le projet Quaqua Look and Feel par exemple, mais pourquoi Apple n'a jamais développé ces correctifs elle-même ? Ca restera toujours un mystère, d'autant plus opaque que les listes des bugs et demandes d'amélioration d'Apple sont complètement privées.
- Henri Gomez : Je ne pense pas que Java ait jamais été une cible pour Apple. Il leur fallait une VM pour le fonctionnement d'applications serveur et ils ont donc fait l'effort. Pour l'utilisateur normal, le non-développeur, Java n'est quand même pas souvent utile sur son poste.
Pour un serveur par contre, c'est quasiment indispensable, puisqu’on y retrouve souvent des serveurs d'Application comme JBoss ou Glassfish.
Et sans Java, c'est un pan énorme de services qui ne peut être offert sur serveur.
D'ailleurs je trouve que l'annonce de l'arrêt de la maintenance Java et des XServe est peut-être révélatrice.
Jusqu'à présent, Mac OS X à la différence de Windows était un package très complet et intégrait par défaut Java et Flash. Apple a semble-t-il changé son fusil d'épaule. Comment jugez-vous cette nouvelle politique ?
- Emmanuel Puybaret : Cette intégration simplifie l'accès à de nombreux programmes pour les utilisateurs de Mac OS X, mais elle oblige les développeurs à s'adapter au rythme des mises à jour, ou plutôt des non-mises à jour, qu'Apple effectue dans Mac OS X pour ces technologies. Par exemple, Sweet Home 3D, un logiciel que j'ai développé en Java, reste encore compatible avec Java 5 pour pouvoir fonctionner sous Mac OS X Tiger, parce qu'Apple a décidé que Java 6 ne serait disponible qu'à partir de Mac OS X Leopard sous Intel.
- Henri Gomez : La aussi, ça reste dans une approche très Cupertinoesque, un recentrage sur ses propres technologies et son écosystème.
Personnellement je suis partisan de l'ouverture, et c'est d'ailleurs cette ouverture qu'il y avait dans OS X, son coté tout packagé qui a autant attiré les développeurs Java, qui ne voulaient plus perdre de temps sur leur configuration Windows.
Maintenant, on voit un système qui se replie sur lui même, qui s'inspire de plus en plus d'iOS, ce qui permet certes d'attirer le plus grand nombre, mais qui aussi semble décider tout seul de ce qui est bon ou pas pour sa plateforme. C'est vraiment dommage de mon point de vue.
- Le Mac App Store n'acceptera pas les applications écrites en Java. Qu'est-ce que cela vous inspire ?
- Emmanuel Puybaret : Je soupçonne que c’est cette décision qui a poussé Apple à abandonner Java précipitamment, puisque la sortie de la dernière mise à jour de Java avec la fameuse release note qui annonçait la fin de la version Java d'Apple est intervenue juste après le special event présentant Mac OS X Lion et le Mac App Store.
Il n'empêche que je ne comprends pas ce qui peut justifier d'exclure du Mac App Store une application écrite en Java ou en n'importe quel autre langage, à partir du moment où elle s'intègre correctement au système. Si c'est pour éviter une dépendance vis-à-vis de la version de Java installée, les développeurs n'auront qu'à fournir leur programme en l'accompagnant d'un runtime Java pour le rendre autonome. C'est ce que je fais déjà pour les versions Windows et Linux de Sweet Home 3D et ça fonctionne très bien. Le programme pèse 20 Mo de plus au téléchargement, mais ça n'est plus un problème avec la bande passante à laquelle les internautes ont désormais accès. Aussitôt que ce sera possible de faire la même chose avec OpenJDK pour Mac OS X, je relancerai l'équipe du Mac App Store sur ce sujet.
- Henri Gomez : C'est un choix pertinent dans l'esprit Apple qui n'accepte pas les applications produites en dehors de ses outils comme XCode.
Et puis, l'App Store reste quand même pour le grand public, je ne vois pas l'intérêt pour Apple d'y héberger une application comme Tomcat ou Eclipse :)
Mais personnellement je regrette ce choix, l'ouverture est toujours bénéfique.
Un mot enfin sur l'abandon du Xserve ?
- Emmanuel Puybaret : Je n'utilise pas de Xserve mais c'est un message plutôt sombre qui est envoyé au monde de l'entreprise... ou alors, si Apple nous présente finalement une solution alternative comme pour l'épisode Java, c'est encore une façon bien bizarre de communiquer ! À force de mettre la charrue avant les bœufs, Apple ne risque-t-elle de se prendre les pieds dans le tapis ?
- Henri Gomez : Je n'ai jamais travaillé avec du matériel Xserve, et je le regrette, car c'était une fois de plus la patte d'Apple, mais cette fois-ci dans un environnement serveur.
De bien belles machines, performantes et qui avaient leur public et leurs applications propres. Je suis sur que notre outillage de construction continue d'OpenJDK aurait tourné comme une horloge sur un XServe (sic) :-)