J'entends parler de la popularité du C ++ moderne et certains parlent de la migration vers C ++ à partir de C # ou d'autres langages de type C.
Je connais les fonctionnalités de C ++ 11, mais j'aimerais connaître votre expérience, en particulier celle de développeurs qui ont migré de C # vers C ++.
Plus important encore, est-ce que Microsoft incite les développeurs à utiliser le C ++? Si oui pourquoi?
Réponses:
Oui, vos soupçons sont corrects. Microsoft pousse le C ++ à revenir et à devenir plus populaire.
Je ne le trouve pas pour le moment, mais j’ai vu il y a quelque temps un exposé présenté par l’un des gros joueurs de Microsoft. L’ensemble était destiné aux développeurs et portait sur le déploiement de Windows 8 et en particulier de WinRT (le remplacement du framework .NET également). comme API Win32).
Il avait une chronologie dans laquelle il expliquait comment diverses pressions influaient sur la technologie à la mode à certains moments. Donc, au début, les gens voulaient de la vitesse, ils ont donc tous codé en C / C ++ (deux langages distincts). Au fur et à mesure que le matériel informatique devenait plus rapide, l'accent a été mis sur la vitesse d'exécution plutôt que sur la vitesse de développement. Les langages de niveau supérieur sont donc devenus beaucoup plus populaires.
Cependant, l’accent est de plus en plus mis sur les ordinateurs mobiles et basés sur ARM (Windows 8 est la première version de Windows à être compilée pour ARM) et beaucoup pensent qu’ils vont devenir beaucoup plus populaires et, pour certains, remplacer complètement le poste de travail. Donc, l'accent est mis (du moins aux yeux de Microsoft) sur le C ++, car nous tenons maintenant à la vie de la batterie. Code de niveau supérieur = plus d'instructions = plus de jus requis.
Pour prendre en charge cette transition vers le C ++, ils ont introduit une toute nouvelle API de programmation Windows 8, appelée WinRT (la dernière fois que j'ai vérifié, c'était de toute façon le nom). Cette API suit le thème du .NET Framework dans le cadre des fonctionnalités qu’elle fournit, mais elle sera disponible pour tous ceux qui codent en C ++ (via les interfaces COM), en C # ou même en Javascript pour ceux qui souhaitent écrire des applications HTML 5 / Javascript. Ils apportent également la technologie XAML (la technologie utilisée par WPF, leur plus récente infrastructure d'interface utilisateur) en C ++.
Donc, pour moi, cela indique en quelque sorte que Microsoft met davantage l'accent sur le C ++ que par le passé.
MISE À JOUR # 1:
Comme je viens juste de recevoir un badge "bonne réponse", j’ai pensé que je devrais peut-être revenir et a) clarifier quelques points et b) contenter la police qui vérifie les faits, car comme nous le savons tous sur les forums technologiques, tout ce qui est inexact pourrait entraîner des guerres. qui durent des années.
WinRT ne remplace pas le framework .NET, mais constitue une autre alternative aux développeurs MS Windows. MS encourage vivement les utilisateurs à aller dans cette direction. Il semble (maintenez vos flammes si cela n’est pas précis à 100%) que WinRT était principalement destiné aux applications d’interface utilisateur moderne, bien que les applications de bureau classiques puissent également en tirer parti. Cela dit, MS insiste vivement pour que les gens passent à l'écriture a) des applications d'interface utilisateur modernes et b) commencent à utiliser WinRT de manière à ce que le pourcentage de personnes utilisant le framework .NET se modifie.
C ++ ne remplacera JAMAIS les langages de niveau supérieur tels que C # ou Python. Tout comme ces langages ne remplaceront JAMAIS le C ++. C'était probablement la partie la plus controversée de la question d'OP. Mais tout est question d'équilibre et les faits sont les suivants:
Donc, pour conclure: Oui, MS pousse le C ++ à revenir, de sorte que sa popularité va probablement augmenter. Non, C ++ ne remplacera jamais C #.
Mise à jour # 2:
Je ne sais pas pourquoi mais la communauté technique a tendance à voir les choses en termes très absolus noir / blanc lorsque la réalité est pleine de nuances de gris. Ceci est une réponse à plusieurs nouveaux commentaires qui ont été ajoutés à ce post:
Le framework .NET ne disparaîtra pas de sitôt (ou jamais). Presque toutes les technologies que Windows possédait depuis les années 90 existent toujours, sous une forme ou une autre. Donc, pour ceux qui sont si attachés au .NET Framework: a) ne vous inquiétez pas de sa disparition et b) arrêtez de vous disputer en sa faveur, comme si votre vie en dépendait, votre API est sûre.
WinRT réimplémente de nombreuses fonctionnalités fournies auparavant par les API Win32 et .NET Framework. Les personnes qui veulent cette fonctionnalité auront le choix si elles veulent utiliser WinRT, le framework .NET ou continuer avec l'API Win32 (ce n'est pas mort non plus). Si WinRT ne prend pas en charge la création facile d'applications Web aujourd'hui, il y a de fortes chances qu'il les prenne en charge à l'avenir.
La position annoncée par Microsoft est que WinRT est un grand framework qui donne à Microsoft une chance de commencer avec une table rase et de construire une API utilisant les leçons apprises dans l'API Win32 et le framework .NET lui-même. J'ai essayé de chercher cette vidéo et je ne le trouve toujours pas, mais l'une des choses mentionnées par l'orateur est qu'il y a certaines zones du .NET Framework qui auraient pu être définies mieux / plus simple / plus propre et WinRT expose cette même fonctionnalité. dans cette nouvelle interface de nettoyage.
la source
Full
profil .NET et 'WinRT'. Le profil .NET, les principales différences sont de nombreux éléments mal implémentés il y a 10 ou 15 ans ont été supprimés et remplacés par un code mieux conçu. Jusqu'à ce qu'ils se débarrassent de la bibliothèque Win32 tous ensemble. NET est là pour rester. Votre commentaire révèle un manque de connaissances COMPLET et TOTAL en ce qui concerne les langages .NET et C #.Non, Windows 8 consiste à utiliser la langue dont vous avez besoin pour (ou savoir) faire le travail. JavaScript, les langages .Net (C #) et C / C ++ sont tous pris en charge de manière égale.
Rien n'est en train d'être remplacé et, finalement, c'est aux développeurs de décider. Cependant, WinRT facilite les choses pour une meilleure durée de vie de la batterie.
L'exception concerne les jeux pour lesquels C ++ bénéficie d'un soutien accru, en particulier sur Windows Phone 8, alors que les langues gérées ne prennent en charge aucun support natif (autrement dit, aucun xna).
la source
Il est risible de penser que les gens préfèrent le C ++ au C # (ou à peu près tout autre produit de substitution post-1990 [non-php]) pour la programmation générique . C ++ 11 ajoute de bons éléments manquants, mais il s'agit toujours de clouer les jambes à un chien .
Le C ++ a de bonnes niches et reste la meilleure option sur certaines plates-formes avec un support limité du compilateur. Mais non, le C ++ moderne n’est pas près de remplacer quoi que ce soit, sauf peut-être un C ++ obsolète et cassé.
la source
DXM a écrit:
Selon ces mots, choisir Java comme langage / framework principal pour Android de Google était une erreur. Ce n'était pas. Un langage de niveau supérieur signifie généralement que les choses se passent plus vite et je pense que c'est la chose la plus importante pour Microsoft et Google. Plus les applications créées pour la plate-forme sont nombreuses et performantes, plus le producteur de système d'exploitation en profite.
D'autre part, de nombreux logiciels pour Windows sont encore écrits en C ++. Il serait donc insensé de pousser ces développeurs à basculer vers C # / JavaScript / toute autre option. Microsoft se concentre sur la possibilité de développer des applications Win8 pour autant de développeurs que possible. C'est pourquoi, à mon avis, ils ont décidé de prendre en charge C ++ et JavaScript dans la pile de développement Win8.
la source
Le C ++ a toujours des fichiers d'en-tête, des préprocesseurs flexibles (#define), ... de telles choses que certaines personnes ont considérées comme étant "mauvaises" ou "difficiles à gérer".
C #, d’autre part, utilise des métadonnées, pas besoin d’écrire et de gérer des fichiers d’en-tête.
A propos de Microsoft pour ajouter plus de fonctionnalités à C ++: ce n’est pas une mince affaire.
Chaque compilateur C ++ ajoute de nouvelles fonctionnalités, notamment C ++ 11. gcc c'est aussi.
la source
C'est peut-être juste moi, mais, je vois une utilisation beaucoup plus simple du C que du C ++.
Le fait que C ++ ait avalé le C en entier rend difficile de déduire qui utilise quoi.
Mais il y a beaucoup plus de projets open source C que C ++.
Mon point de vue est que si vous avez besoin d'une vitesse proche de celle du métal, utilisez C. Si vous avez besoin de flexibilité et de facilité de gestion avec des performances raisonnables, utilisez C # ou Java. Si vous souhaitez une conception épurée faite rapidement, utilisez Python, Scala, Groovy ou l’un des nombreux langages complets.
la source
c ++ ne remplace pas c #. Voyons où le langage c ++ est utilisé. Il est utilisé lorsque des performances élevées sont nécessaires, pour l'écriture de bibliothèques middleware, un accès de bas niveau et pour l'écriture de code pour des périphériques à ressources limitées. Bien que vous puissiez utiliser c # pour certains d'entre eux, c ++ est plus approprié pour ceux-ci. La poussée de Microsoft pour le c ++ est étroitement liée à sa forte poussée dans l’espace mobile. Personne ne vous demandera d’écrire votre prochaine application Web en c ++. Mais avec Qt, l'argument de productivité ne peut pas être comparé à c ++. Mais je pense que beaucoup de gens ne connaissent pas Qt.
la source
Non, C ++ ne peut pas remplacer C # car toutes les applications Windows Phone 8 autres que Direct3D doivent être développées en C #. Vous ne pouvez pas développer et publier des applications sur wp8 app store simplement en utilisant C ++ ou HTML5 / Javascript. Et tant que Microsoft ne supprime pas cette restriction, C ++ ne remplace rien. En conséquence, je suis sûr que très peu de personnes développeront pour WP8. Pauvre Nokia, perdant une fois de plus.
Voici l'extrait de microsoft dev center :
encore un autre:
Même les MVP Microsoft affirment que cette rumeur est une désinformation délibérée de Microsoft lui-même:
Et cette mauvaise commercialisation délibérée gaspille des mois :
la source