Domanda

Quali sono i vantaggi/svantaggi tra MS VS C++ 6.0 e MSVS C++ 2008?

Il motivo principale per porre una domanda del genere è che ci sono ancora molti programmatori decenti che preferiscono utilizzare la versione precedente anziché quella più recente.

C'è qualche motivo per cui potrebbero preferire il vecchio al nuovo?

È stato utile?

Soluzione

Bene, per prima cosa potrebbe essere perché gli eseguibili creati con MSVS 6 richiedono solo msvcrt.dll (runtime C) che ora viene fornito con Windows.

Gli eseguibili di MSVS 2008 necessitano che msvcrt9 sia fornito con loro (o già installato).

In più, hai molte librerie OSS già compilate per Windows 32 bit con il runtime 6.0 C, mentre per il runtime 2008 C devi prendere i sorgenti e compilarli tu stesso.

(la maggior parte di queste librerie sono in realtà compilate con MinGW, che utilizza anch'esso il runtime 6.0 C - forse questo è un altro motivo).

Altri suggerimenti

Vantaggi di Visual Studio 2008 rispetto a Visual C++ 6.0:

  • Compilatore C++ molto più conforme agli standard, con una migliore gestione dei modelli
  • Supporto per target x64/mobile/XBOX
  • Implementazione STL migliorata
  • Supporto per C++0x TR1 (puntatori intelligenti, espressioni regolari, ecc.)
  • Libreria di runtime C protetta
  • Navigazione del codice migliorata
  • Debug migliorato;possibilità di eseguire sessioni di debug remoto
  • Migliori ottimizzazioni del compilatore
  • Molte correzioni di bug
  • Si basa più velocemente su sistemi multi-core/multi-CPU
  • Interfaccia utente IDE migliorata, con molte funzionalità interessanti
  • Supporto macro migliorato nell'IDE;DTE consente l'accesso a più metodi e variabili IDE
  • Libreria MFC aggiornata (in VS2008 Service Pack 1)
  • supporto per OPENMP (multithreading facile) (solo in VS2008 pro.)

Svantaggi del passaggio a Visual Studio 2008:

  • L'IDE è molto più lento di VS6
  • Intellisense presenta ancora problemi di prestazioni (sostituirlo con VisualAssistX può aiutare)
  • Gli assembly affiancati rendono la distribuzione delle app molto più problematica
  • La libreria MSDN locale (offline) è estremamente lenta
  • Come accennato Qui, non è presente alcun profiler nella versione Professional

Nello spirito del recente di Joel post sul blog, ho combinato alcune delle altre risposte pubblicate in un'unica risposta (e ho reso questo post di proprietà della comunità, quindi non ne trarrò reputazione).Spero che non ti dispiaccia.Mille grazie a Laur, NeARAZ, 17 su 26, me.yahoo.com e tutti gli altri che hanno risposto.--Cris N

Vorrei aggiungere che non è vero che le applicazioni sviluppate utilizzando Visual C++ 2008 debbano richiedere più DLL rispetto a quelle sviluppate utilizzando Visual C++ 6.0.Questa è solo la configurazione predefinita del progetto.

Se accedi alle proprietà del progetto, C/C++, Generazione codice, modifica il tuo file Libreria di esecuzione da DLL multi-thread e DLL di debug multi-thread (configurazioni di rilascio e debug) a Multi-thread E Debug multithread, l'applicazione dovrebbe quindi avere meno dipendenze.

A prima vista, i vantaggi del nuovo Visual Studio sono:

  • rispetto più rigoroso degli standard
  • Supporto per target X64 / Mobile / Xbox
  • migliori ottimizzazioni del compilatore
  • (molto) migliore gestione dei modelli
  • debugger migliorato;possibilità di eseguire sessioni di debug remote
  • IDE migliorato
  • supporto macro migliorato;DTE consente l'accesso a più metodi e variabili IDE

Svantaggi:

  • L'IDE sembra più lento
  • Intellisense ha ancora problemi di performance (sostituirlo con VisualAssistx può aiutare)
  • runtime non universalmente disponibile
  • Integrazione del controllo della fonte non all'altezza (anche se in tutta equità VC6 manca completamente di questa funzione)

Oltre alla distribuzione sopra menzionata, il vantaggio principale di MSVC 6.0 è la velocità.Poiché è un IDE vecchio di 10 anni, sembra abbastanza veloce su un computer moderno.Le versioni più recenti di Visual Studio offrono funzionalità più avanzate, ma hanno un costo (complessità e velocità inferiore).

Ma il più grande svantaggio di MSVC 6.0 è il compilatore e la libreria C++ non conformi.Se intendi dedicarti alla programmazione C++ seria, questo è un punto fermo.Se crei solo applicazioni MFC probabilmente non è un grosso problema.

Visual C++ 6.0 si integra con strumenti di tracciamento della memoria, come Purify, HeapAgent, BoundsChecker e MemCheck, in modo completo e efficace poiché tali strumenti di tracciamento della memoria sono stati mantenuti attivamente e venduti in modo aggressivo dopo l'uscita di Visual C++ 6.0.

Tuttavia, poiché il C++ è passato di moda da un po', le aziende che vendono strumenti di tracciamento della memoria li vendono ancora ma non li aggiornano né li integrano mai con le nuove versioni di Visual C++, incluso Visual Studio 2008.Pertanto, l'utilizzo degli strumenti di monitoraggio della memoria con Visual Studio 2008 è frustrante, soggetto a errori e, in alcuni casi, impossibile.

Dal momento che VC6 la maggior parte del focus di Visual Studio è stato su C# e .NET, così come su altre funzionalità, quindi alcuni veterani di C++ vedono VC6 come i bei vecchi tempi.Da allora le cose sono migliorate in Visual Studio per gli sviluppatori C++, ma non in modo così drammatico come per gli utenti .NET.

Un aspetto in cui VS2008 è significativamente migliore di VC6 è che può creare progetti C++ in parallelo.Ciò può comportare build significativamente più veloci anche su un sistema con una singola CPU, ma soprattutto se si dispone di più core.

Sapevi che l'implementazione di STL in MS VC6 non è thread-safe?In particolare, l'ottimizzazione del conteggio dei riferimenti in basic_string esplode anche se compilata con le librerie multi-thread.http://support.microsoft.com/kb/813810

Se installi tutti i service pack per VS6 hai ancora una solida combinazione IDE/compilatore.Come sviluppatore di software che deve rilasciare prodotti in libertà (su Internet) non voglio spedire ogni volta i runtime VC++ e il framework .NET (non posso raggrupparli direttamente nel mio programma di installazione/eseguibile, è vietato da Microsoft ).Sai, diversi megabyte di runtime per eseguire kilobyte di codice sono piuttosto stupidi.VC++ 6.0 necessita solo del tuo eseguibile e di 2 .DLL nella migliore delle ipotesi.

Inoltre, i runtime di debug non possono essere distribuiti con VC++ .NET, il che non è particolarmente utile quando ho un client che deve eseguire il debug dei miei prodotti :)

Secondo me ci sono i motivi principali per cui utilizzo ancora VC++ 6.0, ma l'IDE in sé è brutto (ovvero:nessun supporto per la tabulazione).Di solito ignoro le limitazioni dell'IDE utilizzando invece i codeblock (CodeBlock supporta CL.EXE/LINK.EXE per tutte le versioni VC++)

Cobolfoo

Visual C++ 2008 è molto più conforme agli standard (Visual Studio 6 non supporta lo standard C++ impostato nel 1998).

VS2008 ha un compilatore migliore (molto più conforme agli standard, migliori ottimizzazioni, ...).

VS6 ha un IDE molto più veloce.L'IDE VS2008 ha molte caratteristiche interessanti, ma è leggermente più lento di VS6.

Breve elenco dei miglioramenti che vedrai dalla versione 6.0 al 2008:

  • Molte correzioni di bug
  • Migliore conformità allo standard C++
  • Migliore ottimizzazione del compilatore
  • Interfaccia utente migliorata (migliore IntelliSense, ecc.)

Una cosa che le persone a volte dimenticano è che VS 6.0 ha ormai più di 10 anni!A questo punto, non vedo come qualcuno vorrebbe mantenerlo.

un aspetto difficile che abbiamo riscontrato è stato che "valore" è diventato una parola chiave.

Visual C++ 6 a volte può presentare molti bug rispetto al 2008.Alcune cose in particolare:

  • Scarso supporto/stranezze del modello (ad esempio sometemplate<othertemplate<t>> non funziona, ma sometemplate< othertemplate<t> > funzionante)
  • Non conforme agli standard
  • L'editor delle risorse è spazzatura ("le linee blu" sembrano muoversi in modo casuale, tra le altre cose)
  • Supporta solo la modifica di determinati tipi di bitmap a 8 bit (devo usare imagemagick per convertire le bitmap salvate in paint.net per poter essere viste nelle risorse immagine)
  • Supporto pessimo per lavorare con file di sola lettura/integrazione bizzarra con sourcesafe.

A volte sviluppare in VS6 è come cercare di far apparire bene i siti Web in Internet Explorer 5.5

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top