Libérer les développeurs de la gestion de la mémoire a été présenté comme l'un des principaux avantages des langages de code gérés tels que C #. Existe-t-il des études / exemples concrets de gains de productivité réels liés au développement d'applications commerciales en C # par rapport à C ++?
Réponses
Trop de publicités?J'ai été un programmeur C++ depuis plusieurs années et maintenant je suis à temps plein programmeur C#. Pour être totalement honnête, je ne pense pas avoir automatisé de gestion de la mémoire qui me fait vraiment que beaucoup plus productif, car une fois que vous obtenez l'utiliser, c'est vraiment pas une grosse affaire.
Pour moi, le principal gain de productivité en C# est la .NET framework bibliothèque et d'intégration de visual studio. Le fait que cette fonctionnalité fonctionne réellement, en mesure de l'exécution de réflexion et d'avoir la bonne date/heure de la bibliothèque de vraiment me permet de gagner beaucoup de temps.
Dans mon expérience personnelle, gestion automatique de la mémoire n'a pas vraiment été un gros facteur. Ces jours, il ya un certain nombre de simples constructions en C++, comme un décompte de références pointeurs, qui peut être utilisé dans la majorité des cas, l'abstraction de la gestion de la mémoire à l'écart. En fait, je dirais que c'est plus difficile en C# comme c'est parfois très important de Disposer sur les objets qui implémentent IDisposable, mais il n'est pas toujours immédiatement évident que les objets sont IDisposable.
D'autre part, j'ai bénéficié de C#'s d'autres fonctionnalités utiles. Des choses comme les événements, la capacité de modifier mon code dans le débogueur, à l'aide de Designer (quand ça marche) pour mettre en place une interface graphique, et "ça marche" l'interopérabilité avec les bibliothèques natives (P/Invoke) ou de code C++ (C++/CLR) ont rendu ma vie beaucoup plus facile.
Je serais intéressé d'entendre toute personne ayant de l'expérience dans les deux .NET et une bonne bibliothèque C++ comme Qt. Je n'ai pas touché .NET pour plus de quelques heures, mais je suis amoureuse de Qt - les gains de productivité dans le MFC, GTK, et wxWidgets est, IMO massive.
J'ai vu les mêmes questions tous sur stackoverflow. Beaucoup de gens se retrouvent en comparant le langage C++ avec le langage C# livré avec le .NET framework, ce qui est évidemment absurde. C'est une erreur facile à faire, puisque les deux sont souvent regroupés.
Je serais d'accord aussi avec Eric - gestion automatique de la mémoire n'est pas un gros problème pour les programmeurs expérimentés.