L'acquisition de Sun par Oracle a suscité des inquiétudes quant à l'avenir de Java. Si Oracle peut continuer à maintenir l'ouverture de Java, et face à la montée en puissance d'un certain nombre de langages légers tels que Ruby, Python ou PHP. , si Java peut continuer à maintenir sa popularité dans le domaine du développement ?
Il y a 14 ans, lorsqu'un génie du marketing de Sun a changé le nom d'un langage expérimental multiplateforme de Oak, qui symbolise la solidité, à Java, qui regorge de parfums, il n'aurait peut-être pas pensé que ce langage aurait le potentiel de devenir une langue populaire. En fait, si Sun souhaite désormais changer le nom de ce langage pour refléter fidèlement sa position dans l'industrie informatique, il semble que Oak soit plus vivant. Aujourd'hui, bien que le langage Java ne fleurisse pas vraiment partout, il est apparu dans de nombreuses occasions et appareils, et il jouit d'une réputation de fonctionnement stable et bien conçu ; le code Java ne domine peut-être pas tous les ordinateurs ni toutes les plates-formes, mais il en est proche ; devenir Un langage universel est à notre portée.
James Gosling, le père de Java, a fait valoir ce point lorsqu'il est monté sur scène pour prendre la parole lors de la conférence OpenWorld organisée par Oracle. Il a affiché un diaporama JavaFX avec une litanie de statistiques : plus de 850 millions d'ordinateurs de bureau compatibles Java et environ 10 milliards d'appareils compatibles Java. En fait, les machines virtuelles Java sont courantes dans les appareils électroniques : lecteurs de livres électroniques Kindle, lecteurs de disques Blu-ray et téléphones intelligents (y compris moins de téléphones intelligents), etc. Les applications iPhone fonctionnent sur des milliers d'iPhone, mais Java est intégré dans 2,6 milliards de téléphones, des téléphones pas si intelligents que vous pouvez acheter pour 20 $ aux téléphones BlackBerry et Android de dernière génération. Rien n'est inclus.
Inviter Gosling à prendre la parole à la conférence OpenWorld n'est qu'un des moyens par lesquels le directeur d'Oracle, Larry Ellison, espère rassurer les ingénieurs sur le fait que le langage a un brillant avenir. Oracle souhaite acquérir Sun Microsystems, mais doit encore attendre que les régulateurs européens approuvent la décision. Le gouvernement américain a donné son feu vert, mais les responsables du gouvernement européen n'ont pas encore accepté l'accord en raison de préoccupations concernant le développement de MySQL. Gosling et le président de Sun, McNealy, ont déclaré qu'une fois la fusion et l'acquisition terminées, Java recevra plus d'attention et de ressources de la part d'Oracle qu'auparavant.
À court terme, le signal transmis par Ellison n'est peut-être pas très important, car maintenant que Java est devenu un climat, il n'est pas facile de changer l'orientation du développement. Bien sûr, certains pensent que le modèle économique d'Oracle est si différent qu'il entraînera inévitablement des changements majeurs dans chaque partie de l'écosystème Java. Dans l'ensemble, pour chaque raison pour laquelle Java pourrait changer, il existe des raisons tout aussi bonnes pour lesquelles Oracle pourrait vouloir maintenir le statu quo.
Les applications au niveau de l'entreprise sont le principal champ de bataille
Java a d'abord trouvé sa place du côté des serveurs, et ce domaine reste le principal endroit où l'on s'attend à ce que les machines virtuelles Java apparaissent à l'avenir. Pour tous les produits Oracle, les grands serveurs constituent également le foyer principal, il est donc logique que cette paire apparaisse. Bien que les programmeurs PHP privilégient MySQL, pour les applications d'entreprise gourmandes en données, la plupart des projets les plus critiques utilisent encore Java enveloppé dans une architecture basée sur Oracle, et cette situation ne devrait pas changer de sitôt.
Sun a déclaré que le serveur d'applications GlassFish est téléchargé plus d'un million de fois par mois et que les anciennes plates-formes telles que Tomcat sont encore courantes. Parce que la technologie est très appréciée, rapide et véritablement multiplateforme, les grandes entreprises (telles que les banques et les compagnies d'assurance) sont très demandées par les développeurs Java.
Cependant, Java n’est plus considéré comme la syntaxe la plus récente et la plus intéressante. Certains programmeurs se sont plaints de la structure des langages typés statiquement et sont passés à des langages plus récents ou plus simples, tels que Ruby, Python ou PHP. De nombreuses applications Web parmi les plus simples d'aujourd'hui sont développées dans ces langages car le code qu'elles écrivent est facile à modifier et peut être rapidement prototypé. Cependant, ces nouveaux langages faciles à utiliser s'appuient souvent sur Java : les développeurs Ruby utilisent souvent JRuby (un langage Ruby basé sur Java) car la machine virtuelle Java peut mieux gérer les tâches lourdes et libérer plusieurs threads. Jython (langage Python basé sur Java) est similaire.
Java intègre désormais certaines des dernières techniques de programmation pour freiner l'intrusion de ces nouveaux langages. Grails imite clairement de nombreux modèles déclaratifs simples de Ruby on Rails ; le framework Grails combine des plug-ins de script tels que Groovy avec un middleware de base de données appelé Hibernate. Groovy lui-même ajoute de nombreuses options dynamiques pour faciliter l'interprétation du code et peut être directement lié à n'importe quelle partie de l'interface de programmation d'application (API) Java. Il n'est même pas nécessaire de penser à Python ou Ruby, car Groovy, avec une syntaxe élégante et moderne, donne aux programmeurs Java l'accès à une variété apparemment infinie de vastes bibliothèques et à une machine virtuelle sous-jacente solide comme le roc.
Passez au mobile
Le nombre de téléphones Java (estimé à environ 2,6 milliards) est stupéfiant, car la plupart des téléphones les plus simples du marché exécutent Java Platform Micro Edition (Java ME). Cela permet à des entreprises comme Wattpad.com de créer des plateformes de lecture de documents qui fonctionnent sans problème dans le tiers monde.
Cependant, le nombre de smartphones exécutant Java est relativement faible. L'énorme succès de l'iPhone a incité de nombreuses personnes à réapprendre l'Objectif C. Ce langage permet aux programmeurs d'améliorer leur contrôle sur certains problèmes du système tels que l'utilisation de la mémoire. Java cache la plupart des problèmes sous-jacents aux programmeurs, ce qui est un avantage, mais le principe est qu'il n'est pas nécessaire de gérer des ressources telles que la mémoire, car s'il y a une petite erreur dans le garbage collection, certains jeux ne fonctionneront pas. Malheureusement, la durée de vie de la batterie étant un facteur très important, les smartphones nécessitent une gestion des ressources plus stricte que presque toutes les autres plates-formes.
Pourtant, les programmeurs Java sont très demandés, car BlackBerry continue d'utiliser Java ME sur sa nouvelle plate-forme : il ajoute la prise en charge des écrans tactiles et des capteurs d'orientation aux profils du téléphone. Il existe des facteurs imprévisibles dans Android. Depuis que Google a ouvert l’utilisation d’Android, de nombreux fabricants de téléphones mobiles ont sauté dans le train Android.
Android de Google est construit sur Apache Harmony open source et ses classes, plutôt que sur le kit de développement Java (JDK) et Java ME développés par Sun. Pour quelqu’un qui écrit du code dans Eclipse, ils seront presque identiques. Dans de nombreux autres cas, cela n'aura pas d'importance car le développement Android utilise beaucoup de formulaires XML, mais si les deux frameworks de développement s'éloignent l'un de l'autre, cette séparation peut devenir un gros problème.
Récupérer le terrain du bureau
La plupart des gens pensent encore que Java n’a jamais réussi sur le bureau, et c’est du passé. Aujourd’hui, Java pénètre lentement mais sûrement dans tous les recoins des systèmes d’exploitation modernes. Alors que les applications standard écrites en Swing continuent de souffrir en essayant de cibler les parties les plus élémentaires de chaque plate-forme, avec des plates-formes et des frameworks de développement plus récents tels que JavaFX et Web Start, il est possible de déployer efficacement des logiciels sur le Web. La plate-forme native gère toute la mise en cache des archives Java (JAR). En cliquant sur un lien, parfois suivi de quelques clics sur une boîte de dialogue d'octroi d'autorisations, le logiciel peut être installé et mis à jour, et peut être exécuté à tout moment.
JavaFX est encore une véritable inconnue. Les capacités graphiques sont désormais compétitives par rapport à Flash d'Adobe ; le moteur informatique prend en charge la plupart des API Java, mais le langage est un étrange hybride de Java authentique, de JavaScript et d'autres langages de balisage. Le code est plus simple que Java classique, les programmeurs Java doivent donc apprendre de nouvelles choses. Cependant, pour un outil de bureau très interactif, la nouvelle classe d’animation vaut peut-être la peine d’être apprise. Web Start continue d'améliorer lentement la capacité de déployer des logiciels directement sur le bureau via le navigateur.
Saisir le champ intégré
Java prospère également là où les gens s’y attendent le moins. Même si les programmeurs C ne reconnaîtront peut-être jamais les capacités de stockage intelligentes et d'exécution rapide de la machine virtuelle Java, le succès de Java dans les domaines autres que les smartphones, les décodeurs, les puces intégrées, les Kindle et autres appareils à faible consommation le montre : Entièrement capable de se montrer dans applications embarquées. La popularité de Java aide également les programmeurs à migrer des grandes plateformes vers les petites plateformes. Bien qu'il ne soit pas facile de passer du développement d'applications d'entreprise pour les mainframes au développement de petits codes embarqués, le standard Java rend cette transition beaucoup plus facile que de nombreux autres outils.
Les packages Java deviennent également de plus en plus petits. Gosling a utilisé la poussière pour décrire un ordinateur de la taille d'une pièce de monnaie, compatible Java. JavaCard, une machine virtuelle et une API pour ces petits packages, est sur le point d'inaugurer la version 3.0, une version marquante qui ajoutera des capacités de connectivité réseau. Bien que ces petits points ne soient pas encore assez petits pour entrer dans l’œil humain, la possibilité de parler directement à Internet les rend très tentants.
Les partenaires vont-ils se séparer ?
La plus grande préoccupation de tous les développeurs est la suivante : quels types de conflits d'intérêts changeront si l'acquisition de Sun par Oracle est finalisée ? Oracle s'est développé en facturant des frais de licence logiciels importants, et ses logiciels peuvent fonctionner sur n'importe quel matériel que les clients souhaitent acheter. Sun, en revanche, distribue généralement des logiciels gratuitement et gagne ensuite de l'argent en vendant des serveurs. Ces stratégies de distribution ne changeront peut-être pas immédiatement en raison d'une trop grande inertie, mais personne ne sait quelles décisions Oracle prendra à l'avenir.
Certains pensent que l'incapacité d'Oracle à facturer des frais de licence élevés dans le passé ne fera qu'encourager Ellison à adopter des tactiques similaires avec Sun. Peut-être que l'équipe commerciale d'Oracle convoite cette opportunité en ce moment : augmenter progressivement les frais de licence là où Java était autrefois gratuit. Pour éviter de réécrire les applications Java Platform Enterprise Edition (Java EE), de nombreuses entreprises préféreraient probablement payer 100, 200, voire 1 million de dollars par processeur.
Les critiques soulignent qu'Oracle peut facilement développer de nouvelles versions de la machine virtuelle Java avec différents niveaux de performances pour différents marchés. Les machines virtuelles de bureau peuvent rester gratuites, Oracle peut même payer des fournisseurs d'ordinateurs pour commercialiser Java et JavaFX, et les améliorations de performances dans la gestion du multithreading extrême peuvent avoir un coût très élevé. Il existe de nombreuses façons de gagner de l'argent auprès des utilisateurs, et les frais de licence sont souvent beaucoup moins chers : il est beaucoup plus coûteux de demander à des programmeurs récalcitrants d'apprendre d'abord un nouveau langage, puis de réécrire la base de code.
Mais certains pensent qu’Oracle pourrait ne pas adopter cette démarche. Une source proche de Sleepycat, la société de bases de données open source acquise par Oracle en 2006, a déclaré qu'Oracle avait pratiquement doublé la taille de son équipe technique, tandis que tous les modèles à double licence restaient intacts. Les logiciels sont toujours disponibles sous forme de source ouverte ou de licence commerciale. Si Oracle traitait Java comme Sleepycat, les licences communautaires et autres options seraient toujours aussi gratuites et largement disponibles, et davantage d'ingénieurs seraient disponibles pour améliorer le code.
Des questions plus profondes demeurent quant aux relations à long terme avec d'autres partenaires Java majeurs. Google continue de soutenir Apache Harmony, un projet de plus de 1,25 million de lignes de code qui semble déterminé à miner le statut de Sun en tant que centre du monde. IBM a perdu la guerre d'enchères pour Sun et trouve désormais son rival Oracle plus fort. IBM a conçu les outils de développement Eclipse et pourrait également commencer à orienter la plate-forme Java dans une autre direction.
D'autres partenaires se sont montrés plus agressifs. Vishal Sikka, directeur technologique de SAP, a demandé à plusieurs reprises à Sun de publier le Java Community Process (JCP), en se concentrant sur le plan proposé par Oracle en 2007 : confier le contrôle à une organisation de normalisation ouverte, indépendante et neutre vis-à-vis des fournisseurs, et à toutes les organisations de normalisation. Les membres participent sur le principe de l’égalité des chances. Bien qu'Oracle soit resté largement muet sur les détails, on peut supposer que l'entreprise retrouvera le respect pour certaines des idées héritées de Sun.
Cependant, même si d'autres partenaires peuvent se livrer à l'intimidation, ils peuvent considérer la question du degré, car chacun est en fait éloigné les uns des autres, et tout comportement excessif est susceptible d'être bloqué, car tout le monde se rend compte qu'une fois écrit, les avantages des concepts opérationnels sont partout. Si le code écrit pour un téléphone Android ne peut pas être facilement migré vers un lecteur Blu-ray Sony ou un serveur Glassfish, il est possible qu'un autre langage émerge. En fait, plusieurs sociétés écrivent déjà des boîtes à outils permettant aux utilisateurs d'exécuter facilement les logiciels Ruby on Rails ou Python sur l'iPhone.
De plus, bon nombre de ces nouvelles langues pourraient devenir de sérieux concurrents, et trop de luttes intestines ne feraient que les aider à gagner du terrain. Il existe des dizaines de très bons packages open source moins connus qui peuvent généralement être portés sur chaque plate-forme avec un peu de conversion par des passionnés dévoués. Par exemple, Python est déjà le langage principal dans certains domaines scientifiques, et Google a choisi Python au lieu de Java comme premier langage pris en charge par son App Engine. Même si IBM, Oracle et Google peuvent s'affronter dans la course à la domination, ils doivent reconnaître que tout le monde profite de la normalisation, et non du monopole. Si quelqu’un ose trop exclure les autres et tenter de contrôler Java, d’autres fournisseurs risquent de se précipiter vers leurs concurrents.
Java ouvre-t-il également une boutique d’applications ?
Le fait que la base de code Java reste relativement cohérente et relativement standardisée a suscité des spéculations sur la manière dont Sun (et Oracle, si la fusion se concrétise) pourraient exploiter l'omniprésence de Java pour faire fortune sans augmenter les frais de licence et évincer la pression sur tout le monde ? Et si quelqu'un développait un App Store pour l'ensemble de l'écosystème Java, vendant des widgets écrits en Java, tout comme les applications pour iPhone. Ils pourraient être sur des ordinateurs de bureau, des téléphones, des lecteurs Blu-ray, ou si cela pouvait fonctionner sur n'importe quelle autre plate-forme utilisant Java ? ?
Récemment, il y a eu un nombre considérable d'applications pour les téléphones Android, et Sun prévoit également un magasin Java afin que les utilisateurs puissent simplement faire glisser l'application sur le bureau, ou simplement écrire un peu plus de code pour ajouter chaque application au bureau. , ils peuvent fonctionner dans presque tous les coins du monde Java. Néanmoins, gérer des écrans et des interfaces utilisateur très différents peut s’avérer un défi.
Imaginez à quel point ce scénario est attrayant : une application écrite par un développeur s'exécute sur un téléphone Android, il travaille sur une tâche à son bureau, et lorsqu'il rentre chez lui, elle fonctionne sans problème sur le lecteur Blu-ray du salon.
Proposer des applications Java à des personnes assises sur leur canapé est même un peu inattendu, car le langage Java était initialement destiné à fonctionner sur des décodeurs à ses débuts, lorsqu'il s'appelait Oak. Cette vision s'appuiera sur les plus grands avantages de la plate-forme Java : sa popularité et sa stabilité multiplateforme. Peut-être que ces avantages aideront Java à générer des revenus continus pour son inventeur.