Java

Java contre .NET: d’un différend originel à une convergence conceptuelle

J’ai intentionnellement utilisé Java dans le titre de cet article sans préciser s’il s’agit du langage ou de la plateforme, afin de mettre en lumière les visions conflictuelles de Sun et de Microsoft dans les années 90, sur ce que Java était censé être (Oracle a procédé à l’acquisition de Sun par la suite). À l’époque, Microsoft désirait que Java ne demeure qu’un autre langage de programmation pour le peaufiner à sa façon, tandis que Sun essayait de présenter Java tant comme langage que comme plateforme libre d’extensions propriétaires.

Comme plateforme, Java constituait un cheval de Troie parfait à l’époque pour contrer la domination de Windows sur les ordinateurs de bureau. Pour Microsoft, tenter d’esquiver les attaques de Sun en réduisant en pièces la promesse d’une plateforme portable de Java, dans le but de miser sur la popularité grandissante de Java comme langage, était un moyen de défense valide pour retenir les développeurs sur sa propre architecture et y attirer les nouveaux spécialistes Java.

Un mélange de similarités et de disparités entre Java et .NET

Il est intéressant de savoir que depuis ce différend historique entre ces géants technologiques à propos de Java et l’avènement de la plateforme .NET et du langage C# de Microsoft, nous avons maintenant deux plateformes concurrentes qui convergent vers un design très similaire, où plus d’un langage peut être compilé pour une machine virtuelle portée sur plusieurs architectures et soutenue par des bibliothèques de classes normalisées.

En effet, avec le temps, la spécification Java Virtual Machine (JVM) sur plateforme Java a été exploitée par de nouveaux langages de programmation tels Scala et Groovy. Par conséquent, Java n’est plus le seul langage de programmation pour la plateforme Java.

Entre-temps, Microsoft a perdu son combat en cour et a introduit la plateforme .NET et C# afin d’établir sa vision originale des choses en créant sa propre implémentation du standard Common Language Infrastructure que Microsoft a elle-même mis de l’avant.

Le problème dans l’approche de Microsoft – pendant un certain temps – a été le manque de portabilité hors de l’architecture Windows. Des projets tels Mono ont depuis démontré au monde qu’il était possible de faire cohabiter .NET et Linux et tout récemment, Microsoft a annoncé le sourçage libre des composantes serveur de la plateforme .NET, ce qui pourrait changer la donne dans ce sens.

Les plateformes Java et .NET partagent un autre point commun : elles ont perdu du terrain dans le domaine des interfaces utilisateur, en raison de l’adoption répandue de navigateurs et applications web ainsi que des initiatives réussies d’Apple. La plus récente approche des navigateurs web sans module d’extension a porté un dur coup aux Java Applets, à Java Web Start et à Microsoft Silverlight, puisqu’ils exigent l’installation de modules d’extension du navigateur et/ou d’un logiciel en mode local pour fonctionner, ce qui est moins sécuritaire et plus coûteux à gérer pour les entreprises.

Même si on peut encore penser à des interfaces utilisateur WPF .NET fonctionnant sur Windows, Java Swing sur un ordinateur de bureau pour de telles interfaces est chose du passé pour la plupart d’entre nous. Cependant, Java pour appareils mobiles a pris la relève, conséquence indirecte de la domination des appareils Android. En effet, Java est le langage de programmation principal pour les applications Android. D’un autre côté, le succès de la plateforme .NET de Microsoft sur les appareils mobiles demeure incertain vu l’insuccès relatif de Windows sur ces appareils.

Les deux plateformes constituent encore des outils d’actualité à usages multiples pour toute entreprise cherchant une technologie éprouvée, chacune possédant ses forces et ses faiblesses dans des domaines spécifiques.

Une prise de position difficile entre Java et .NET

J’utilise Java depuis sa création, mais j’essaie en général de me tenir au-dessus des guerres de clochers à propos des langages de programmation. Je pense toutefois que les chances sont bonnes ici pour que .NET/C# soit de plus en plus adopté au détriment de la plateforme Java avec le temps si Microsoft tient ses promesses et que la communauté Java/Oracle n’apporte rien de nouveau qui soit vraiment digne d’intérêt.

Seul le temps dira lequel de ces prétendants dans l’écosystème global des technologies de l’information (TI) tiendra bon ou non, et pour combien de temps, mais n’oublions pas d’autres initiatives comme la renaissance de JavaScript du côté serveur …

7968
2

À propos de l’auteur

Carl Allain

Carl Allain

Conseiller en architecture corporative

Suivez-moi sur

Expert informatique ayant fait ses preuves dans l'élaboration et la mise en place de solutions complexes et de systèmes d'envergure dans une variété de domaines d’affaires, Carl Allain cumule plus d'une vingtaine d’années d’expérience. Avant son arrivée au sein d’ACCEO Solutions, Carl a œuvré au sein de Cognos (acquise par IBM depuis), Valeurs mobilières Desjardins (VMD), Banque Nationale, et ce, dans des milieux technologiquement complexes et variés.

Un torrent d’octets a passé sous les ponts depuis les temps d’une adolescence prolifique en termes de milliers de lignes de code, et Carl a pu non seulement constater directement, mais également vivre l’évolution exponentielle de l’informatique. Autodidacte et polyvalent, Carl a acquis une expérience lui permettant d’être le joueur clé dans les mandats et les projets confiés. En plus d’acquérir bon nombre de connaissances et un savoir-faire recherché, Carl a développé une vision globale et stratégique des plus recherchées sur le marché.

Consultez son profil

2 commentaire(s)

  1. Le partenariat entre Microsoft et Xamarin qui prendra effet avec la version 2015 de Visual Studio pourrait permettre à Microsoft d’aller chercher des adeptes en leur permettant de déployer des applications .NET sur les plateformes Apple et Android. Un beau succès de Xamarin que Microsoft va mettre à profit!

Les commentaires sont fermés

blog