Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Naissance d'un géant : Java

 -  Juillet 2011 - 

Java est un des langages de programmation les plus auréolés de succès de ces quatre dernières décennies. Une grande partie des offres de postes de développeurs en France concerne Java.

D'après le « TIOBE Programming Community Index » Java est toujours leader avec 18,58 % des parts de marché en juin 2011. Il était bien plus haut en 2000, avoisinant les 30 %.

Mais comment Java en est arrivé là ? Cet article effectue un retour sur la période 1991–2000.

Sommaire

1 Un projet de Recherche et Développement pour l'embarqué

1.1 Conception du langage

C++ est un langage de programmation né en 1980. Au départ, il était conçu comme une amélioration du langage procédural C, dont il reprend les définitions. D'où son nom. C++ dispose de mécanismes de programmation orienté objet. Ce langage s'est énormément complexifié avec le temps, ajoutant régulièrement de nouvelles fonctionnalités, qui en font un langage très complexe, et complet (sa spécification fait 500 pages). Un des gros avantage de C++ est de proposer une orientation objet certes pauvre, mais très rapide comparé aux autres langages. Cet avantage était déterminant dans les années 1980 où la plupart des PC avaient la puissance d'une calculatrice scientifique d'aujourd'hui.

Java est né au sein des laboratoires de la société SUN Microsystems entre 1990 et 1995.

En 1990, Bill Joy, cofondateur de SUN, lance le projet Stealth, dont l'objectif est de développer un ensemble d'outils pour piloter des périphériques électroniques couramment utilisés par les consommateurs. Cette prise de conscience est parfaitement compréhensible à cette époque : les capacités technologique des fondeurs de microprocesseurs, et la baisse concomitante du prix des puces informatiques, permettaient d'envisager très sérieusement la possibilité de faire fonctionner un ordinateur certes très simple, mais efficace sur une carte électronique de 4 cm sur 4, avec des coûts de l'ordre de la dizaine d'euros.

Remplacer une carte électronique par un micro-ordinateur présente aussi l'avantage que seul le programme doit être réécrit si l'on veut changer le comportement de l'appareil électronique, au lieu de devoir re-dessiner le circuit. La première solution n'implique que peu de coûts dans la chaîne de production, tandis que la seconde est très lourde à gérer (modification du process de production, du support, etc.).

L'équipe du projet, bientôt rebaptisée lorsqu'elle est fut complété par James Gosling, Mike Sheradin, Patrick Naughton, se rend vite compte que le langage C++, qui devenait alors un standard dans l'industrie, est source de nombreux problèmes. Les lacunes de ce langage en terme de sécurité, de parallélisme, de gestion de la mémoire, et prise en compte de l'hétérogénéité des plates-formes électroniques devenaient très rapidement rédhibitoires. James Gosling, en charge de s'occuper de l'aspect langage du projet, commence à modifier C++ pour le rendre utilisable pour ses besoins. Le langage sera longtemps nommé "Oak" en raison de la présence d'un chêne en face de la fenêtre de James Gosling. Il fut changé quelques temps après lorsque ceux-ci découvrirent que le nom était déjà pris par une autre équipe quelques bureaux plus loin (il y avait de nombreux chênes autour des bureaux de SUN...). Après un passage dans le coffee shop jouxtant leur bureau, Java (argotique américain pour café) fut retenu après plusieurs heures de discussions.

Ceci illustre l'absence relative de réflexion marketing dans le choix du nom d'un futur succès planétaire.

L'obligation d'utiliser un langage de programmation produisant un code s'exécutant dans une machine virtuelle, s'est rapidement révélée nécessaire. En effet, on ne sait pas encore, et on savait encore moins à l'époque, compiler en code machine un programme en étant sûr de son fonctionnement correct. L'utilisation d'une machine virtuelle permet de limiter la casse. J. Gosling décida de supprimer de C++ toutes les constructions qui impliquent potentiellement des problèmes.

Une fois de plus, comme c'est le cas dans la conception de tous les langages à quelques rares exceptions près, Java a été conçu selon les désirs personnels de son concepteur, qui est avant tout un développeur qui veut se faire plaisir en programmant.

Au bout d'un an et demi, en août 1992, l'équipe présente leur premier prototype à l'équipe dirigeante de SUN (qui sont à la base des informaticiens de très haut niveau parfaitement à l'aise avec la technique).

Une télécommande universelle, aussi capable de contrôler l'ensemble des téléphones du bureau est présentée. Patrick Naughton déclara qu'en 18 mois, leur équipe de 6 personnes avaient réalisé un système d'exploitation, un langage, une interface utilisateur, une nouvelle plate-forme matérielle, ce qui aurait requis 75 personnes à une organisation utilisant les standards industriels de l'époque. Parallèlement à ce projet, une équipe de Sun, constituée par Ole Agesen et Craig Chambers conçoivent et implémentent le premier langage objet à prototype, Self. Self pose des problème de compilations et d'exécution assez ardus, le langage de programmation est très puissant mais difficile à exécuter avec des performances acceptables, le rendant inutilisable dans l'industrie. Self implique néanmoins énormément de recherche sur les machines virtuelles et leur efficacité. Java reprend très vite les travaux de Self sur cette machine virtuelle, sans pousser celle-ci dans ses derniers retranchements, Java étant un langage beaucoup plus frustre que Self.

1.2 Des débuts difficiles

En novembre 1992, Sun commence à marqueter son produit afin de le vendre à des entreprises souhaitant développer des équipements électroniques sophistiqués.

Durant 3 ans, Sun essuiera divers échecs en tentant par exemple de vendre son produit à Time-Warner pour un projet console de TV à la demande, ou d'une console multimédia pour 3DO. Devant ces revers, Sun décide de dissoudre l'équipe du projet.

1.3 Le web sauve le langage

Les divers membres de l'ancienne équipe, encore hantés par leur jouet technologique, tentent encore de trouver une application à leur projet. Patrick Naughton, s'« amusant » lors d'un week-end à programmer un navigateur web, a l'idée d'y incorporer le langage Java et son infrastructure. Le World Wide Web, par nature, a des exigences telles que la fiabilité, la sécurité et l'indépendance d'architecture qui correspondaient grandement avec les principes de conception de Java et son infrastructure. En effet, se connecter sur Internet revient à ouvrir ses portes et ses fenêtres. Les utilisateurs de Windows le subissent encore, avec de récurrents problèmes de virus..

En Septembre 1994, Naughton et Jonathan Payne (un ingénieur de Sun) commencent à écrire « WebRunner », un navigateur web basé sur Java qui a été rebaptisé « HotJava ». En octobre 1994, HotJava est stable et est présenté aux dirigeants de Sun. Cette fois-ci, le potentiel de Java, est reconnu dans le cadre du World Wide Web et le projet est soutenu.

Bien qu'il soit conçu avec un objectif différent, Java a trouvé une niche parfaite avec le World Wide Web. Sun a officiellement annoncé Java et HotJava à la conférence SunWorld 1995. Peu de temps après, Netscape Inc. a annoncé qu'il allait intégrer la gestion de Java dans le navigateur. Java est d'un grand intérêt car il est sécurisé, contrairement à C++ : Java isole les programmes les uns des autres afin qu'il n'y ait aucune interférence possible.

Le World Wide Web est alors le nouveau sujet d'enthousiasme des fans de technologies aux États-Unis. Il trouve en outre un franc soutien du vice-président Al Gore pour lequel Internet était une priorité depuis de nombreuses années.

2 La conquête

2.1 1993-2000, un environnement en pleine mutation

2.1.1 Internet s'installe dans le paysage

En 1995, la plupart des gens ont utilisé Internet pour partager des documents statiques comme des documents word, des pages HTML, etc.

Les serveurs Web balbutiant étaient la plupart du temps un bricolage fait de bric et de broc, les serveurs professionnels comme Apache ou Nginx n'étaient pas encore disponibles.
Pour la plupart, les sites web étaient construit avec des scripts CGI écrits en Perl. On utilisait un script bash pour lancer le script à chaque connexion au serveur (le script bash utilisait xinetd pour écouter le port 80). De cette façon, le serveur passait très mal à l'échelle.

Pour l'informatique d'entreprise, l'Internet avait la réputation d'un jouet, limité en dehors des milieux scientifiques et universitaires.

Dans le grand public, Microsoft a longtemps snobé l'Internet, mais beaucoup d'esprits les plus brillants ont cherché des moyens de combiner les forces des acteurs autres que Microsoft, tout en affaiblissant la menace dominante qui imposait chaque jour un peu plus son monopole. Les leaders du marché s'efforçaient toujours de protéger leurs bases installées par le biais de produits exclusifs et de cadriciels.

IBM, qui avait construit un empire sur des modèles exclusifs incluant matériel, logiciel et services, a tout à coup dû faire volte-face pour éviter une mort certaine suite à la prise de pouvoir rapide de Microsoft. IBM est ainsi passé d'un modèle ultra propriétaire à une stratégie englobant toutes les normes et standards qu'il pouvait trouver. IBM a ainsi assis sa survie sur la progression de ce réseau des réseau très prometteurs et sur sa nouvelle offre de service autour de l'Internet, visant à expliquer puis mettre en place la communication des systèmes d'informations des entreprises entre eux, qui étaient alors souvent cloisonnés par site de production.

Netscape Inc s'est en même temps fait connaître avec un navigateur web devenu rapidement populaire, la mode des sites web s'étant propagée dès le début des années 1990 dans les milieux scientifique qui s'en emparèrent très vite.

Ce que l'on appelle aujourd'hui le web 2.0 – permettant de bénéficier d'interfaces utilisateur riches et dynamiques sur nos navigateurs – n'était même pas encore dans les cartons. Le navigateur était formidable pour voyager sur le réseau, mais l'interface encore très frustre, car à la base conçue pour présenter des documents statiques contenant seulement du texte, quelques images et des liens vers d'autres pages.

Pour des utilisateurs habitués à des interfaces plus riches, il n'y avait aucune solution possible. En intégrant Java dans le navigateur, la possibilité s'offrait de créer des applications plus complexes, s'exécutant sur l'ordinateur de l'utilisateur, et lui offrant une interface riche comme il en avait l'habitude. Tout cela, en restant dans le cadre d'un Internet sécurisé.

En outre, le langage Java ayant été conçu pour les périphériques « embarqués », de nombreux téléphones nouvellement numériques étaient pilotables grâce au langage Java. Cette possibilité a été une porte d'entrée formidable pour le langage dans un contexte ou de vastes centres d'appels téléphonique se créaient. Grâce à la possibilité d'utiliser Java sur le téléphone et le navigateur, l'opératrice pouvait avoir automatiquement des informations sur un client dès que celui-ci appelait.

2.1.2 La programmation orienté objet s'impose dans le monde du développement de logiciels

La POO a le potentiel d'être beaucoup moins complexe que la programmation procédurale, car plus proche de l'expérience humaine qui manipule des objets dans sa vie quotidienne, mais cette approche nécessite du temps pour former les compétences nécessaires à son utilisation. Par conséquent, il a fallu quelques années à l'industrie pour mettre en place les structures permettant de former des développeurs compétents en la matière. En outre, il a fallu au moins une décennie afin que les ingénieurs soient suffisamment experts dans le domaine pour être capable d'être une voie de recours en cas de problème.

Microsoft a de fait imposé la programmation objet pour son environnement Microsoft Windows, rendant nécessaire l'utilisation du langage C++. C++ avait de gros défauts : différentes versions du compilateur produisaient des binaires incompatibles, ce qui posait énormément de problèmes aux développeurs qui découvraient que leur application rentrait en conflit sur certains postes clients, du fait d'un ensemble de DLL différentes sur chaque poste. On appelait cela le « DLL Hell ». Le système des DLL de Microsoft ne possédait aucun système de gestion de dépendances, comme on en a sur les systèmes GNU/Linux, il en devenait hasardeux qu'un programme fonctionne. Ne parlons même pas des programmes qui installaient une version des DLL, écrasant une version présente et rendant incompatibles certains logiciels existants.

C++ est tout sauf un langage orthogonal. Peut être un peu si on se restreint aux Templating, mais on peut vite faire n'importe quoi avec ce langage.

2.1.3 Java s'impose face à C++

Java s'était justement construit pour contourner cette complexité inhérente au C++. En reprenant de très près la syntaxe de son prédécesseur, tout en corrigeant nombre de ses défauts, Java a très vite plu à de nombreux développeurs qui maîtrisaient C++ tout en supportant difficilement les difficultés inhérentes au vieux langage.

Son intégration dans le navigateur a été déterminante : en effet, les fans de technologies se sont bien évidemment jetés sur Internet, qui était modique aux États-Unis du fait de la gratuité des appels téléphoniques locaux (Internet à ses début fonctionnait avec un modem qui appelait un numéro de téléphone local).

En outre, Java apporte une grande sécurité de fonctionnement : son architecture à base de Sandbox permet d'isoler les processus, contrairement à C++ où un débordement de pile est courant (le fait que Microsoft Windows soit programmé en C++ est la principale cause de sa porosité aux virus informatiques).

Un ordinateur connecté à Internet doit être protégé, ce sont des données potentiellement stratégiques de l'entreprise qui sont en jeu. À l'heure d'Internet, C++ faisait très peur aux DSI pour cette raison précise. En matraquant sur le thème de la sécurité, Sun a séduit nombre de décideurs à faire migrer leur application sur un navigateur.

2.1.4 Le Serveur d'Application, la nouvelle coqueluche des entreprises

Internet ayant bénéficié d'un engouement médiatique sans précédent entre 1997 et 2000, en particulier aux États-Unis, les entreprises se tournent de plus en plus vers le réseau.

La baisse drastique du coût du matériel de communication entre ordinateur, l'investissement massif pour la mise en place d'infrastructures réseaux à très haut débit pousse les entreprises américaines à mettre en réseau leur système d'information. De même, avec la bulle des dot com, les sites de commerces électroniques se multiplient comme des petits pains, il leur faut des serveurs web, capables de supporter le trafic généré.

Le modèle du « client lourd » non connecté au réseau a vécu.

Les DSI des entreprises veulent des applications connectées entre elles, afin de pouvoir améliorer leur connaissance du fonctionnement de l'entreprise, d'identifier des éventuels centres de coûts à améliorer, etc.

Ce sera donc le modèle du Serveur d'Application qui s'impose peu à peu de 1998 à 2002 : on installe sur un serveur l'application métier, ce serveur (ou un autre auquel il est étroitement connecté) héberge les données de l'entreprise issus des informations saisies par les employés. Par définition, ces informations sont sensibles, il est plus sûr qu'elles restent sur le serveur et ne se promène pas sur les postes clients.

Sur le PC, Personal Computer ou Poste Client, on utilise une application qui se connecte au serveur. C'est là que le navigateur entre en jeu. En effet le navigateur, Netscape à l'époque, fonctionne sur diverses plates-formes, est peu sensible aux différentes version de Windows, et ne souffre en particulier pas du problème du « DLL Hell » de ce système.

On écrit donc une application afin qu'elle tourne sur Netscape. Pour bénéficier d'application un tant soit peu proche de ce que les utilisateurs ont l'habitude de manipuler sur leur PC, on y adjoint quelques morceaux de logiciel en Java.

Java s'impose donc en entreprise par le navigateur.

2.1.5 Sun abat ses cartes

C'est alors que Sun saisit l'opportunité qui se pointe à l'horizon. Sun vend des serveurs d'entreprise, l'entreprise est même largement dominante sur ce secteur, surpassant IBM décidément bien mal en point.

Sun va donc vendre le logiciel qui animera ces serveurs, et il sera basé sur Java.

Rapidement, Sun développe un cadriciel qui sera un des premiers serveurs d'applications réellement fonctionnel, « Java Enterprise Edition ». C'est un serveur Web, conçu pour développer des application d'entreprise selon un cadre très structuré. En face, C++ ne possédait aucun cadriciel capable de rivaliser, et de loin.

JEE permet d'offrir à ses utilisateurs une grande sécurité pour les données qui transitent par le réseau. JEE offrait de plus tout un ensemble de bibliothèques (appelées API pour Application Programming Interface) prévues pour permettre à l'utilisateur de ne se concentrer que sur la logique métier du logiciel en construction.

Pour concevoir, réaliser et mettre en cohérence ces bibliothèques, Sun a réalisé une étude profonde des logiciels client/serveur de l'époque afin de proposer un ensemble de services qui devaient être réécrits à chaque fois dans les logiciels réalisés à l'époque.

JEE basé sur les EJB - Enterprise Java Bean - dont la presse ne cesse de proclamer qu'il s'agit du futur du développement : les EJB sont des « composants », des objets, permettant de décrire des objets importants pour une entreprise : Client, prospect, employé, facture, chaque concept que l'entreprise manipule a son EJB.

Par nature, cet EJB est censé être réutilisable ad vitam æternam. Mais il faudra dix ans à l'industrie du logiciel pour se rendre compte que c'était une chimère.

La presse spécialisé ne parle que de ça : j'ai réalisé une étude sur les 45 articles consacrés aux développements (au sens large) dans l'hebdomadaire 01Informatique pour l'année 2000. 01Informatique est le magazine de référence pour les décideurs en informatique, il est davantage orienté business que technique. 20 articles sont consacrés à Java, et 9 aux EJB. De même, 15 articles traitent des Serveurs d'Applications. Les autres articles parlent de divers sujets, sans uniformité particulière. On observe donc un engouement autour de Java et de ses technologies associées.

La presse a grandement aidé à faire penser aux décideurs que Java/JEE était l'avenir et le futur leader.

2.2 Conclusion

Java a bénéficié d'un ensemble de circonstance sans précédent, menant à sa domination effective depuis 10 ans, même si celle-ci s'effrite peu à peu.

En cinq ans, Java s'est imposé à presque 30% de part de marché, qui restera dans l'histoire une progression unique.

Le succès de Java entre 1995 et 2000 est le croisement de facteurs environnementaux et intrinsèques au langage et aux choix stratégiques de Sun.

Facteurs environnementaux :

  • progression forte de l'audience du navigateur internet, car grande facilité de mise en place d'architectures « serveur -> ordinateur personnel » (aussi appelée « client-serveur ») via ce média ;
  • doute quant à la pertinence de l'utilisation de C++ comme langage dominant, intérêt pour un langage qui reprend les avantages de C++ en éliminant ses inconvénients (cohérence, sécurité) ;
  • un langage qui a simplifié la programmation orientée objet, perçue comme trop complexe, tout en gardant une syntaxe ne nécessitant quasiment aucune adaptation pour le développeur C++.

Sun a aussi su habilement surfer sur la popularité soudaine de son langage... et comprendre très rapidement l'importance de le soutenir. Par exemple en usant de son image d'entreprise de Haute technologie fournissant du matériel de très grande qualité. Sun était en cette période un leader des serveurs d'entreprise.

Ainsi Sun a dans cette période fourni plusieurs efforts :

  • soutien marketing sans faille à l'engouement autour d'Internet, des Serveurs d'Applications et des EJB. Les Entreprise Java Bean ont été présenté comme LA solution à l'industrie logicielle, qui souffrait de devoir réécrire sa logique métier dans chaque implémentation. Les EJB étaient censées être réutilisables un peu partout dans le Système d'Information de l'entreprise ;
  • intégration de Java au navigateur, présenté (à raison) comme la seule technologie permettant de réaliser les prémisses de ce que l'on attend aujourd'hui du « Web 2.0 ». Sun a su maintenir un partenariat étroit avec Netscape Inc qui produisait le navigateur ultra-majoritaire du même nom ;
  • soutien juridique acharné et sans faille dans un environnement où Microsoft était prêt à tout pour empêcher qu'un langage non maîtrisé par lui-même puisse s'imposer sur son système Windows ;
  • un travail profond d'analyse des besoins du marché, avec la définition de la spécification Java Enterprise Edition. Cette analyse était remarquable dans le sens où Sun a su analyser les besoins des entreprises dans les cinq années suivantes.

Le succès du langage Java est donc la concomitance de grands changements environnementaux, de qualité intrinsèque du langage lui permettant de séduire une frange non négligeable de développeurs et de la pertinence des analyses et actions de l'entreprise Sun entre 1995 et 2002.

Malgré une baisse régulière de son influence, Java a un poids extrêmement important sur le marché de l'emploi : en France environ la moitié des offres de travail en développement concerne Java.

par Ontologia

DLFP - Dépêches

LinuxFr.org

L’écriture et l’image, des âges farouches au texte électronique

 -  16 mai - 

Dans cette nouvelle excursion du Transimpressux, nous voyagerons chez les Mayas de l’époque pré-colombienne ainsi que dans la Rome antique. Nous (...)


GIMP 2.10.38 est sorti

 -  14 mai - 

Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais).Cette (peut-être dernière) (...)


Visualisation d’imageries médicales avec Invesalius

 -  13 mai - 

Nous allons parler ici des examens par imageries médicales de type scanner ou IRM. Un scanner est une série d’images faites aux rayons X et pour une (...)


Lettre d'information XMPP de mars 2024

 -  11 mai - 

N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les (...)


Conférence OW2con’24 : financements et nouveaux défis réglementaires pour les logiciels libres

 -  9 mai - 

Avec quatre discours inauguraux, quatre sessions en petits groupes et 30 présentations d’experts, la conférence annuelle d’OW2 traite des aspects (...)