Les communautés informatiques

Les communautés informatiques


Par Charles Giguère.

(C) 2002-2003 - Tous droits réservés par l'auteur


Voici un rapide tour d’horizon et l’état actuel des cinq principales communautés informatiques (Microsoft, Java, Open Source, Macintosh et Mainframe).

La communauté Microsoft

Naissance  1976
Langage préféré Visual Basic (3 millions d’utilisateur)
Principe de réutilisation Très peu ou très spécialisé (DLL, COM+, DCOM)
Membre typique Les « power users »
Mantra  La productivité par l’agilité des outils
Ennemi numéro 1 Java et la communauté Open Source ex æquo
Allié  Les petites et moyennes entreprises
Principal projet en cours .NET
Meilleur ambassadeur  Bill Gates

Bien que les stratégies de Microsoft soulèvent bien souvent des interrogations et que nombreux sont ceux qui s’inquiètent de ce que plusieurs appellent un dangereux monopole, il n’en reste pas moins que c’est une des communautés les plus florissantes en ce moment et celle qui fait le plus jaser la presse spécialisée.

Microsoft fait couler beaucoup d’encre et elle est la cible de choix pour les hacker et pirates informatiques, principalement à cause de la très grande utilisation des produits Microsoft à travers le monde.  Mais cette constatation est également trompeuse car la presse spécialisée, ne s’intéressant presque exclusivement qu’à cette communauté, en fait ses choux gras en rapportant chaque trou et faille de sécurité découverts par les pirates et les firmes de sécurité spécialisées.  Les autres communautés ont autant de problème de sécurité dans leurs produits, mais la presse s’y intéresse beaucoup moins, sauf peut-être dans le cas de la communauté Open Source ou tranquillement on commence à les rapporter, à cause de l’intérêt toujours grandissant de Linux.

Les développeurs de cette communauté sont les plus choyés en termes d’outils faciles à utiliser, leurs environnements de développement sont pour la plupart de types rapides, RAD (Rapid Application Development) et visuels, le plus utilisé étant Visual Basic.  Mais il en existe d’autres qui ne sont pas conçus par Microsoft : Delphi et PoweBuilder pour ne nommer que ceux-là.  Cette communauté préfère de beaucoup la simplicité d’utilisation et la productivité.

Les principes de réutilisation en développement informatique ne sont pas très primés dans cette communauté, car réinventer la roue avec des outils de développement rapides ne coûte pas trop cher, de plus les environnements de développement dits « visuels » n’offre pas du tout un milieu propice au découpage typique en couches (interface, règles d’affaires, données), ils sont beaucoup plus propices à un développement monolithique D’ailleurs, la programmation par ces outils visuels s’apparente à la peinture à numéros pour les non artistes, on n’exagérerait pas beaucoup en disant que ce sont des environnements de développement très attirants pour les faux programmeurs ou en des termes plus gentils, des « power users » qui contaminent la communauté Microsoft et qui la discrédite lorsqu’ils sont confondus en des programmeurs expérimentés. Cela dit, il n’en reste pas moins que cette communauté est remplie de véritables programmeurs qui respectent en tous points les principes du génie logiciel.

Et il faut bien le dire, les technologies COM, DLL, etc., supposées favoriser cette réutilisation,  par la fabrication d’objets binaires, n’ont jamais livré la marchandise.  D’abord à cause de la complexité de déploiement de ce genre d’objets et ensuite parce qu’elles mettent de l’avant une réutilisation « pure et dure », c'est-à-dire la conception de petits objets possédant des méthodes et propriétés strictes et bien définies, car si on veut qu’ils soient réutilisés, ils doivent être conçus de manière à bien répondre à tous ceux qui sont susceptibles de vouloir les utiliser et cela demande un effort supplémentaire de développement que la communauté Microsoft répugne à fournir. De plus, pour une réutilisation efficace, ce principe requiert des outils de gestion d’objets complexes et difficiles à mettre en place.

Si on examine de près les logiciels bâtis par cette communauté, on remarquera que la grande majorité de ceux-ci sont constitués d’objets binaires (DLL pour la plupart), alors il y a sûrement réutilisation ?  Pas vraiment, car ces objets binaires sont souvent issus du framework de l’environnement de développement rapide, tel que Visual Basic.  Si ces objets sont effectivement créés par les développeurs, alors leur cadre de réutilisation se limitera à l’application elle-même et en sortira rarement, il n’y a donc pas de réutilisation au sens large du terme.

En termes d’outils de bureautique, la communauté Microsoft n’a rien à envier aux autres.  La suite Office est devenu le standard dans ce domaine et tout porte à croire qu’elle le sera encore très longtemps malgré les efforts de la communauté Open Source pour la supplanter.  Même si la suite Office est disponible sur la plate-forme Macintosh, elle ne représente aucun danger, car cette plate-forme est trop spécialisée et sa niche est aujourd’hui bien creusée auprès de la communauté artistique; et cela Microsoft l’a compris depuis plusieurs années.  Les ennemis d’hier sont aujourd'hui des alliés.

La pression est tout de même de plus en plus forte depuis que certains gouvernements ont adopté (ou sont en voie de la faire) des politiques visant à favoriser les suites bureautiques de la communauté Open Source, afin de réduire les coûts associés à la suite bureautique de Microsoft.  Bien que les économies directes d’un tel passage sont facilement quantifiables, il en va tout autrement des coûts supplémentaires indirects du passage à la  bureautique Open Source.  Le système d’exploitation Linux est beaucoup moins convivial à configurer et à gérer et, bien que les ressources pour les développeurs soient abondantes et riches, il n’en reste pas moins que ceux-ci ne disposent que de très peu d’outils de développement rapides et visuels.  On a donc besoins d’individus plus spécialisés, dont la formation est plus pointue et qui coûtent plus cher, car ils sont plus rares.  En contrepartie, les multitudes d’écoles spécialisées en informatique forment les étudiants, pour la plupart, avec les produits Microsoft et les outils de développement rapides (ex. Visual Basic) de la suite Visual Studio.  Ces ressources sont beaucoup plus nombreuses et sont plus abordables, même les « power users » peuvent jouer ce rôle jusqu’à un certain point.  On a donc l’équation suivante : logiciels Open Source très abordables vs ressources humaines spécialisées peu nombreuses et dispendieuses contre des logiciels Microsoft très coûteux vs ressources humaines vastes et abordables.

Le projet le plus ambitieux de Microsoft, .Net (prononcez dot-net), est entrain de voir le jour tout doucement.  Microsoft a tout misé, ou presque, sur ce projet avec lequel elle souhaite définitivement écraser les communautés Open Source et Java.  Qu’est-ce que .NET ?  Voilà la question, que même Microsoft a de la difficulté à définir en termes simples et que sa machine de Marketing a complètement embrouillé, même les spécialistes les plus réputés.  J’ai tout de même une analogie qui vous permettra peut-être de saisir ce qu’est .NET : le désire de Sun avec Java était d’offrir un seul langage de programmation qui permettrait d’écrire des applications qui pourraient tourner sur tous les systèmes d’exploitation sans modification; le désire de Microsoft est d’offrir un seul environnement d’exécution (.NET) pour des applications conçues dans le langage de programmation de votre choix (C/C++, Visual Basic, C# et même Java!).  D’un côté : un seul langage (Java), plusieurs systèmes d’exploitation; et de l’autre, un seul système d’exploitation (.NET), plusieurs langages de programmation. 

Mais, penserez-vous, n’est-ce pas là exactement le rôle joué par le système d’exploitation Windows ?  Pas exactement, car les applications conçues dans des langages différents ne se parlent entre elles qu’en surmontant beaucoup de difficultés (dans Windows); c’est justement ce genre de barrières, et d’autres encore, que .NET est supposé éliminer.  Atteindra-t-il ses buts ?  On ne le sait pas encore, mais c’est bien parti; en tout cas l’idée est très séduisante, tout autant que l’était à l’époque Java.

 

La communauté Java

Naissance  1995
Langage préféré Java (c’est le seul!, 2 millions d’utilisateur)
Principe de réutilisation Répandu (JavaBeans, EJB).
Membre typique Les universitaires, les intellectuels
Mantra  Un seul langage pour tous les systèmes d'exploitation
Ennemi numéro 1 Microsoft (Visual Basic)
Allié  Sun Microsystems
Principal projet en cours La technologie des Web Services.
Meilleur ambassadeur  Le monde universitaire.

Un seul langage de programmation, Java, supporté par tous les systèmes d’exploitation, grâce à sa machine virtuelle qui interprète le langage.  C’est un environnement de développement riche, qui possède très peu d’outils de développement à caractère visuel (à la Visual Basic); cependant, Sun a un projet en cours visant à simplifier la programmation Java et lui offrir une expérience de programmation visuelle, afin de s’accaparer une part des programmeurs Visual Basic.

Le principe de réutilisation est fort, car réinventer la roue en Java est coûteux, Java est un langage entièrement orienté objets dont la complexité de programmation s’apparente au C++, sans toutefois tous les pièges de ce dernier.  À titre d’exemple, contrairement au C++, le Java offre un mécanisme complet de gestion de la mémoire, aucun pointeur à manipuler, uniquement des objets; de plus le langage Java oblige le programmeur à faire une gestion des erreurs de base.  Cependant le langage Java n’est pas à la portée de tous, il est beaucoup moins accessible que Visual Basic, par exemple.  Les programmeurs Java d’expérience sont beaucoup plus difficiles à dénicher. 

Cette communauté possède très peu d’outils de développement rapides (RAD), les « powers users » n’y sont donc pas les bienvenues.  Ici les cycles de développement sont très proches du génie logiciel et on y respecte beaucoup plus les règles de l’art.  Le langage Java est parfait pour l’enseignement de la programmation, l’environnement rigoureux qu’il offre, où tout est objet et où la gestion d’erreur ne peut être ignorée, a séduit les milieux universitaires qu’ils l’ont adopté en remplacement du C/C++.

La principale force et soutient de cette communauté ne repose essentiellement que sur le langage Java, on pourrait s’étonner de découvrir qu’elle ne cesse de croître régulièrement même si le langage n’a pas beaucoup changé depuis 7 ans.  D’ailleurs on commence à parler, dans le milieu, d’une nouvelle version, le Java 3, qui ne serait pas compatible avec les autres (cela n’est-il pas contraire aux valeurs de cette communauté ?), mais qui en corrigerait de nombreuses lacunes.  Il y a cependant un bémol à cette croissance, qui s’observe surtout du côté des développements « serveur » (grâce à l’environnement J2EE), c’est à dire des applications / composantes qui tournent sur des serveurs applicatifs et non pas sur des ordinateurs personnels.  Car du côté des applications clientes, par exemple les applets Java des navigateurs Internet, la tendance est plutôt vers la décroissance.

La communauté a tout de même autre chose à se mettre sous la dent, le récent engouement pour XML et l’essor des technologies qui l’utilise, a apporté un vent nouveau sur les composantes logiciels : les Web Services, composantes réutilisables qui résideront sur le Web et qui se veulent plus souples que les COM+ ou EJB.  Bien que les autres communautés ont, elles aussi, leur propre spécification des Web Services, la communauté Java entend bien imposer la leur comme standard.

 

La communauté Open Source

Naissance  1984
Langage préféré C/C++
Principe de réutilisation Très répandu (par le partage de bouts de code source)
Membre typique Les hackers, les programmeurs avides de savoir
Mantra  Montrez vos sources
Ennemi numéro 1 Microsoft
Allié  IBM
Principal projet en cours Linux et Linux en bureautique
Meilleur ambassadeur  Linus Torvalds

Richard Stallman a fondé, en 1984, le mouvement Free Software Foundation qui fait la promotion du logiciel gratuit, il a participé à la création du système d’exploitation GNU, qui utilise aujourd’hui le kernel Linux; c’est également lui qui a créé la licence GNU (General Public License) largement utilisé dans la communauté Open Source.  Ce mouvement, plutôt radical dans les communautés informatiques, a comme pire ennemi tout ce qui s’appelle logiciel commercial ou propriétaire, ces derniers sont perçus comme un problème social; c’est pourquoi en 1998 une partie des membres de ce mouvement ont voulu se dissocier de ce radicalisme en utilisant le terme moins choquant d’Open Source.  Alors que le mouvement original a une vocation sociale qui touche des questions d’éthiques, l’Open Source s’apparente beaucoup plus à une méthodologie de développement qui touche des questions pratiques, selon Stallman lui-même.

Richard Stallman tente, tant bien que mal, de corriger sans cesse la presse spécialisée en expliquant les différences entre les deux groupes, mais c’est le mouvement Open Source qui a séduit, par son approche moins draconienne.  Que Stallman le veuille ou non, son mouvement est maintenant drainé par la communauté Open Source dont il est le principal instigateur.

Linus Torvalds est celui qui a propulsé ce mouvement avec son système d’exploitation Linux (un clone d’Unix).  Tout avait débuté par un projet personnel d’exploration des possibilités d’un processeur Intel, le 80386, et c’est devenu, grâce à des centaines de programmeurs collaborant par Internet, le système d’exploitation Linux qui fait trembler Microsoft et qui est devenu aujourd’hui son ennemi numéro 1, dépassant presque Sun et son langage Java (ce rang de pire ennemi a été confirmé dans un mémorandum secret de Microsoft qui est parvenu jusqu’à la presse spécialisée).

La réutilisation est celle, non pas d’objets binaires, mais de « bouts de code source ».  Puisque tous les logiciels sont « ouverts », si vous avez besoin d’une certaine fonctionnalité dans votre programme, vous n’avez qu’à copier et coller les lignes de codes qui font ce travail dans votre propre programme.  La communauté Open Source ne s’embarrasse pas à fabriquer des objets réutilisables, réutilisons les sources tout simplement, c’est le principe de la réutilisation nonchalante contraire à la réutilisation « pure et dure » des objets binaires.

La communauté Open Source conçoit des logiciels qu’elle distribue avec le code source complet qui a été utilisé pour fabriquer le logiciel.  Quiconque peut à loisir modifier les sources ou les réutiliser à sa guise, personnellement ou pour en faire un nouveau produit qui devra être distribué avec les codes sources modifiés.  D’ailleurs la principale méthode de livraison des logiciels Open Source a été longtemps de les livrer non compilés, c'est-à-dire que les utilisateurs devaient au préalable les compiler avant de les utiliser, seuls les programmeurs pouvaient y arriver et ce fut longtemps les seuls membres de cette communauté.

Mais Linux a favorisé l’arrivée de non programmeurs dans la communauté par les nombreuses distributions qui permettent d’installer le système d’exploitation et ses logiciels au moyen d’interfaces graphiques conviviales, ce qui a longtemps fait défaut.  Mais la mission première, avec Richard Stallman, du mouvement Open Source n’était pas d’en faire une communauté pour non initié, mais plutôt de favoriser le partage de code sources entre programmeurs.  Il est aujourd’hui possible d’installer facilement des applications Linux déjà compilées pour un processeur précis (ex. Intel), ou encore de l’obtenir sous forme de « package » binaire destiné à une distribution Linux précise (ex. Red-Hat).

Il n’en reste pas moins qu’aujourd’hui encore,  la majorité des membres de la communauté Open Source sont des programmeurs ou des spécialistes de l’informatique.  Mais des efforts sérieux sont entrepris pour y remédier, notamment en offrant un véritable gestionnaire de bureau (Desktop) qui rivaliserait avec Windows et sa suite Office.  Jusqu’à maintenant deux candidats sérieux se font la lutte : KDE et GNOME, et à peu près toutes les distributions de Linux permettent de choisir l’un ou l’autre et même on peut les utiliser conjointement sur le même appareil.  Ces deux gestionnaires offrent également une suite office : GNOME Office et KOffice.  Même Sun, dans sa lutte acharnée contre Microsoft, offre des suites bureautiques : OpenOffice et StarOffice.

Depuis plusieurs mois, la communauté Open Source et la presse spécialisée produisent des articles qui vantent les économies réalisées en utilisant Linux comme système d’exploitation pour la bureautique en remplacement de Microsoft Windows.  Certaines entreprises ont fait la transition et semblent avoir fait des économies, mais ce sont pour la plupart des entreprises dont le développement logiciel était déjà effectué dans Linux.   Des membres influant de cette communauté ont récemment dit que l'utilisation de Linux pour la bureautique ne serait viable qu'à condition qu'une suite bureautique, tournant sous ce système d'exploitation, serait compatible avec la suite Office de Microsoft; ce qui est loin d’être le cas présentement.  Malgré cela, on remarque que certains gouvernements (Venezuela, Pérou, Norvège, Chine, Allemagne, Taiwan, Mexique) se sont dotés de politiques, ou ont des projets de le faire,  visant à favoriser les logiciels Open Source afin de réduire les coûts faramineux associés aux logiciels de bureautique Microsoft.

 

La communauté Macintosh

Naissance  1976
Langage préféré C/C++
Principe de réutilisation Très faible
Membre typique Les artistes.
Mantra  L’esthétisme avant tout.
Ennemi numéro 1 Apple et son obstination à refuser les clones
Allié  Les artistes
Principal projet en cours Le système d’exploitation Mac OS X.
Meilleur ambassadeur  Le cinéma Hollywoodien

Le mantra de cette communauté, l’esthétisme avant tout, en dit long sur ses préoccupations.  D’ailleurs le président d’Apple qui a connu le plus de succès dans l’histoire de cette compagnie, en termes de ventes et de rentabilité, est celui qui a misé le plus sur l’esthétisme : Steve Jobs.  L’esthétisme dans la présentation visuel de ses ordinateurs et périphériques, l’esthétisme dans ses publicités et sans oublier les produits qui ont fait sa renommée dans le monde du graphisme dans ses débuts et qui sont nés avec le Macintosh : les logiciels d’art graphique des compagnies Aldus et Adobe (qui acheta Aldus dans les années 90) et l’essor du langage Postscript. 

Les pauvres programmeurs de cette communauté se rappellent d’ailleurs, avec un peu de tristesse, l’arrivée des nouveaux iMac : un bel enrobage cachant un système d’exploitation qui vieillissait très mal, mais qui s’est vendu et a permis à Apple de renouer avec la rentabilité.  Voilà longtemps qu’on leur avait promis un système d’exploitation moderne, mais ce jour n’était pas encore arrivé.

Mais Steve Jobs avait promis un système d’exploitation moderne, ce fut long, mais il tint sa promesse.  Après avoir racheté les actifs de sa défunte NeXT et de son système d’exploitation Unix, les ingénieurs d’Apple ont débuté le long processus, qui pris 4 ans, de conception d’un nouvel OS basé sur le Kernel de NeXT: le Max OS X.  Aujourd’hui, alors qu’Apple est sur le point de tirer la page sur son système d’exploitation traditionnel (Système 9), la communauté jouit d’un système d’exploitation moderne qui rivalise avec Linux; et Apple a probablement réussi ce que la communauté Linux n’a encore qu’effleuré : un véritable gestionnaire de bureau (Desktop) pour Unix à la portée de tous; car rappelez-vous que cette communauté est composée d’une très grande majorité d’artistes.  Coup de chance pour Apple, Microsoft a renouvelé son engagement envers elle et une version de la suite Microsoft Office est disponible pour Mac OS X.

La communauté Macintosh est, d’entre toutes, celle qui a été la première à bénéficier des nombreuses innovations d’Apple ou qui a été la première à goûter aux toutes dernières innovations en matières logiciel et matériel.  Premier ordinateur personnel à posséder une interface graphique à fenêtres utilisant une souris (issue des travaux de Xerox); le premier à utiliser le langage Postscript, à utiliser la technologie USB; Apple a inventé le format QuickTime, TrueType, la technologie FireWire, et j’en passe.  La communauté Macintosh fut la première à faire de l’édition électronique, retouche de photo numérique, et l’édition de vidéo.  Elle fût également la première à pouvoir mettre en réseau ses ordinateurs personnels très facilement, grâce à la technologie « plug-n-play » LocalTalk d’Apple.

 

La communauté Mainframe

Naissance  1946
Langage préféré Cobol
Principe de réutilisation Moyen
Membre typique Les purs et durs de l’informatique
Mantra  On fait tourner le monde des affaires
Ennemi numéro 1 L’environnement micro-informatique clients / serveurs
Allié  Toutes les grosses entreprises de ce monde
Principal projet en cours Le mainframe à la base des affaires électronique
Meilleur ambassadeur  Toutes les grosses entreprises de ce monde

C’est l’anti-esthétisme par excellence, cette communauté est à l’antipode de la communauté Macintosh.

Quand on parle de systèmes en production, il n’y en a pas de plus nombreux que ceux produits par cette communauté; on dit d’ailleurs, et avec raison, que c’est le mainframe qui régit la presque totalité des transactions d’affaires.

Cobol est sans contredit le langage préféré de cette communauté et c’est probablement  le langage de programmation le plus utilisé actuellement.  En effet, il supplanterait aisément le C/C++, Java et Visual Basic.  Selon la firme d’analystes GIGA, il y a actuellement 200 milliards de lignes de code COBOL en production qui sont au cœur des transactions d’affaires de notre monde moderne.  Le mainframe, c’est du sérieux.

En ce qui a trait à la réutilisation, elle est laissée au bon vouloir des programmeurs, car cette communauté ne dispose pas de technologie facilitante dans ce domaine (telle que COM+ ou EJB, par exemple).  On s’en remet plutôt à une réutilisation traditionnelle de fonctions et de procédures qui sont rendues publiques dans un dépôt central.

La mort prochaine de la communauté mainframe a souvent été prédite et annoncée, l’arrivée de l’ordinateur personnel et de ses possibilités client / serveur l’ont fait trembler.  On constate aujourd’hui qu’elle est toujours bien vivante et très loin d’être moribonde; en termes de sécurité, fiabilité et d’extensibilité, le mainframe est imbattable.  D’ailleurs il prend sa place dans le monde des affaires électroniques et d’Internet : c’est la plate-forme idéal pour traiter et conserver les transactions d’affaires.

Comble de l’ironie, IBM a porté, d’abord en tant que défi qui s’est par la suite traduit par un engouement,  le système d’exploitation Linux dans son environnement mainframe, de sorte que les applications Linux peuvent maintenant être utilisées en production grâce à l’extrême fiabilité du mainframe.  Car la communauté Open Source ne peut ignorer ce fait quelque peu gênant : très peu d’applications Open Source / Linux ne sont utilisées en production pour faire tourner des applications considérées critiques.