|
|
Java
Java
Java - le kawa z'à Sun
Java n'est pas JavaSscript :
Java est au cœur des enjeux technologiques du Web et son concepteur, SUN Microsystems, en est le centre.
Un programme écrit en Java s'appelle un (ou une ?) Applet (ou Applet Java, ou Appliquette en français - "petite application") - ce n'est pas un script. (Côté serveur, une application Java s'appelle Servlet).
Une particularité de Java est de pré-compiler son code source (donnant ce qui est appelé un "PCode" pour Pseudo Code ou code intermédiaire) afin de proposer aux couches d'abstraction des interpréteurs installés sur les différentes plates-formes PC, MAC, UNIX etc. ... (appelés "Machine Virtuelle JAVA" ou "JVM" et qui sont des "runtime" - le nom réel des JVM (Machines Virtuelles Java) est JRE (Java Runtime Environment)) un code relativement plus rapide à exécuter et toujours le même ce qui assura dès le début son succès par sa portabilité et son indépendance vis à vis des operating system et des matériels.
Java est donc 2 choses à la fois : un langage de programmation mais aussi un environnement d'exécution. Le langage reste le même quel que soit l'environnement d'exécution. Si un enrironnement d'exécution existe pour un système d'exploitation, une application Java tournera sous ce système sans aucune modification. Java est un langage orienté objet.
Le succès de Java vient de son universalité et de sa portabilité.
Sun (et ses partenaires) ont fait évoluer la machine virtuelle Java (la "JVM" installée dans votre ordinateur). Aujourd'hui, Java est disponible dans plusieurs milliards d'appareils depuis la carte à puce jusqu'aux gigantesques unités centrales sous Unix en passant par les téléphones portables, les terminaux des bornes de paiement, les systèmes de navigation par satellites, et, partout, c'est le même langage et le même modèle d'exécution du langage côté "client", quel que soit ce client. De l'autre côté, côté "serveur", SUN Microsystems s'est imposé dans les serveurs d'entreprises et SUN fait simultanément évoluer "Java Enterprise Edition" destiné à la construction de services Web et JSP (JavaServer Pages) qui constituent une alternative aux autres langages serveurs comme PHP, ASP, ASP.NET etc. ...
Petite histoire de Java
Origine du nom "Java" :
Pour la petite histoire, ce langage devait s'appeler "Oak" (tout simplement parce qu'il y avait un chêne devant la fenêtre de James Gosling) mais, d'une part, ce nom était déjà une marque déposée, d'autre part, durant sa phase de conception, développement et tests, chez SUN, les ingénieurs burent tellement de café, qu'ils appelèrent leur travail quotidien "Java", équivalent plus ou moins argotique américain de notre "kawa". Non seulement ce nom est officialisé le 23 mai 1995 par John Gage, directeur du "Science Office" de Sun Microsystems et Marc Andreessen, co-fondateur et vice-président de Netscape, mais le logo de Java est une tasse de café fumante. Une autre origine du nom Java se veut être les initiales de James Gosling, Arthur Van Hoff, Andy Bechtolsheim mais cela manque de poésie. On propose aussi, sans que cela ne soit vérifiable ni vérifié, Just Another Vague Acronym ou encore le code hexadécimal des fichiers de classe qui est 0xCAFEBABE.
Origine du langage Java :
Ils étaient 13 au départ qui vont bouleverser le monde avec la technologie Java, jusqu'à provoquer la réaction épidermique de Microsoft qui aboutira à la création, par la firme de Redmond, de la technologie ActiveX par laquelle tout le mal ou presque arrive sur l'Internet (et la plateforme .Net (Dot Net)).
Java est un langage de programmation à part entière dont le projet a commencé en décembre 1990 avec Patrick Naughton, Mike Sheridan, et James Gosling de SUN Microsystems, avec la participation d'IBM, dans le cadre d'un projet nommé "Green". A ce moment là, MS-Dos est le système d'exploitation dominant dans le monde des ordinateurs individuels.
C'est cette petite équipe, la "Green Team", qui est à l'origine de ce qui va changer la face du monde de l'Internet. Oak n'est, au départ, qu'un développement secret à l'intérieur du projet secret "Green Project" de Sun Microsystems qui tente d'imaginer ce que sera la prochaine vague informatique et comment la prendre.
Pour marquer les esprits et insister sur le fait qu'ils travaillaient sur un projet révolutionnaire et secret, il s'enfermèrent dès mars 1991 et durant 18 mois en un lieu anonyme au 2180 Sand Hill Road (dans Menlo Park en Californie), coupant toute communication avec SUN, et en émergèrent le 3 septembre 1992 avec une première démonstration fonctionnelle sur un appareil portable à écran tactile appelé *7 ("StarSeven" - construit par eux sur une base Sparc grâce à un transfuge qui avait rejoint l'équipe de base). Les spécifications du langage sont celles de James Gosling et le langage s'appelle encore Oak. Duke, l'agité du bocal, la mascotte symbolisant Java, est déjà là.
Le périphérique *7 ("Start7" ou "StarSeven")
Duke - la mascotte de Java
L'intérêt suscité est réel, en particulier chez les industriels de la télévision câblée qui pensent déjà à *7 et à la vidéo à la demande. Le langage est développé initialement dans cette optique de réseaux de télévisions numériques câblées avec des contraintes énormes en vitesse d'exécution, ressources minimum, fiaibilité absolue sur des systèmes qui doivent être "non stop" (jamais redémarés)... Un appel d'offre de Times Warner fait sortir l'équipe de sa "clandestinité" et, en novembre 1992, la "Green Team" devient "FisrtPerson" qui s'installe dans de luxueux bureaux du 100 Hamilton Avenue dans Palo Alto. A ce moment là, l'équipe de développement Java se résume à moins de 30 personnes et n'est toujours qu'un service de Sun Microsystems, pas encore une division.
Ce n'est qu'après l'échec des débouchés industriels vers la télévision numérique câblée (Sun perd l'appel d'offres de la Times Warner - en 1992 c'est encore trop tôt - 15 ans plus tard, en 2007 cela commence tout juste à être une réalité balbutiante) que John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing et Eric Schmidt se disent, au cours d'un brainstorming de 3 jours, "Pourquoi pas l'Internet" qui commençait à se populariser pour le transfert de documents média, textes, graphiques, audio, vidéo, à travers des périphériques hétérogènes utilisant tous HTML mais sans la capacité d'ajouter des "comportements" à ces documents média (nous sommes en 1993 et Mosaïc vient de sortir - c'est le premier navigateur Internet, le premier interface "agréable" pour l'Internet qui n'existe que depuis 20 ans et ne connaît que le transfert de fichiers par FTP et Telnet). Il est donc fantastique de s'apercevoir que c'est "par un incroyable accident" que Java a envahi le Net !
Ils développent alors un clone de Mosaïc appelé WebRunner (clin d'œil au film Blade Runner) qui s'appellera officiellement, en 1994, HotJava. C'est la toute première fois que des objets s'animent et que du contenu peut être interactif dans un navigateur Internet. Un serveur ne délivre plus "que des données" mais des données et des applications pour les manipuler. C'est une révolution.
Début 1995, une première démonstration publique laisse l'auditoire ébahi mais en mars 1995 il n'y a que 7 ou 8 copies de WebRunner utilisées. L'équipe décide alors de libérer le code source de WebRunner qui est envoyé sur le Net. Les développeurs s'en emparent et c'est l'envolée grâce à la gratuité accélérée par l'annonce du 23 mai 1995. Ce jour là, à la SunWorld 95, John Gage, directeur scientifique de Sun, annonce l'existence de Java en tant que technologie réelle, sortant des laboratoires et Marc Andressen, vice président de Netscape, fait une annonce surprise en déclarant qu'il introduit Java dans son navigateur, Netscape Navigator (navigateur Internet dominant, voir "unique navigateur" à l'époque).
Le 7 décembre 1995 Sun Microsystems annonce que Microsoft prend une licence Java et compte l'implémenter dans Windows 95 et Windows NT (la licence sera signée en mars 1996 pour une durée de 5 ans). Dans une interview au SunWorld Online, Jon Kannegaard, "chief operating officer" de "Sun's Java Products Division", déclare : "La licence Java accordée à Microsoft conduit Java à être un standard de fait...".
Le 9 janvier 1996 la société filiale de Sun, JavaSoft, est crée et en 2 semaines la première version de Java est disponible.
La gratuité de Java est relative : Java est gratuit pour l'utilisateur final car la technologie est embarquée dans tous les PC livrés préparés ou dans tous les logiciels qui exploitent cette technologie (si elle n'est pas installée sur votre machine vous êtes dirigé automatiquement vers le site de SUN Microsystems pour installer gratuitement la dernière version de la machine virtuelle Java propre à votre système d'exploitation). Mais ce sont les industriels qui payent : la JVM est payée par des éditeurs ou constructeurs comme Oracle, IBM, Nokia, HP, Compaq...
L'avenir de Java se discute aujourd'hui au sein d'un comité, la Java Community Process (JCP) dans lequel SUN n'est pas majoritaire. Des demandes de machines virtuelles spécifiques sont étudiées ainsi que l'évolution de ce qui est appelé "Java 2".
La demande est tellement forte qu'il existe une pénurie de développeurs Java.
Ils partirent à 13 concepteurs chez Sun et sont plus de 4 millions de développeurs dans le monde, aujourd'hui.
Le 13 novembre 2006, Sun rend Java libre et Open Source. Le texte de l'annonce (en anglais). |
Le procès Sun Microsystems / Microsoft à propos de Java
En octobre 1997 Sun avait déjà accusé Microsoft d'avoir violé son accord de licence du 07 déc 95 en distribuant des versions de Java soi-disant compatibles, ce qui avait été jugé "mensonger". Les deux parties étaient parvenues à un accord amiable en janvier 2001, Microsoft ayant accepté de verser 20 millions de dollars à Sun.
Le 17 novembre 1998 Microsoft est accusé d'avoir dénaturé Java
Le 23 janvier 2001 Microsoft accepte finalement de payer les 20 millions de dollars à Sun. Sun accorde le droit à Microsoft de continuer à commercialiser les produits finis ou encore en bêta test, comportant la technologie Java, pour une durée maximum de 7 ans. Microsoft ne pourra pas utiliser la marque déposée "Sun's Java Compatible" et pourra, bien entendu, développer des technologies concurentes.
En juin 2001, la cour d'appel avait déjà statué que Microsoft avait illégalement tenté de maintenir le monopole de son système d'exploitation afin de balayer des concurrents comme Java et le navigateur internet Netscape.
Le 3 décembre 2002 s'ouvre le procès intenté par Sun Microsystems qui accuse Microsoft de tout faire pour marginaliser Java. Sun demande au juge que Microsoft cesse la distribution de la JVM à la sauce Microsoft intégrée dans Windows XP car elle n'est pas compatible avec le standard Java (elle n'est pas compatible avec les machines virtuelles Java des autres systèmes d'exploitation) alors que l'un des points fort de Java est la portabilité or cette portabilité est justement la menace que craint Microsoft. Sun demande à ce que la version la plus récente de la JVM standard soit incorporée dans les distributions Microsoft. Sun ajoute que Microsoft fait tout pour créer et imposer un monopole en incitant les développeurs à écrire du code pour la plate-forme .Net. Selon Sun, «Microsoft a refusé de porter Office sur des plates-formes rivales afin de conserver son monopole illégalement» et d'«obliger le public à acheter des produits comme Microsoft Exchange Server, Microsoft Internet Information Server et Microsoft SQL Server».
Le 26 décembre 2002 la justice fédérale américaine interdit à Microsoft d'adapter librement la technologie Java de Sun Microsystems dans ses produits. Microsoft décide de faire appel pour protéger sa plate-forme de services en ligne "dot net". Le juge J. Frederick Motz enjoint Microsoft à livrer dans ses produits les versions complètes du "moteur" Java de Sun (la JVM, Java Virtual Machine), et non la version adaptée par Microsoft. «C'est pour moi une absolue certitude que sans injonction préliminaire, Sun aura perdu pour toujours son droit à entrer en compétition (...)», «S'il n'y a pas d'opportunités loyales sur un marché non influencé par les violations antitrusts passées de Microsoft, il y a un sérieux risque pour que .Net domine vite le marché», explique le juge dans sa décision de 42 pages dans laquelle il indique comment Microsoft a «fragmenté la plate-forme Java» dans son propre code, pour le rendre «moins attractif pour les développeurs comme pour les utilisateurs».
21 janvier 2003 : Microsoft bénéficie d'un délai additionnel de deux semaines avant que le juge n'applique son injonction et 120 jours pour adapter ses produits à une version "pure" de Java (remplacer sa version frelatée de Java par la JVM de Sun).
Le 3 février 2003, Microsoft sort le SP1a (Windows XP Service Pack 1a - une modification du SP1 sorti en septembre 2002 - une collection de correctifs de sécurité pour Windows XP et Internet Explorer) qui ne contient plus de JVM du tout. Microsoft a retiré sa Machine Virtuelle Java (Java Virtual Machine - JVM) et ne la supporte plus (plus de maintenance ni de mise à jour). Microsoft, par ses manoeuvres d'ajournements de décisions de justices, d'années en années, continue à enfermer les utilisateurs de sa JVM frelatée (qui reste installée sur une large base) et prépare un retournement de marché qui, dès que sa plate-forme .net sera opérationnelle, marginalisera définitivement Sun.
Le 24 février 2003 Microsoft attaque SUN pour concurrence déloyale.
Le 2 avril 2004 Microsoft et Sun signe un accord de paix présenté simultanément sur le site de Microsoft et sur le site de SUN. Microsoft verse 1,95 milliard de dollars à Sun pour clore tous les contentieux. Sept cents millions sont versés pour l'abandon de tous les procès en cours pour concurrence abusive et 900 millions pour clore les litiges liés aux brevets. Par ailleurs, les deux éditeurs ont trouvé un accord sur l'utilisation croisée de leurs technologies. Dans ce cadre, Microsoft versera 350 millions à Sun pour accéder à sa propriété intellectuelle. Microsoft a failli réussir le meurtre de SUN qui, simultanément le 5 avril), annonçait son 11ème trimestre consécutif de pertes et le licenciement de 10% de ses effectifs soit 3.300 licenciés.
|
Résumé :
Les applications en JAVA peuvent être utilisées dans des pages Web mais le code est pré-compilé, n'est pas incorporé dans les pages Web mais dans des fichiers distincts (dont le suffixe est .js) sous forme d'applet (appliquettes ou petites applications !?!), n'a pas accès aux objets de votre navigateur (ce qui est sécurisant en terme de protection informatique et vie privée), est complexe et n'a quasiment pas de limites.
2 points importants :
- Machine virtuelle Java de Microsoft
Pour des raisons de concurrence et de domination de l'Internet, Microsoft à tenté de tuer la société SUN Microsystems en employant les mêmes méthodes qu'à son habitude. Il y a donc dans Windows (enfin, il y avait car Microsoft a perdu en justice façe à Sun, mais il peut encore exister dans vos machines, si vous n'êtes pas attentifs à ces problèmes techniques) une machine virtuelle Java développée par Microsoft. Celle JVM (machine virtuelle) de Microsoft :
- Contient de graves failles de sécurité
- N'est pas conforme au langage JAVA tel que défini par son inventeur. De nombreuses fonctions JAVA niveau 2 faisant partie intégrante de JAVA et telles que définies par SUN Microsystems, l'inventeur et propriétaire de JAVA, ne sont tout simplement pas implémentées par Microsoft et des fonctions exotiques non JAVA 2 sont implémentées et, bien entendu, largement documentées par Microsoft qui envoie ainsi ceux qui développent en JAVA droit dans le mur, avec, probablement, de sombres arrières pensées de Microsoft car ce JAVA de Microsoft, très largement diffusé, serait volontairement incompatible avec la définition de JAVA dans le but macro-économique de marginaliser cette technologie par un renversement futur de stratégie (.Net), favoriser celles de Microsoft (ActiveX) et rendre son inventeur, SUN Microsystems, définitivement hors d'état d'être un compétiteur sur le marché.
Suite à d'interminables procès, Microsoft est condamné et ne peut plus proposer sa JVM exotique. Microsoft se lançe à corps perdu dans la promotion de sa technologie maison ActiveX dans le cadre de .Net Framework.
Vous devez installer la machine virtuelle Java de son concepteur, Sun Microsystems. Voir anti-java pour les procédures d'installation et les liens de téléchargement.
- Désactivation générale de Java et autorisation pour une liste blanche de domaines
Java est un langage puissant et, même s'il a été pensé "sécurité" dès sa conception, il permet malgré tout de faire un certain nombre de choses qui, entre de mauvaises mains, sont hostiles. Java doit donc être désactivé d'une manière générale et autorisé, au coup par coup (site pas site). Le meilleur gestionnaire de cette discrimination est Firefox avec son plug-in NoScript.
|
|
|