Вопрос

Каковы преимущества / недостатки между MS VS C ++ 6.0 и MSVS C ++ 2008?

Основная причина задавать такой вопрос заключается в том, что все еще есть много приличных программистов, которые предпочитают использовать более старую версию вместо новейшей.

Есть ли какая-то причина, по которой они могут предпочесть старое новому?

Это было полезно?

Решение

Ну, во-первых, это может быть потому, что исполняемые файлы, созданные с MSVS 6, требуют только msvcrt.dll (C runtime), который сейчас поставляется с Windows.

Для исполняемых файлов MSVS 2008 требуется, чтобы msvcrt9 поставлялся вместе с ними (или уже был установлен).

Кроме того, у вас есть много библиотек OSS, уже скомпилированных для 32-разрядной версии Windows со средой выполнения 6.0 C, в то время как для среды выполнения 2008 C вам придется взять исходный код и скомпилировать их самостоятельно.

(большинство из этих библиотек на самом деле скомпилированы с помощью MinGW, который также использует среду выполнения 6.0 C - возможно, это еще одна причина).

Другие советы

Преимущества Visual Studio 2008 перед Visual C ++ 6.0:

  • Гораздо более совместимый со стандартами компилятор C ++ с лучшей обработкой шаблонов
  • Поддержка целевых приложений для x64 / мобильных устройств / XBOX
  • Улучшенная реализация STL
  • Поддержка C ++ 0x TR1 (интеллектуальные указатели, регулярные выражения и т.д.)
  • Защищенная библиотека времени выполнения C
  • Улучшенная навигация по коду
  • Улучшенный отладчик;возможность запуска сеансов удаленной отладки
  • Улучшенная оптимизация компилятора
  • Исправлено множество ошибок
  • Более быстрые сборки на многоядерных / мультипроцессорных системах
  • Улучшенный пользовательский интерфейс IDE со множеством приятных функций
  • Улучшена поддержка макросов в IDE;DTE предоставляет доступ к большему количеству методов и переменных IDE
  • Обновленная библиотека MFC (в пакете обновления 1 VS2008)
  • поддержка OPENMP (простая многопоточность) (только в VS2008 pro.)

Недостатки перехода на Visual Studio 2008:

  • IDE работает намного медленнее, чем VS6
  • У Intellisense все еще есть проблемы с производительностью (может помочь замена его на VisualAssistX).
  • Параллельные сборки значительно усложняют развертывание приложений
  • Локальная (автономная) библиотека MSDN работает чрезвычайно медленно
  • Как уже упоминалось здесь, в профессиональной версии нет профилировщика

В духе недавнего выступления Джоэла запись в блоге, Я объединил некоторые другие опубликованные ответы в один ответ (и сделал этот пост принадлежащим сообществу, поэтому я не получу от него известности).Надеюсь, ты не возражаешь.Большое спасибо Лору, Неаразу, 17 из 26, me.yahoo.com и всем остальным, кто ответил.-- Крисн

Я хотел бы добавить, что это не тот случай, когда приложениям, разработанным с использованием Visual C ++ 2008, требуется больше библиотек DLL, чем приложениям, разработанным с использованием Visual C ++ 6.0.Это всего лишь конфигурация проекта по умолчанию.

Если вы зайдете в свойства вашего проекта, C / C ++, генерацию кода, то измените свой Библиотека времени выполнения от многопоточной библиотеки DLL и многопоточной библиотеки Debug DLL (конфигурации выпуска и отладки) до Многопоточный и Многопоточная отладка, Тогда ваше приложение должно иметь меньше зависимостей.

На мой взгляд, преимущества новой Visual Studio заключаются в следующем:

  • более строгое соблюдение стандартов
  • поддержка для x64 / мобильных устройств / XBOX целевые приложения
  • улучшенная оптимизация компилятора
  • (способ) лучшей обработки шаблонов
  • улучшенный отладчик;возможность запускать сеансы удаленной отладки
  • улучшенная среда разработки
  • улучшенная поддержка макросов;DTE предоставляет доступ к большему количеству методов и переменных IDE

Недостатки:

  • IDE кажется медленнее
  • У Intellisense все еще есть проблемы с производительностью (может помочь замена на VisualAssistX)
  • среда выполнения не доступна повсеместно
  • интеграцию с системой управления не равенство (хотя по справедливости из vc6 полностью отсутствует эта функция)

Помимо упомянутого выше развертывания, основным преимуществом MSVC 6.0 является скорость.Поскольку это IDE 10-летней давности, на современном компьютере она работает довольно быстро.Более новые версии Visual Studio предлагают более продвинутые функции, но они обходятся недешево (сложность и меньшая скорость).

Но самым большим недостатком MSVC 6.0 является его несовместимый с C ++ компилятор и библиотека.Если вы намерены серьезно заниматься программированием на C ++, то это шоу-стопор.Если вы создаете только MFC-приложения, это, вероятно, не такая уж большая проблема.

Visual C ++ 6.0 полностью интегрируется со средствами отслеживания памяти, такими как Purify, HeapAgent, BoundsChecker и MemCheck, поскольку эти средства отслеживания памяти активно поддерживались и активно продавались после выхода Visual C ++ 6.0.

Однако, поскольку C ++ на некоторое время вышел из моды, компании, продающие инструменты отслеживания памяти, все еще продают их, но никогда не обновляют и не интегрируют с новыми версиями Visual C ++, включая Visual Studio 2008.Таким образом, использование инструментов отслеживания памяти в Visual Studio 2008 вызывает разочарование, приводит к ошибкам и, в некоторых случаях, невозможно.

Начиная с VC6, основное внимание Visual Studio уделялось C # и .NET, а также другим функциям, поэтому некоторые старожилы C ++ считают VC6 старыми добрыми временами.С тех пор ситуация в Visual Studio для разработчиков C ++ улучшилась, но далеко не так резко, как для .Пользователей СЕТИ.

Один из способов, которым VS2008 значительно лучше, чем VC6, заключается в том, что он может создавать проекты на C ++ параллельно.Это может привести к значительно более быстрой сборке даже в системе с одним процессором, но особенно если у вас несколько ядер.

Знаете ли вы, что реализация STL в MS VC6 не является потокобезопасной?В частности, оптимизация подсчета ссылок в basic_string приводит к сбоям даже при компиляции с использованием многопоточных библиотек.http://support.microsoft.com/kb/813810

Если вы установите все пакеты обновления для VS6, у вас все равно останется надежная комбинация IDE и компилятора.Как разработчик программного обеспечения, которому приходится выпускать продукты в дикой природе (через Интернет) Я не хочу каждый раз отправлять среды выполнения VC ++ и .NET Framework (я не могу связать их непосредственно в моем установщике / исполняемом файле, это запрещено Microsoft).Знаете, несколько мегабайт времени выполнения для запуска килобайта кода - это довольно глупо.VC ++ 6.0 в лучшем случае нужен только ваш исполняемый файл и 2 .DLL.

Кроме того, среды выполнения отладки не могут распространяться с помощью VC ++ .NET, что не очень хорошо, когда у меня есть клиент, которому нужно выполнить некоторую отладку моих продуктов :)

На мой взгляд, есть основные причины, по которым я все еще использую VC ++ 6.0, но сама IDE уродлива (т.е.:нет поддержки вкладок).Обычно я обхожу ограничения IDE, используя вместо этого codeblocks (CodeBlocks поддерживают CL.EXE/LINK.EXE для всех версий VC ++)

Кобольфу

Visual C ++ 2008 гораздо более соответствует стандартам (Visual Studio 6 не поддерживает стандарт C ++, установленный в 1998 году).

VS2008 имеет лучший компилятор (гораздо более совместимый со стандартами, лучшую оптимизацию, ...).

VS6 имеет гораздо более быструю IDE.VS2008 IDE обладает многими приятными функциями, но она немного медленнее, чем VS6.

Краткий список улучшений, которые вы увидите, начиная с версии 6.0 и заканчивая 2008 годом:

  • Исправлено множество ошибок
  • Лучшее соответствие стандарту C ++
  • Улучшенная оптимизация компилятора
  • Улучшенный пользовательский интерфейс (улучшенный intellisense и т.д.)

Одна вещь, о которой люди иногда забывают, - это то, что версии VS 6.0 уже более 10 лет!На данный момент я не понимаю, как кто-то мог захотеть придерживаться этого.

одна сложная вещь, с которой мы столкнулись, заключалась в том, что "ценность" стала ключевым словом.

Visual C ++ 6 временами может сильно глючить по сравнению с 2008 годом.Некоторые вещи, в частности:

  • Плохая поддержка шаблонов / странности (например sometemplate<othertemplate<t>> не работает, но sometemplate< othertemplate<t> > работает)
  • Не соответствует стандартам
  • Редактор ресурсов - это мусор (среди прочего, "синие линии", кажется, перемещаются случайным образом).
  • Поддерживает редактирование только определенных видов 8-битных растровых изображений (я должен использовать imagemagick для преобразования растровых изображений, сохраненных в paint.net, чтобы их можно было увидеть в ресурсах изображений)
  • Ужасная поддержка работы с файлами, доступными только для чтения / необычная интеграция с sourcesafe.

Иногда разработка в VS6 похожа на попытку заставить веб-сайты хорошо выглядеть в Internet Explorer 5.5

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top