Lors de la conférence de presse donnée le 6 février dans le cadre des TechDays, Bernard Ourghanlian, directeur technique et sécurité de Microsoft France passait en revue les différents défis auxquels l'informatique devra faire face à l'horizon 2020. Parmi ces défis, le changement de paradigme dans l'évolution des processeurs, basculant de la course au gigahertz aux architectures multicoeurs. Pour accompagner ce nouveau paradigme, la programmation parallèle s'impose comme une nécessité. Une programmation difficile comme le souligne la présentation, qui manque encore d'outillage et de compétences. Pour répondre à sa manière à cette complexité du développement parallèle, Microsoft travaille sur un projet de système d'exploitation, Singularity. L'idée est de s'appuyer sur une architecture micro-noyau pour améliorer la résilience du système et vérifier à tous les niveaux, mais surtout d'utiliser des langages de programmation sûrs - c'est-à-dire managés pour Microsoft - donc typiquement du C#. Si l'idée sur le papier semble séduisante, il faut constater que les architectures multicoeurs sont bel et bien là aujourd'hui et qu'il faut les programmer. C'est sans doute dans cette urgence que le consortium C++ tente d'accélérer le processus de standardisation de la future version du langage C++0x, la très attendue version 2.0 du standard ISO C++ (0x désignant le futur millésime, le dernier datant de 1998 étant estampillé C++98). C++ a depuis longtemps été utilisé pour écrire des systèmes multi-threads, mais il n'y a aucune standardisation pour le support de la programmation parallèle. Elle a été jusqu'alors implémentée par des fonctionnalités et des bibliothèques spécifiques à une plate-forme, non portables et souvent incomplètes. Le comité de normalisation du C++ se réunit depuis 2005 pour pondre le nouveau standard qui pourra alors être publié en 2009. Bob Sutter, membre du comité et architecte chez Microsoft, a cependant annoncé sur son blog une accélération fulgurante du processus. Le premier draft partiel a été publié et le comité envisage une publication complète avant la fin 2007 ! Sur ce blog, Bob Sutter retrace l'historique de C++0x et présente les fonctionnalités qui seront attendues dans le nouveau standard. On y trouvera tout d'abord les « concepts », un système de typage pour templates rendant ces derniers plus faciles à utiliser et à écrire. On y trouvera un ramasse-miettes que les développeurs pourront utiliser à la demande. On verra également un nouveau modèle de mémoire pour le parallélisme et surtout des bibliothèques standard pour gérer les threads et le parallélisme. Les dates ayant été avancées, d'autres fonctionnalités prévues ne seront plus dans le standard 2007 (les modules, les bibliothèques dynamiques). Objectif : un draft public complet pour le 6 octobre 2007.