Microsoft veut rendre Visual C++ conforme aux standards C++
La roadmap de Visual Studio 2013 inclut le support complet de C99, C++11 et C++14

Le , par Hinault Romaric, Responsable Actualités
Lors de la conférence Build la semaine dernière, Microsoft a publié une préversion de Visual Studio 2013, la prochaine version majeure de son environnement de développement.

Cette version sort pratiquement un an après la publication de Visual Studio 2012, montrant la volonté de Microsoft d’adopter un cycle de libération plus rapide pour l’ensemble de ses produits phares.

Ce nouveau cycle de publication permet désormais à l’équipe C++ de fournir rapidement une prise en charge des normes C++. Herb Sutter, président du comité C++ et employé chez Microsoft, a présenté lors de la conférence Build, la feuille de route de Microsoft pour la prise en charge des normes C++ dans Visual Studio 2013. L’ambition de Microsoft est de conformer Visual C++ à la norme C++11 et au futur standard C++14.

La CTP de Visual Studio offre déjà une prise en charge de plusieurs nouvelles fonctionnalités de C++11, notamment :

  • les opérateurs de conversion explicite ;
  • les constructeurs délégués ;
  • les template variadiques ;
  • les listes d’initialisateur et initialisation uniforme ;
  • les littéraux de chaines (Raw string literals) ;



Longtemps ignoré par Microsoft, le support complet de C99 est au rendez-vous dans Visual Studio 2013. La CTP implémente les fonctionnalités ajoutées à <math.h>, intègre les fonctionnalités mathématiques de l’entête <complex.h>, supporte le type Integer de l’entête <inttypes.h> et des nouveautés qui ont été incluses à <stdio.h> et <stdlib.h>.

La prise en charge de C99 ouvrira l’EDI à de nombreux projets open source qui pourront désormais utiliser Visual Studio sans apporter de changements importants au code source.

Visual Studio 2014 offre déjà une prise en charge des lambdas génériques, des fonctions opérateurs transparentes, de make_unique<T>(args...) et make_unique<T[]>(n) de la future norme C++ 14.

Le reste des fonctionnalités de C++ 11 et de C++ 14, ainsi que certaines fonctions absentes de C++98 seront ajoutées à Visual Studio 2013 avant la sortie de la version finale de l’EDI.

En dehors du support des normes C++, Visual Studio 2013 CTP apporte des améliorations pour la librairie Visual C++, dont l’intégration du SDK REST pour le développement de services REST en C++, une prise en charge améliorée de C++ AMP, de nouvelles API pour la création des taches PPL et une meilleure prise en charge du débogage asynchrone.

Coté performance, les applications C++ bénéficieront des optimisations des modèles pour rendre le code plus rapide, d’une amélioration de la qualité de code pour les plateformes ARM et Atom, la prise en charge de la mémoire partagée pour C++ AMP et bien plus. Pour rappel, C++ AMP (Accelerated Massive Parallelism) est une technologie conçue pour aider les développeurs C++ dans la conception d'applications parallèles utilisant le GPU.

En ce qui concerne la productivité, Visual Studio possède d’importantes améliorations pour aider le développeur à être plus productif lorsqu’il code en C++. Il s’agit des améliorations de l’autocomplétion, le formatage automatique du code pour une meilleure lisibilité, la résolution automatique des références, un meilleur temps de génération des applications et bien plus.

Il faut noter également des améliorations du débogueur, du diagnostic du code, un meilleur support graphique et du débogage GPU.

Une panoplie de nouveautés qui ne pourront que séduire les développeurs C++.

Télécharger Visual Studio 2013 Preview

Sources : MSDN, ars technica

Et vous ?

Que pensez-vous de cette feuille de route ?

Utilisez-vous Visual Studio pour vos développements en C++ ?

Êtes-vous séduit(e) par ces nouveautés ?

Quelles fonctionnalités de C++14 aimeriez-vous que Microsoft prenne en charge en premier ?
Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Jbx 2.0b Jbx 2.0b
http://www.developpez.com
Membre chevronné
le 02/07/2013 15:33
Personnellement, si je pense qu'on ne peut que se réjouir de la volonté de Microsoft d'être conforme aux standards (surtout que cela n'a pas toujours été leur priorité, on se rappellera tous de Visual C++ 6.0 par exemple...), j'ai un peu de mal à comprendre l’intérêt commercial de sortir une version de Visual Studio par an.

Pour exemple dans ma boîte, on travaille sur un projet depuis un peu plus de 2 ans. Celui-ci a été initié avec Visual Studio 2008. Récemment on a réfléchit à l'éventualité de passer à Visual Studio 2010. Déjà, la conversion de la solution s'est révélée assez couteuse en temps. A cela il faut ajouter la mise à jour des environnements de travail de l'ensemble des développeurs (Réinstallation de Visual sur l'ensemble des machines de dev, des plugins genre Visual Assist, des versions de Qt associées...) et du déploiement des runtimes sur les machines de tests. Et la perte de productivité induite par un changement de version (raccourcis, menus et fonctionnalités qui changent...). Et cela sans compter le prix du produit. Pour un gain finalement très faible, la majorité des développeurs utilisant peu les fonctionnalités avancées de Visual Studio, et préférant même des outils annexes pour la détection des fuites mémoires (Visual Leak Detector), de code mort (Cpp-Check)... Et pour être franc, peu se soucient des dernières avancées du langage, et ceux que ça intéresse savent au moins comment s'en passer.

Tout ça pour se rendre compte finalement qu'un Visual Studio 2012 est à peine sortit et qu'un 2013 va suivre.

A contrario, nos portages sous Linux sont effectués sous QtCreator, qu'on hésite rarement à mettre à jour. Les changements sont progressifs, on a pas de modifications brutales de plusieurs fonctionnalités. Le coup de déploiement est faible voir nul. Et tout ça pour la modique somme de 0 €.

Bref, dans le monde de l'entreprise, changer ses outils de développement tout les ans me semble une hérésie. Microsoft devrait plancher sur des cycles de développement plus long (3 voir 4 ans) et en même temps être sur de respecter les standards (car qui peut le plus peu le moins). Ils pourraient alors forcer sur les nouvelles fonctionnalités, qu'on ai l'impression d'en avoir pour notre argent. Ou alors s'inspirer d'un système de mise à jour plus soft proche de l'open-source, par exemple avec un système d'abonnement.
Avatar de arnolddumas arnolddumas
http://www.developpez.com
Rédacteur/Modérateur
le 02/07/2013 16:07
C'est clairement du foutage de gueule de sortir une nouvelle version de Visual Studio alors même que C++11 n'est pas encore supporté.
Je remarque que les compilateurs libres et gratuits tels que gcc et clang ont un support total du C++11, tellement complet que les développeurs trouvant le temps long, ils commencent à implémenter C++14.
Avatar de Klaim Klaim
http://www.developpez.com
Expert Confirmé
le 02/07/2013 16:11
Jbx 2.0b, le truc a realiser, c'est que tous le monde n'a pas les contraintes comme les tiennes (j'ai ete dans des boites avec et sans ce types de contraintes).

Du coup, en donnant un maximum de mises a jours rapidement, cela permet a tout le monde de choisir la version qui lui va, en profitant des dernieres avances si tu le souhaites, ou en choisissant la stabilitie si ca t'arranges.

Note que c'est la meme chose avec tout ce qui est isole: la version de l'OS, la version des outils, etc.

Le seul cas ou tu as besoin d'etre a jour tout le temps c'est quand tu travailles avec des outils qui sont exposes constemment a des problemes de securite et ont besoin d'etre toujours a jour de maniere plus ou moins synchrone (une update d'un serveur dois forcer la mise a jour des clients ASAP).
C'est le cas par exemple des browser.

Tu remarqueras que Microsoft ne sort des Visual Studio nouveaux qu'en meme temps que des upgrades de Windows.

Note a l'auteur de l'article: Il y a un "Visual Studio 2014" qui doit etre une erreur de frappe...ou un souhait sous-jacent d'avoir un VS deja conforme C++11?
Avatar de Klaim Klaim
http://www.developpez.com
Expert Confirmé
le 02/07/2013 16:14
Citation Envoyé par arnolddumas  Voir le message
C'est clairement du foutage de gueule de sortir une nouvelle version de Visual Studio alors même que C++11 n'est pas encore supporté.

Ca n'a rien a voir avec la version du C++ fournie (c'est la meme chose avec les autres languages et outils lies a Visual Studio). Ca a avoir avec la plateforme, a savoir Windows, qui passe en version 8.1.

Je remarque que les compilateurs libres et gratuits tels que gcc et clang ont un support total du C++11, tellement complet que les développeurs trouvant le temps long, ils commencent à implémenter C++14.

La version de base que tu as avec un compilo est directement liee a la version de l'OS.
C'est pas parcequ'ils trouvaient le temps long mais bien parceque les features accceptes dans C++14 sont maintenant previsibles. Il se peut que les implementations de ces features ne correspondent pas au standard qu'on aura l'annee prochaine, donc attention.
Avatar de nashouille nashouille
http://www.developpez.com
Membre actif
le 02/07/2013 16:31
Microsoft le roi de la presse a billet avec cinq ans de retard dans tous les domaines.
Vive le monde du libre
Avatar de arnolddumas arnolddumas
http://www.developpez.com
Rédacteur/Modérateur
le 02/07/2013 16:47
Citation Envoyé par Klaim  Voir le message
Ca n'a rien a voir avec la version du C++ fournie (c'est la meme chose avec les autres languages et outils lies a Visual Studio). Ca a avoir avec la plateforme, a savoir Windows, qui passe en version 8.1.

Ce que je veux dire, c'est qu'avoir un support complet du C++11 me parait beaucoup plus important qu'une nouvelle version. Une nouvelle version, ça coûte cher à l'entreprise, en temps et en argent. Bref, passer à un cycle d'un an seulement, ça ne me parait vraiment pas prioritaire.

Quand à la boutade à propose du C++14, eh bien c'était une simple boutade.
Avatar de Klaim Klaim
http://www.developpez.com
Expert Confirmé
le 02/07/2013 17:00
Ok mais le C++11 est pas la priorite de tous les developeurs qui payent Visual Studio, or c'est une gross priorite mais pas la seule. Si ils avaient attendu d'avoir C++11 en entier ca serait ridicule vu le boulot qu'ils ont a faire (Herb a dis qu'ils n'avaient pas d'AST ce qui signifie, en gros, que leur implementation etait trop peu flexible pour ajouter facilement des features de language).

Bref, des le moment ou c'est une entreprise qui fait un produit, et que ce produit n'est pas seulement une feature, ben les prioritees divergent de quand le produit est open source et ne fais globalement qu'une chose (parceque GCC ce n'est qu'un compilateur).

Donc en gros, en admettans qu'ils ne fassent pas une update de Visual Studio mais qu'ils update uniquement le compilateur et le fournissent des que C++11 est implemente, il reste le probleme que ca prends longtemps juste a cause de la base de code du compilateur avec laquelle ils travaillent.

En fait je pense que l'insistance d'Herb Sutter a faire noter a son equipe et aux autres devs de compilateurs l'interet de jetter un oeil a Clang viens du fait que Clang montre comment resoudre leurs problemes a eux. Et comme je viens de le pointer, visiblement ils sont en train de corriger leur architecture pour regler le probleme sur le long terme (ce qui est sacrement couteux en temps, comme tout changement au niveau architecture).
Et je parle meme pas du fait que genre la SL est implementee/geree par une toute petite equipe....

Donc bon, moi aussi je suis decu, mais ca ne m'etonne pas du tout (en voyant ou ils en etaient avec VS2012) parcequ'on pouvait facilement predire qu'ils auraient pas tout C++11.

Par contre, moi je note quand meme qu'ils comptent fournir une implementation de async/await ce qui resoudrait pas mal de problemes que j'ai actuellement dans mon code hautement concurrent. Et ca ca me fait rever.

Bon en meme temps elle est pas encore dispo........
Avatar de JolyLoic JolyLoic
http://www.developpez.com
Rédacteur/Modérateur
le 02/07/2013 18:04
Je n'ai pas le temps de répondre à tout, mais pour ce qui est du support complet de C99, ce n'est pas, ça n'a jamais été, et ce n'est pas prévu que ce soit au programme.

Ils ont juste ajouté quelques fonctionnalités qui leurs semblaient avoir un bon rapport gain/coût, mais il n'est pas dans leurs objectifs de supporter les dernières normes C, contrairement aux normes C++.
Avatar de JolyLoic JolyLoic
http://www.developpez.com
Rédacteur/Modérateur
le 02/07/2013 18:08
Citation Envoyé par arnolddumas  Voir le message
Je remarque que les compilateurs libres et gratuits tels que gcc et clang ont un support total du C++11, tellement complet que les développeurs trouvant le temps long, ils commencent à implémenter C++14.

C'est faux. Par exemple, ils ne supportent pas encore correctement les regex qui sont pourtant dans le langage depuis 2007...
Avatar de Flob90 Flob90
http://www.developpez.com
Membre Expert
le 02/07/2013 18:50
Citation Envoyé par JolyLoic  Voir le message
C'est faux. Par exemple, ils ne supportent pas encore correctement les regex qui sont pourtant dans le langage depuis 2007...

Je suis assez d'accord avec ca. Et l’inertie des compilateurs C++ est à mon avis tout autant liés à l'inertie du langage que des outils en soit (*) (que ce soit Visual Studio ou GCC). La tendance semble changer, à la fois le langage et les compilateurs, semblent s'orienter vers des cycles plus courts, ce qui est une bonne chose en espérant que ça n'introduise pas plus de problèmes que de fonctionnalités (à cause d'un éventuelle manque de recul pour évaluer les fonctionnalités et les implémenter).

(*) Exception faite pour clang, qui étant donné son jeune age comparé à gcc et Visual Studio, offre un nombre de fonctionnalités respectables.
Offres d'emploi IT
Senior Portal Developer (Brussels) H/F
CDI
BULL FR - Belgique - Brussels
Parue le 24/06/2014
Développeur web h/f
CDI
CRESCENDO VAISE - Rhône Alpes - Lyon (69000)
Parue le 27/06/2014
Administrateur réseaux it h/f
CDI
Hudson - DOM-TOM Nouvelle Calédonie - Nouvelle-Calédonie
Parue le 02/07/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula