Question

Quels sont les avantages / inconvénients entre MS VS C ++ 6.0 et MSVS C ++ 2008?

La principale raison de poser une telle question est qu’il existe encore de nombreux programmeurs dignes qui préfèrent utiliser l’ancienne version plutôt que la version la plus récente.

Existe-t-il une quelconque raison pour laquelle le premier préfère le plus ancien au nouveau?

Était-ce utile?

La solution

Eh bien, d’une part, il se peut que les exécutables créés avec MSVS 6 ne requièrent que msvcrt.dll (exécution C) qui est fourni avec Windows maintenant.

Les exécutables MSVS 2008 ont besoin de msvcrt9 (ou sont déjà installés).

De plus, de nombreuses bibliothèques OSS sont déjà compilées pour Windows 32 bits avec le runtime 6.0 C, tandis que pour le runtime 2008, vous devez vous procurer le code source et les compiler vous-même.

(la plupart de ces bibliothèques sont en fait compilées avec MinGW, qui utilise également le runtime 6.0 C - c'est peut-être une autre raison).

Autres conseils

Avantages de Visual Studio 2008 par rapport à Visual C ++ 6.0:

  • Compilateur C ++ conforme aux normes, avec une meilleure gestion des modèles
  • Prise en charge des cibles x64 / mobile / XBOX
  • Implémentation STL améliorée
  • Prise en charge de C ++ 0x TR1 (pointeurs intelligents, expressions régulières, etc.)
  • bibliothèque d'exécution C sécurisée
  • Amélioration de la navigation dans le code
  • débogueur amélioré; possibilité d'exécuter des sessions de débogage à distance
  • Meilleures optimisations du compilateur
  • Plusieurs corrections de bugs
  • Constructions plus rapides sur des systèmes multicœurs / multi-processeurs
  • Interface utilisateur IDE améliorée, avec de nombreuses fonctionnalités intéressantes
  • Amélioration du support des macros dans l'EDI; DTE permet d’accéder à plus de méthodes et de variables IDE
  • Bibliothèque MFC mise à jour (dans VS2008 Service Pack 1)
  • prise en charge d'OPENMP (multithreading facile) (uniquement dans VS2008 pro.)

Inconvénients du passage à Visual Studio 2008:

  • L'IDE est beaucoup plus lent que VS6
  • Intellisense a toujours des problèmes de performances (son remplacement par VisualAssistX peut aider)
  • Les assemblages côte à côte rendent le déploiement d'applications beaucoup plus problématique
  • La bibliothèque MSDN locale (hors connexion) est extrêmement lente
  • Comme indiqué dans ici , il n'y a pas de profileur dans la version professionnelle

Dans l'esprit du billet de blog de Joel, " Nous avons combiné certaines des autres réponses publiées en une seule réponse (et en avons fait un message appartenant à la communauté, je ne gagnerai donc pas de répit). J'espère que ça ne vous dérange pas. Merci beaucoup à Laur, NeARAZ, 17 sur 26, me.yahoo.com, et à tous les autres qui ont répondu. - ChrisN

Je voudrais ajouter que les applications développées à l'aide de Visual C ++ 2008 ne nécessitent pas davantage de DLL que celles développées à l'aide de Visual C ++ 6.0. Ce n'est que la configuration de projet par défaut.

Si vous allez dans les propriétés de votre projet, C / C ++, Génération de code, modifiez votre bibliothèque d'exécution de DLL multithread et DLL de débogage multithread (configurations de validation et de débogage) en Multi-threaded et Débogage multi-thread , votre application devrait alors comporter moins de dépendances.

De mémoire, les avantages du nouveau Visual Studio sont les suivants:

  • respect plus strict des normes
  • prise en charge de x64 / mobile / XBOX cibles
  • meilleures optimisations du compilateur
  • (moyen) une meilleure gestion des modèles
  • amélioration du débogueur; possibilité de exécuter des sessions de débogage à distance
  • IDE amélioré
  • amélioration du support des macros; DTE permet d’accéder à plus de méthodes et de variables IDE

Inconvénients:

  • L'IDE semble plus lent
  • Intellisense a toujours des performances problèmes (en le remplaçant par VisualAssistX peut vous aider)
  • runtime non disponible universellement
  • intégration du contrôle de source non supérieure à par (bien qu'en toute justice VC6 manque complètement cette fonctionnalité)

Outre le déploiement mentionné ci-dessus, le principal avantage de MSVC 6.0 est la rapidité. Parce que c'est un IDE de 10 ans, il se sent assez vite sur un ordinateur moderne. Les nouvelles versions de Visual Studio offrent des fonctionnalités plus avancées, mais elles ont un coût (complexité et vitesse plus lente).

Mais le plus gros inconvénient de MSVC 6.0 est son compilateur et bibliothèque non conforme C ++. Si vous avez l’intention de faire de la programmation C ++ sérieuse, c’est là un obstacle. Si vous ne construisez que des applications MFC, ce n’est probablement pas un problème.

Visual C ++ 6.0 s’intègre parfaitement aux outils de suivi de la mémoire, tels que Purify, HeapAgent, BoundsChecker et MemCheck, dans la mesure où ces outils de suivi de la mémoire ont été mis à jour de manière active et vendus agressivement après la sortie de Visual C ++ 6.0.

Cependant, depuis que C ++ n'est plus à la mode depuis un moment, les sociétés qui vendent des outils de suivi de la mémoire les vendent mais ne les mettent jamais à jour ni ne les intègrent avec les nouvelles versions de Visual C ++, y compris Visual Studio 2008. Ainsi, en utilisant des outils de suivi de la mémoire avec Visual Studio 2008 est frustrant, source d'erreurs et, dans certains cas, impossible.

Depuis VC6, Visual Studio s’est principalement concentré sur C # et .NET, ainsi que sur d’autres fonctionnalités, de sorte que certains anciens C ++ considèrent VC6 comme le bon vieux temps. Les choses se sont améliorées dans Visual Studio pour les développeurs C ++ depuis cette époque, mais pas aussi radicalement que pour les utilisateurs .NET.

L’un des avantages de VS2008 par rapport à VC6 est qu’il peut construire des projets C ++ en parallèle. Cela peut entraîner des constructions beaucoup plus rapides, même sur un seul processeur, mais surtout si vous avez plusieurs cœurs.

Saviez-vous que l'implémentation de la STL par MS VC6 n'est pas thread-safe? En particulier, l'optimisation du comptage de références dans basic_string explose même si elle est compilée avec les bibliothèques multithreads. http://support.microsoft.com/kb/813810

Si vous installez tous les service packs pour VS6, vous disposez toujours d’un solide combo IDE / compilateur. En tant que développeur logiciel qui doit publier des produits dans la nature (via Internet), je ne souhaite pas envoyer systématiquement les runtimes VC ++ et le framework .NET (je ne peux pas les regrouper directement dans mon programme d’installation / exécutable, c’est interdit par Microsoft. ). Vous savez, plusieurs mégaoctets d'exécution pour exécuter des kilo-octets de code sont un peu stupides. VC ++ 6.0 n’a besoin que de votre exécutable et de 2 .DLL au mieux.

De plus, les exécutions de débogage ne peuvent pas être distribuées avec VC ++ .NET, ce qui n’est pas très utile lorsque j’ai un client qui doit déboguer certains de mes produits:)

Il y a à mon avis les principales raisons pour lesquelles j'utilise encore VC ++ 6.0, mais l'IDE lui-même est moche (c'est-à-dire: pas de support de tabulation). En général, je contourne les limitations de l'EDI en utilisant codeblocks (CodeBlocks prend en charge CL.EXE / LINK.EXE pour toutes les versions de VC ++)

Cobolfoo

Visual C ++ 2008 est bien plus conforme aux normes (Visual Studio 6 ne prend pas en charge la norme C ++ définie en 1998).

VS2008 a un meilleur compilateur (beaucoup plus conforme aux normes, meilleures optimisations, ...).

VS6 a un IDE beaucoup plus rapide. VS2008 IDE a de nombreuses fonctionnalités intéressantes, mais il est un peu plus lent que VS6.

Liste rapide des améliorations que vous verrez apparaître de 6.0 à 2008:

  • Plusieurs corrections de bugs
  • Meilleure conformité à la norme C ++
  • Meilleure optimisation du compilateur
  • Interface utilisateur améliorée (meilleur intellisense, etc.)

Les gens oublient parfois que VS 6.0 a plus de 10 ans maintenant! À ce stade, je ne vois pas comment quiconque voudrait s'en tenir à cela.

L’un des problèmes que nous avons rencontrés est que " value " est devenu un mot clé.

Visual C ++ 6 peut parfois être très problématique par rapport à 2008. Certaines choses en particulier:

  • Mauvaise prise en charge / bizarreries de modèles (par exemple sometemplate<othertemplate<t>> ne fonctionne pas, mais sometemplate< othertemplate<t> > fonctionne)
  • Non conforme aux normes
  • L'éditeur de ressources est une foutaise (les & "; lignes bleues &"; semblent se déplacer au hasard, entre autres choses)
  • Ne supporte que l'édition de certains types de bitmaps 8 bits (je dois utiliser imagemagick pour convertir des bitmaps enregistrés dans paint.net pour pouvoir être vus dans les ressources images)
  • Support terrible pour travailler avec des fichiers en lecture seule / intégration insolite de sourcesafe.

Parfois, développer dans VS6 donne l’impression de vouloir que les sites Web soient beaux dans Internet Explorer 5.5

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top