sound

Petite douceur...

©Matthijs Douze Bill : un grand nain puissant

  Il est de bon ton, actuellement, de mépriser les logiciels de Microsoft. Je suis moi-même un adepte enthousiaste de ce sport exaltant, et je vous propose ici quelques arguments qui vous permettront de le pratiquer sans peine auprès de vos amis trop raisonnables.

  Récapitulons brièvement quels sont les défauts des différentes productions de la firme de Bill :

  C'est la critique la plus communément employée dans les discussions. Pourquoi ? Parce qu'elle est justifiée.
  MS-DOS dans sa dernière version (6.22) fut sans doute le dernier OS stable que Microsoft ait produit. Cela était dû à son manque d'ambition : il restait sagement en mode réel, ne touchait pas aux graphiques, ne necessitait pas de drivers compliqués. Aux applications de prendre des risques.

  Alors arrive Windows (3.x), qui fait du mode réel, et du protégé. Mais il est toujours en 16 bits. Pourquoi en 16 bits, alors qu'il ne tournera de façon satisfaisante (question vitesse) qu'à partir d'un 386 ? À mon avis, les ingénieurs de Microsoft n'avaient pas envie de se casser la tête à ce sujet, pas le temps de ré-écrire le code de Windows 2 pour cause d'échéances commerciales.
  Le mode protégé perd beaucoup de son interêt si on ne peut pas utiliser des adresses sur 32 bits. D'où Win32s, une collection de DLLs sensées jouer les diplômates entre les applications 32 bits et le kernel.

  Nous voici donc avec deux versions de Windows (réel et protégé) + une librairie indispensable pour utiliser l'ordinateur. Ajoutez à cela que Windows prétend exécuter aussi les applications DOS, en repassant en mode réel s'il le faut, et ceci sous fond de "multitâche non-préemptif" (i.e. c'est pas du multitâche, mais on peut charger plusieurs applications à la fois).
  En plus, il n'y a pas d'interface uniformisée pour les drivers, donc ceux-ci s'incrustent plus ou moins profondément dans le système, à des endroits imprévisibles, et s'exécuteront peut-être. En effet, pour cause de "confort d'utilisation", Microsoft croit bon ne pas laisser l'utilisateur configurer quoi que ce soit. Les drivers qu'il produit sont des exemples de "plug & pray" : si ça marche pas, y'a rien à faire.
  Il est évident qu'avec un système pareil, les plantages s'accumulent. Installer un nouveau driver est un calvaire. Quand on travaille sur un projet, mieux vaut faire un backup toutes les 10 minutes.

  Windows 95 / DOS 7 ne change pas grand chose. Il est majoritairement en 32 bits (enfin, 8 ans après le 386), et il supporte les noms longs. Les noms longs ? Il y a des entrées spéciales dans une fat16 (de chez DOS) dans lesquels ils sont codés. Un bidouillage pour continuer à supporter les anciennes applications. Mais on n'a pas accès aux noms longs sous DOS, à moins d'utiliser Norton ou 4Dos (pas made by MS). La fat32, le système de fichiers venu avec une version plus récente est basée sur le même principe, mais il est devenu quasiment impossible de travailler sous DOS (manque de conventionnelle). Win95 supporte aussi le plug & play, sensé simplifier la vie des néophytes. Conclusion : avant, pour installer une SB32 il fallait configuer l'IRQ, les DMA, les ports; et maintenant, il faut en plus faire gaffe à ce que le PNP ne rende pas inutilisable la carte réseau en la cachant.
  Voici un bug que j'ai trouvé et qui vaut bien le détours d'en parler quelques instants : Voilà quelques temps, à l'époque où j'avais encore la foix en Win95, je décidais de le réinstaller, à cause d'une erreur dans la base de registres - la base de registre, encore une géniale invention de Bill ! - qui m'avait bousillé mon arborescence de fichiers, et donc m'avait fait perdre moultes fichiers précieux. Heureusement, j'en gardais toujours une copie sur une second disque dur géré par MS-DOS 5... Ne faisant pas les choses qu'à moitié, je repartitionne et reformatte mon disque avec les commandes fdisk et format si généreuseument fournis sur le CD-ROM d'installation de Win95. Quelle ne fut pas ma grande surprise, au stupeur et stupéfaction, d'avoir en face de moi, au moment crucial où Win95 se lance pour la première fois après l'installation, un beau et magnifique écran bleu, où, entre les caractères pseudo cyrilliques, j'ai pu lire des phrases sybillines m'expliquant que mon contrôleur de disque SCSI rentrait en confict avec mon CD-ROM, ou quelque chose comme ça. Mon PC datant de 1994, n'est pas équipé de carte SCSI ! Conséquence : mon système de fichiers était géré en mode "compatible MS-DOS", càd, pire que la FAT16 améliorée de Win95. Les fichiers d'aide m'expliquaient que cela n'était pas grâve, provoquant au pire, un ralentissement de la gestion !... Ils sont pas gonflés les gars de chez Microsoft ! Solution maison au problème : j'ai repartitionné et reformatté avec les versions de fdisk et format du MS-DOS 5 avant de tout réinstaller Win95, en prenant soins de désactiver au maximum les fontions de recherche et d'installation automatiques de périphériques - c'est ça aussi les joies du Plug and Pray ! Il n'y a plus eu aucun problème et Win95 semble bien se comporter depuis.
  Microsoft s'est rendu compte que cette horreur ne pourait pas être utilisée par des informaticiens. Il crée donc Windows NT. Par mesure de sécurité, il supporte (actuellement) moins de la moitié des matériels supportés par la version normale. Pas de PNP, pas d'économie d'énergie, trop dangeureux. Est-il plus stable pour autant ? Oui : on peut s'attendre à un plantage par jour sur un serveur en utilisation intensive. Pourquoi ? Des fuites de mémoire qui finissent par bloquer le système, apparement. Des erreurs due à une programmation peu soigneuse. Pour réinitialiser un système sous Windows, il faut éteindre le PC (ça peut parraître normal, mais ça n'est pas le cas sous Unix).

  Les applications de Microsoft ne valent guère mieux. Je ne peux pas en dire grand chose (je les utilise peu). Je cite simplement Fabrice (à propos de son projet) : "j'ai 64M de ram, 200M de libre sur le disque, et Word m'a dit : pas assez de mémoire pour faire ceci".
  Pour pallier aux insuffisances du système, d'autres sociétés (Norton, par exemple) se proposent de remplacer des modules de Windows (antivirus, désinstalleur). Là aussi, on s'incruste à l'intérieur, on remplace des DLL, en rendant le tout moins stable et plus lent. Ceci nous ammène à :

  Un des problèmes de Windows 95, c'est qu'il est gourmand en ressources. En le lançant, il a besoin de 12M de RAM (25M pour NT). Evidemment, quand il manque de place, il en swappe une partie sur le disque dur. Il est donc impossible de l'utiliser correctement avec 16M de Ram. Mais même avec 48M de Ram, il rame. Pourquoi ? Le multitâche est mal géré. Les accès au disque dur bloquent le système, ainsi que le CD-ROM. Windows perd son temps à afficher des fenêtres et à les rafraîchir sans nécessité.
  Un news parlait des performances comparées de NT et de Linux. Linux était dans l'ensemble plus rapide. Alors qu'on compare un OS écrit pour une machine particulière, sans doute partiellement programmé en asm, à un OS portable, écrit en C, dont le compilateur (gcc) n'est pas très performant.
  La pathologie dont souffre Windows est très grave : il est mal programmé.

  Ici, on rentre dans une partie plus subjective. Je veux en fait dire que Windows rend bête. Quelqu'un qui sait utiliser Windows ne connait pas les ordinateurs. J'ai rencontré des enfants (post-DOS) qui avaient l'impression sincère de savoir utiliser un ordinateur : "mais oui, je clique en bas, et ça marche". Mais quelqu'un qui veut configurer mieux son ordinateur ne peut rien faire. La documentation présente exclusivement l'aspect extérieur du système. On ne parle pas de fichiers de configuration, on ne dit pas à quoi servent les DLL. Quelques mois après l'installation de Windows, pour peu qu'on ait essayé quelques applications et si on les a désinstalées, les répertoires \windows et \windows\system sont remplis de fichier orphelins. Donc, on reformatte et on réinstalle. La base de registres se remplit. La base de registres : une invention de Microsoft (si !). C'est un super-fichier de configuration, binaire, chargé lors du lancement de Windows. Toutes les applications on le droit d'y mettre leur "entrée" : des références à des fichiers, des paramètres de configuration, et même des blocs de données. Elle peut devenir énorme (2M), au moins 70% de ce qu'elle contient est inutile. C'est idiot en ce sens que si on ne peut pas démarrer Windows, elle n'est pas éditable sous DOS. L'appellation "mode sans échec" que donne Microsoft à son démarrage de Windows avec le minimum de drivers est optimiste. Quand la base de regitres est abîmée, il ne reste plus qu'à réinstaller.
  Le fait de communiquer avec le système en cliquant sur de icônes (quel nom !) au lieu de formuler des lignes de commande s'apparente au langage d'un bébé comparé au français. C'est répétitif, pauvre et aliénant. C'est une solution de paresse. Je pense qu'on doit le succès de NT actuellement à de la paresse. Les ingénieurs-système ne veulent plus configurer correctement un système et se laissent avoir par Windows, cher, lourd, mais joli et reposant. Les ultilisateurs n'imaginent même pas que "commandes MS-DOS" veut dire shell, et l'ignorent en se disant que c'est dépassé.
  Les produits culturels de Microsoft ne volent pas, eux non plus, très haut. Encarta est un dico superficiel et raccoleur. Flight Simulator est une espèce de voyage touristique plein de lieux communs mal rendus.

  Windows 95 coute 600 francs, NT coute plus de 1000 francs, NT serveur 5000 francs de plus. Office coute 6000 francs (1000 francs en update). On touche un point sensible car c'est la fortune de Gates. Il n'est pas anormal pour un OS de couter ce prix. Mais Microsoft a tellement vendu d'exemplaires de celui-ci qu'il doit faire 550 francs de bénéfice sur chaque boîte. Certains pourraient dire que c'est de la "bonne politique commerciale". Mais quand on voit combien le public est captif de ce soft, on peut dire que cette position est abusive. C'est encore plus vrai pour Office, dont Microsoft ressort chaque fois une nouvelle version légèrement améliorée qu'il vend comme si au lieu d'un pack mal ficelé de logiciels buggés c'etait une application novatrice et professionnelle. À ce régime, c'est presque du civisme que de le pirater.

  Stop, on arrète le massacre. Encore quelques considérations plus générales sur la politique de Microsoft.
  Aux États-Unis, on considère que c'est une réussite du modèle américain. Je pense que chez ces gens simples, le raisonnement est comme suit :
  Microsoft est riche => les gens achètent leurs produits => ce sont de bons produits => j'achète Microsoft.
  Ce cercle vicieux ne pourra être cassé que si Gates s'avère être pédophile, ou cocaïnomane, ce qui discréditerait ses produits. Vu sa tête de premier de la classe, c'est mal parti.
  Microsoft a une image d'inovateur aux yeux du grand public. Alors que, malgré les efforts et les moyens financiers qu'il met dans la recherche, est très faux. À mon avis, c'est du à l'esprit de l'entreprise, instauré par Gates : on travaille comme des bourrins, on programme vite et mal, on ne cherche pas à comprendre ou a imaginer et on pense à la prochaine version de Windows. Je vous mets au défi de me citer une invention de Microsoft.

  Steve Jobs, de chez Sun, essaie d'attaquer Microsoft par le biais de IE. À mon avis, l'argument est techniquement ridicule. Ce qu'il pourra atteindre est peut-être de dévaloriser un peu l'image de la firme de Bill auprès du grand public.
  Il me semble qu'un des gros problèmes est qu'il n'y a pas d'alternative crédible à Windows sur PC. En effet :

  Ces deux derniers représentent peut-être un espoir ? Après, y'a le Mac, mais je ne prétends pas qu'il ne plante pas.

  En conclusion je dirais que Microsoft fait les plus admirables (si on aime ça) opérations commerciales basée sur des produits insipides et avariés. Micorsoft est la première entreprise grand-public informatique, et c'est effrayant ce que la démocratisation de celle-ci a engendré. J'ajouterais que windows N'EST PAS un environnement de développement. Il ne nous est donc pas destiné.
  Si on doit absolument développer pour cet OS, on peut minimiser le temps effectivment passé dessus en programmant tous les algos sous Unix. Subsiste le problème de l'interface, moins portable en général que les languages eux-mêmes. Quelques voies :

  1. programmer en Java. La librairie standard du language définit de manière assez propre les primitives graphiques, comme les fenêtres, les boutons, les champs... Un des rôles de Java est d'ailleurs de contrer l'hégémonie de Microsoft.

  2. utiliser des libriaries d'interface portables (comme Motif par exemple)

  3. pour des applis en plein écran, qui se servent directement de la souris, du clavier, du joystick, on peut utiliser DirectX. DirectX permet de s'abstraire du hardware pour ce qui est du son et de la vidéo. Ceci permet au programmeur de s'en soucier le moins possible. Et ça marche plutôt bien... Quake, pour ne pas le citer, a été développé sur Alpha et porté sous Windows ensuite.

  Je ne pense pas, comme tant d'autres, que le couple Wintel ait gagné la guerre commerciale autour de l'informatique. Microsoft est maintenant au sommet de sa gloire et de son arrogance. Il n'est pas impossible, vues ses maladresses chroniques, qu'il rentre dans le rang, comme le fit IBM dans les années 80. Les commentaires acides que nous pouvons faire sur ses logiciels hâteront cette oeuvre de salubrité publique !
  Si vous ne pensez pas comme moi, ou si vous avez des commentaires sur les détails techniques, mailez moi (Matthijs.Douze@depinfo.enseeiht.fr).

Article paru dans le Sun7 (journal des élèves de l'ENSEEIHT), du mois de Mai 98.

All rights reserved

  Voici un expert émérite en la matière, j'ai nommé : Monsieur le professeur Roberto Di Cosmo, Maître de Conférence à l'École Normale Supérieure de Paris. Et oui, à son niveau, c'est un Monsieur...

  Mais qu'en pense exactement la loâ ? Une réponse tout de suite de notre correspond permanent à la Direction Régionale de la Concurence, de la Consommation et de la Répression des Fraudes... la France, le pays de toutes les libertés... just keep going !


[Sommaire]