IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

198PARTAGES

9  1 
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++.

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 ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Jbx 2.0b
Membre chevronné https://www.developpez.com
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.
8  0 
Avatar de JolyLoic
Rédacteur/Modérateur https://www.developpez.com
Le 21/11/2013 à 20:08
Citation Envoyé par Markand Voir le message
Je pense plutôt qu'ils boudent le C.
Je pense qu'une entreprise agit généralement sur des avis plus sérieux et posés qu'une simple bouderie...
Citation Envoyé par Markand Voir le message

Ils disent vraiment ne pas vouloir implémenter le C99, mais à mon avis, le C99 est bien plus simple à implémenter que le C++11 et depuis 1999, je pense que s'ils l'avaient vraiment voulu, ils auraient pu le temps de l'implémenter.
Même s'il est plus simple, le coût d'implémentation n'est pas nul. Chaque fonctionnalité C en plus aurait été faite au détriment d'une fonctionnalité C++. Et ils voient bien plus d'intérêt dans le C++ que dans le C pour leur plate-forme.
Citation Envoyé par Markand Voir le message

Je pense qu'il est évident que C++ est plus adapté à une grosse application moderne, mais le C peut encore servir notamment à la programmation système et drivers.
Cette phrase peut se comprendre de deux manières :
- Le C++ est plus adapté que le C pour développer une grosse application. Je suis d'accord.
- C'est uniquement dans le domaine des grosses applications que le C++ est plus adapté que le C. Là, je ne suis pas d'accord. Même pour de la programmation système et driver, je privilégierais le C+++ au C (certainement en désactivant certains aspects, comme le RTTI ou les exceptions), si sur les plate-formes visées je dispose d'un compilateur C++ de qualité.
5  0 
Avatar de nashouille
Membre actif https://www.developpez.com
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
9  5 
Avatar de arnolddumas
Rédacteur/Modérateur https://www.developpez.com
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.
8  5 
Avatar de Klaim
Membre expert https://www.developpez.com
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.
3  1 
Avatar de Klaim
Membre expert https://www.developpez.com
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........
2  0 
Avatar de JolyLoic
Rédacteur/Modérateur https://www.developpez.com
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...
2  0 
Avatar de Flob90
En attente de confirmation mail https://www.developpez.com
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.
2  0 
Avatar de Nicam
Membre confirmé https://www.developpez.com
Le 03/07/2013 à 9:16
Juste une petite information pour ceux qui l'ignorent, mais les releases de VisualStudio sont fonction des releases du framework .Net.

Ca peut paraître stupide, mais à leur niveau ca a un sens.
D'autant que la plupart des outils de Dev microsoft sont disponibles en version en version express, donc gratuite.

Alors, pour ceux qui ne sont pas impactés par les évolutions du FW .net , les sorties successives de VS.net sont un problème.
Pour les autres, c'est juste capital (exemple : C++.net).
2  0 
Avatar de Médinoc
Expert éminent sénior https://www.developpez.com
Le 03/07/2013 à 10:47
Citation Envoyé par JolyLoic Voir le message
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++.
Et meeeeeeeerde, cet article m'a fait une fausse joie...
Donc, le bras d'honneur de M$ aux programmeurs C est toujours d'actualité?
2  0