Pregunta

¿Cuáles son las ventajas/desventajas entre MS VS C++ 6.0 y MSVS C++ 2008?

La razón principal para hacer esta pregunta es que todavía hay muchos programadores decentes que prefieren usar la versión anterior en lugar de la más nueva.

¿Hay alguna razón por la que prefieran lo antiguo a lo nuevo?

¿Fue útil?

Solución

Bueno, para empezar, puede deberse a que los ejecutables creados con MSVS 6 solo requieren msvcrt.dll (tiempo de ejecución C), que ahora se incluye con Windows.

Los ejecutables de MSVS 2008 necesitan que msvcrt9 se envíe con ellos (o ya esté instalado).

Además, ya tiene muchas bibliotecas OSS compiladas para Windows de 32 bits con el tiempo de ejecución 6.0 C, mientras que para el tiempo de ejecución C 2008 debe tomar el código fuente y compilarlas usted mismo.

(La mayoría de esas bibliotecas en realidad están compiladas con MinGW, que también usa el tiempo de ejecución 6.0 C; tal vez esa sea otra razón).

Otros consejos

Ventajas de Visual Studio 2008 sobre Visual C++ 6.0:

  • Compilador C++ mucho más compatible con los estándares, con mejor manejo de plantillas
  • Soporte para objetivos x64/móviles/XBOX
  • Implementación STL mejorada
  • Soporte para C++ 0x TR1 (punteros inteligentes, expresiones regulares, etc.)
  • Biblioteca segura en tiempo de ejecución de C
  • Navegación de código mejorada
  • Depurador mejorado;posibilidad de ejecutar sesiones de depuración remotas
  • Mejores optimizaciones del compilador
  • Muchas correcciones de errores
  • Construcciones más rápidas en sistemas multinúcleo/multi-CPU
  • Interfaz de usuario IDE mejorada, con muchas características interesantes.
  • Soporte de macros mejorado en el IDE;DTE permite el acceso a más métodos y variables IDE
  • Biblioteca MFC actualizada (en VS2008 Service Pack 1)
  • soporte para OPENMP (fácil subproceso múltiple) (solo en VS2008 pro).

Desventajas de pasar a Visual Studio 2008:

  • El IDE es mucho más lento que VS6
  • Intellisense todavía tiene problemas de rendimiento (reemplazarlo con VisualAssistX puede ayudar)
  • Los ensamblajes en paralelo hacen que la implementación de aplicaciones sea mucho más problemática
  • La biblioteca MSDN local (sin conexión) es extremadamente lenta
  • Como se mencionó aquí, no hay generador de perfiles en la versión Profesional

En el espíritu de la reciente entrada en el blog, He combinado algunas de las otras respuestas publicadas en una sola respuesta (e hice de esta una publicación propiedad de la comunidad, por lo que no obtendré reputación con ella).Espero que no te moleste.Muchas gracias a Laur, NeARAZ, 17 de 26, me.yahoo.com y a todos los que respondieron.- ChrisN

Me gustaría agregar que no es cierto que las aplicaciones desarrolladas con Visual C++ 2008 deban requerir más archivos DLL que las desarrolladas con Visual C++ 6.0.Esa es solo la configuración predeterminada del proyecto.

Si ingresa a las propiedades de su proyecto, C/C++, Generación de código, cambie su Biblioteca de ejecución desde DLL multiproceso y DLL de depuración multiproceso (configuraciones de versión y depuración) a multiproceso y Depuración multiproceso, su aplicación debería tener menos dependencias.

Lo que se me viene a la cabeza, las ventajas del nuevo Visual Studio son:

  • cumplimiento más estricto de las normas
  • Soporte para objetivos X64 / Mobile / Xbox
  • mejores optimizaciones del compilador
  • (mucho) mejor manejo de plantillas
  • depurador mejorado;posibilidad de ejecutar sesiones de depuración remota
  • IDE mejorado
  • soporte macro mejorado;DTE permite el acceso a más métodos y variables IDE

Desventajas:

  • IDE parece más lento
  • IntelliSense todavía tiene problemas de rendimiento (reemplazarlo con VisualAssistx puede ayudar)
  • tiempo de ejecución no disponible universalmente
  • La integración de control de la fuente no es hasta la par (aunque para la justicia VC6 carece de esta característica por completo)

Además de la implementación mencionada anteriormente, la principal ventaja de MSVC 6.0 es la velocidad.Debido a que es un IDE de 10 años, se siente bastante rápido en una computadora moderna.Las versiones más nuevas de Visual Studio ofrecen funciones más avanzadas, pero tienen un costo (complejidad y menor velocidad).

Pero el mayor inconveniente de MSVC 6.0 es su compilador y biblioteca de C++ no compatibles.Si tiene la intención de realizar una programación seria en C ++, esto es un obstáculo.Si sólo crea aplicaciones MFC, probablemente no sea un gran problema.

Visual C++ 6.0 se integra bien con herramientas de seguimiento de memoria, como Purify, HeapAgent, BoundsChecker y MemCheck, ya que esas herramientas de seguimiento de memoria se mantuvieron activamente y se vendieron agresivamente después de que salió Visual C++ 6.0.

Sin embargo, dado que C++ ha estado fuera de moda por un tiempo, las empresas que venden herramientas de seguimiento de memoria todavía las venden pero nunca las actualizan ni las integran con nuevas versiones de Visual C++, incluido Visual Studio 2008.Por lo tanto, utilizar herramientas de seguimiento de memoria con Visual Studio 2008 es frustrante, propenso a errores y, en algunos casos, imposible.

Desde VC6, la mayor parte del enfoque de Visual Studio ha estado en C# y .NET, así como en otras características, por lo que algunos veteranos de C++ ven VC6 como los buenos viejos tiempos.Las cosas han mejorado en Visual Studio para los desarrolladores de C++ desde aquellos días, pero no tan dramáticamente como para los usuarios de .NET.

Una forma en que VS2008 es significativamente mejor que VC6 es que puede construir proyectos C++ en paralelo.Esto puede dar como resultado compilaciones significativamente más rápidas incluso en un sistema con una sola CPU, pero especialmente si tiene varios núcleos.

¿Sabías que la implementación de STL en MS VC6 no es segura para subprocesos?En particular, la optimización del recuento de referencias en basic_string explota incluso cuando se compila con bibliotecas multiproceso.http://support.microsoft.com/kb/813810

Si instala todos los paquetes de servicio para VS6, todavía tendrá una combinación sólida de IDE/compilador.Como desarrollador de software que tiene que lanzar productos en el mercado (a través de Internet), no quiero ofrecer los tiempos de ejecución de VC++ y el marco .NET cada vez (no puedo agruparlos directamente en mi instalador/ejecutable, está prohibido por Microsoft). ).Ya sabes, varios megabytes de tiempos de ejecución para ejecutar kilobytes de código es un poco estúpido.VC++ 6.0 solo necesita su ejecutable y 2 .DLL en el mejor de los casos.

Además, los tiempos de ejecución de depuración no se pueden distribuir con VC++ .NET, lo que no es muy bueno cuando tengo un cliente que necesita depurar un poco mis productos :)

En mi opinión, existen las razones principales por las que sigo usando VC++ 6.0, pero el IDE en sí es feo (es decir:sin soporte para pestañas).Por lo general, paso por alto las limitaciones de IDE usando bloques de código (CodeBlocks admite CL.EXE/LINK.EXE para todas las versiones de VC++)

Cobolfoo

Visual C++ 2008 es mucho más compatible con los estándares (Visual Studio 6 no es compatible con el estándar C++ establecido en 1998).

VS2008 tiene un mejor compilador (mucho más compatible con estándares, mejores optimizaciones,...).

VS6 tiene un IDE mucho más rápido.VS2008 IDE tiene muchas características interesantes, pero es un poco más lento que VS6.

Lista rápida de mejoras que verá desde 6.0 a 2008:

  • Muchas correcciones de errores
  • Mejor conformidad con el estándar C++
  • Mejor optimización del compilador
  • UI mejorada (mejor intellisense, etc.)

Una cosa que la gente a veces olvida es que VS 6.0 ya tiene más de 10 años.En este punto, no veo cómo alguien querría seguir con esto.

Una cosa difícil que encontramos fue que "valor" se convirtió en una palabra clave.

Visual C++ 6 puede tener muchos errores a veces en comparación con 2008.Algunas cosas en particular:

  • Pobre soporte de plantilla/rarezas (por ejemplo sometemplate<othertemplate<t>> no funciona, pero sometemplate< othertemplate<t> > trabajando)
  • No cumple con los estándares
  • El editor de recursos es una basura ("las líneas azules" parecen moverse aleatoriamente, entre otras cosas)
  • Solo admite la edición de ciertos tipos de mapas de bits de 8 bits (tengo que usar imagemagick para convertir mapas de bits guardados en paint.net para poder verlos en los recursos de imágenes)
  • Pésimo soporte para trabajar con archivos de solo lectura/integración peculiar de fuente segura.

A veces, desarrollar en VS6 es como intentar que los sitios web se vean bien en Internet Explorer 5.5.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top