Pourquoi Vista est il plus lent que XP ?
Devil Mountain Software a fait des tests pour comparer les deux versions de Windows, avec et sans Service Pack, selon Yahoo News. XP SP3 est toujours plus rapide que Vista SP1, jusqu'à deux fois plus rapide dans certains cas. Et Windows XP SP3 serait 10% plus rapide que XP SP2. Par contre, Vista SP1 ne serait pas vraiment plus rapide que Vista "normal".
"Vivement le SP3" direz-vous, si vous utilisez encore Windows XP. Eh bien vous l'avez déjà, ce SP3 ! Enfin, vous l'avez quasiment si vous utilisez les mises à jour de Windows Update. Car un Service Pack n'est rien d'autre que la compilation de tous les correctifs déjà parus.
Dans tous les cas Vista est plus lent que XP ! Eh bien c'est tout à fait normal. Les nouvelles versions des logiciels (y compris les systèmes d'exploitation) sont généralement plus lents que leurs prédécesseurs, car ils apportent leur lot de nouvelles fonctionnalités, gourmandes en ressources. Souvenez-vous de Visual C++ 6.0 qui compilait un programme à la vitesse de la lumière; Visual Studio 2008 est beaucoup plus lent. C'est ainsi que de nouveaux PC plus puissants sont vendus, qui font vendre de nouveaux logiciels, et réciproquement. Cela fait quelques dizaines d'années que ce serpent qui se mord la queue me permet (entre autres) de manger. Et sans doute vous aussi, avouez !
Vista a de nombreux gadgets et nouvelles fonctionnalités, dont certaines sont gourmandes en ressources. Par exemple, Windows Vista a beaucoup plus d'animations graphiques que XP. Activez l'affichage classique de Vista - sans Aero - et vous gagnerez beaucoup en performance. Aero consomme tellement de mémoire que je me demande si certains gadgets visuels ne sont pas écrits en WPF ! La gestion du réseau de Vista est très différente, la sécurité n'a rien à voir... autant de nouveautés qui coûtent.
Pourquoi (ne pas) migrer vers Vista ?
En fait, si on se pose la question de savoir si Vista est plus lent que XP, c'est que les utilisateurs manquent de raisons pour migrer vers Vista. Sinon on ne se poserait même pas la question. Même si 100 millions de PC ont déjà adopté Vista selon Bill Gates au CES, les utilisateurs migrent moins vite vers Vista qu'ils ont migré vers XP.
Ce qui fait migrer les utilisateurs moyens, et notamment en entreprise, c'est quand ils sont obligés d'avoir la dernière version de Windows pour faire tourner ce logiciel dont ils ont besoin.
Où sont les logiciels qui fonctionnent sous Vista et pas sous XP ? Bonne question. Il ne doit pas y en avoir beaucoup... Quel éditeur serait assez fou pour se priver de la moitié + de son marché ? Quand Adobe ne supportera plus XP, plus personne n'utilisera ce système.
WPF est-il mort ?
Pourtant, dans les conférences Microsoft, quand ils nous parlaient de Vista avant sa sortie, on avait droit à des démos d'impressionnantes applications WPF. Et on se disait : "Vivement Vista qu'on puisse faire des applis démentes". On avait hâte que Vista sorte pour pouvoir proposer des applications avec une interface utilisateur réellement nouvelle. Or ces applications ne sont pas sorties. Pourtant, les technos WPF sont disponibles depuis presque deux ans...
Pour l'instant, faire une application au look Vista, c'est :
- utiliser la police de caractère Segoe UI à la place de Tahoma ou de MS Sans Serif.
- avoir un champ "Recherche" bien en évidence.
- utiliser des boîtes de dialogue type "Task dialog", et des assistants au style Aero.
- reprendre les messages de l'interface utilisateur pour les mettre au goût de Vista.
Pas de quoi fouetter un chat. En plus tout cela est accessible sous XP, et même sous Windows 98 !

WPF est trop lent, trop lourd, et trop gourmand en mémoire. Et encore, il paraît que l'équipe Windows en a bien amélioré les performances et le temps de chargement des applications, avant la sortie de Vista. Est-il possible de construire une application grand public avec WPF, et de la vendre dans le commerce aujourd'hui ? Je demande à voir.
Pour la plupart de leurs applications, y compris pour le Ribbon d'Office, Microsoft utilise une sorte de mini-XAML en code non managé qui s'appelle DirectUI (recherchez sur google). Jamais WPF. Mais ne rêvez pas non plus : DirectUI ne sera jamais disponible au commun des développeurs, car DirectUI est un produit à usage interne, pas suffisamment propre pour que Microsoft puisse le vendre et en assurer le support pendant 10 ans. C'est d'ailleurs pour cette raison que Microsoft a préféré acheter le code source d'un Ribbon à BCGSoft pour l'inclure dans les MFC, plutôt que de publier le leur.
WPF est-il déjà mort ? En fait, WPF est une version 1.0. WPF 2.0 sera - espérons le - plus rapide et moins gourmand : c'est à dire écrit en code natif ! Sinon, nous autres éditeurs d'applications, l'enterrerons dans le même cimetière que le langage Java.
WPF ou Silverlight ?
En attendant que WPF ne sorte un pied de la tombe (ou bien qu'il y mette les deux), Silverlight pointe le bout de son nez. Avant sa sortie officielle, Silverlight s'appelait WPF/Everywhere, souvenez-vous. Silverlight 2.0 (en alpha actuellement) sera une implémentation légère, rapide et compacte d'une partie de WPF.
Comment ? Microsoft aurait implémenté deux fois le support de WPF ? Oui : une fois de manière lente et non optimisée (en code "managed"), et une fois de manière légère et rapide (en code natif). C'est ça Silverlight : un redoutable concurrent de WPF.
Et, pour en revenir à Windows XP, Silverlight tourne bien sûr sous XP...
Cela en fait des modèles de programmation, je choisis lequel pour mes applications ?
Pour faire une application sous Windows, on peut utiliser :
- L'API Windows native (Win32), généralement à travers les MFC ou les ATL. La technologie est ancienne, éprouvée, rapide, mais les programmeurs d'aujourd'hui ne veulent plus coder en C++, ils préfèrent .NET... ! Si vous codez en C++, demandez une augmentation à votre chef, vous le valez bien.
- Windows Forms (.NET 1.0 à 2.0) : cette technologie fonctionne très bien pour les applications de gestion, les application d'entreprise, et également pour les petits logiciels qui mettent en forme le contenu d'une base de données (genre "1000 courriers types" ou "mes recettes de cuisine").
- Silverlight : c'est WPF allégé, écrit en code natif, et donc rapide. Mais Silverlight 1.0 est trop limité (à mon avis), et Silverlight 2.0 encore en version alpha. Silverlight arrivera-t'il trop tard ? Silverlight est apparemment destiné à des applications internet à client riche (RIA), mais il est possible de l'utiliser dans une application classique. Et gageons que les évolutions futures rendront Silverlight plus polyvalent.
- WPF : très complet, très puissant, trop lourd, trop gourmand. Il faudrait (faudra) qu'il soit réécrit en code natif. Vivement WPF 2.0.
En regardant la liste, c'est marrant, on voit tout de suite qu'il y en a un environnement de trop, entre WPF et Silverlight. Ces deux environnements sont deux implémentations très différentes d'un seul type d'application (XAML/C#). Microsoft a développé deux fois la même chose on dirait.
Depuis quelques mois, on dirait que Microsoft a redécouvert qu'ils pouvaient proposer des outils pour développer des applications en code natif. Les nouvelles MFC sont un exemple. Est-ce que la trop grande lourdeur de WPF leur a montré qu'ils étaient allés trop loin dans le tout "managed" ?
Bon, qui vivra verra. En attendant, de nombreux utilisateurs restent sous XP. Microsoft s'en fiche, ils ont payé leur licence Windows. Et les éditeurs n'osent pas encore sortir des applications spécifiques Vista.