سؤال

ما هي المزايا/العيوب بين MS VS C++ 6.0 وMSVS C++ 2008؟

السبب الرئيسي لطرح مثل هذا السؤال هو أنه لا يزال هناك العديد من المبرمجين المحترمين الذين يفضلون استخدام الإصدار الأقدم بدلاً من الإصدار الأحدث.

هل هناك أي سبب لتفضيل القديم على الجديد؟

هل كانت مفيدة؟

المحلول

حسنًا، قد يكون السبب هو أن الملفات التنفيذية المضمنة مع MSVS 6 لا تتطلب سوى msvcrt.dll (وقت تشغيل C) الذي يتم شحنه مع Windows الآن.

تحتاج الملفات التنفيذية لـ MSVS 2008 إلى شحن msvcrt9 معها (أو تثبيتها بالفعل).

بالإضافة إلى ذلك، لديك الكثير من مكتبات OSS التي تم تجميعها بالفعل لنظام التشغيل Windows 32 بت مع وقت التشغيل 6.0 C، بينما بالنسبة لوقت التشغيل 2008 C، عليك أن تأخذ المصدر وتجميعها بنفسك.

(يتم تجميع معظم هذه المكتبات بالفعل باستخدام MinGW، والذي يستخدم أيضًا وقت التشغيل 6.0 C - ربما هذا سبب آخر).

نصائح أخرى

مزايا Visual Studio 2008 مقارنة بـ Visual C++ 6.0:

  • مترجم C++ أكثر توافقًا مع المعايير، مع معالجة أفضل للقالب
  • دعم لأهداف x64 / mobile / XBOX
  • تحسين تنفيذ المحكمة الخاصة بلبنان
  • دعم C++0x TR1 (المؤشرات الذكية والتعبيرات العادية وما إلى ذلك)
  • مكتبة وقت التشغيل الآمنة C
  • تحسين التنقل بالكود
  • تحسين المصحح.إمكانية تشغيل جلسات التصحيح عن بعد
  • تحسينات أفضل للمترجم
  • العديد من إصلاحات الأخطاء
  • يعتمد بشكل أسرع على أنظمة متعددة النواة/متعددة وحدات المعالجة المركزية
  • تحسين واجهة المستخدم IDE، مع العديد من الميزات الرائعة
  • تحسين دعم الماكرو في IDE؛يسمح DTE بالوصول إلى المزيد من أساليب ومتغيرات IDE
  • مكتبة MFC المحدثة (في VS2008 Service Pack 1)
  • دعم OPENMP (تعدد مؤشرات الترابط السهل) (فقط في VS2008 pro.)

عيوب الانتقال إلى Visual Studio 2008:

  • IDE أبطأ بكثير من VS6
  • لا يزال Intellisense يواجه مشكلات في الأداء (يمكن أن يساعد استبداله بـ VisualAssistX)
  • التجميعات جنبًا إلى جنب تجعل نشر التطبيق أكثر صعوبة
  • مكتبة MSDN المحلية (غير المتصلة) بطيئة للغاية
  • كما ذكر هنا, ، لا يوجد ملف تعريف في الإصدار الاحترافي

بروح جويل الأخيرة مشاركة مدونة, ، لقد قمت بدمج بعض الإجابات الأخرى المنشورة في إجابة واحدة (وجعلت هذا منشورًا مملوكًا للمجتمع، لذلك لن أحصل على ممثل منه).انا آمل انك لا تمانع.شكرًا جزيلاً لـ Laur وNeARAZ و17 من 26 وme.yahoo.com وكل من أجاب.-- كريس ن

أود أن أضيف أنه ليس الأمر أن التطبيقات التي تم تطويرها باستخدام Visual C++ 2008 يجب أن تتطلب ملفات DLL أكثر من تلك التي تم تطويرها باستخدام Visual C++ 6.0.هذا مجرد تكوين المشروع الافتراضي.

إذا انتقلت إلى خصائص مشروعك، C/C++، وإنشاء التعليمات البرمجية، فقم بتغيير ملف مكتبة وقت التشغيل من DLL متعدد الخيوط وDLL Debug متعدد الخيوط (تكوينات الإصدار والتصحيح) إلى متعدد الخيوط و تصحيح متعدد الخيوط, ، يجب أن يحتوي تطبيقك بعد ذلك على تبعيات أقل.

من أعلى رأسي، مزايا Visual Studio الجديد هي:

  • التزام أكثر صرامة بالمعايير
  • دعم أهداف X64 / Mobile / Xbox
  • تحسينات أفضل للمترجم
  • (طريقة) التعامل مع القالب بشكل أفضل
  • تحسين المصحح.إمكانية تشغيل جلسات التصحيح عن بُعد
  • تحسين بيئة تطوير متكاملة
  • تحسين دعم الماكرو.يسمح DTE بالوصول إلى المزيد من أساليب ومتغيرات IDE

سلبيات:

  • IDE يبدو أبطأ
  • لا يزال لدى Intellisense مشكلات في الأداء (يمكن استبدالها بـ VisualAssistx المساعدة)
  • وقت التشغيل غير متاح عالميًا
  • تكامل التحكم في المصدر لا يصل إلى PAR (على الرغم من أن 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++ منذ تلك الأيام، ولكن ليس بالقدر نفسه الذي حدث بالنسبة لمستخدمي .NET.

إحدى الطرق التي تجعل VS2008 أفضل بكثير من VC6 هي أنه يمكنه إنشاء مشاريع C++ بالتوازي.يمكن أن يؤدي هذا إلى إنشاءات أسرع بشكل ملحوظ حتى على نظام وحدة المعالجة المركزية (CPU) واحد، ولكن بشكل خاص إذا كان لديك مراكز متعددة.

هل تعلم أن تنفيذ MS VC6 للمحكمة الخاصة بلبنان ليس آمنًا؟على وجه الخصوص، فإن تحسين العد المرجعي في basic_string ينفجر حتى عند تجميعه مع المكتبات متعددة الخيوط.http://support.microsoft.com/kb/813810

إذا قمت بتثبيت كافة حزم الخدمة لـ VS6، فلا يزال لديك مجموعة متكاملة من IDE/المترجم.باعتباري مطور برامج يتعين عليه إطلاق منتجات في البرية (عبر الإنترنت)، لا أرغب في شحن أوقات تشغيل VC++ وإطار عمل .NET في كل مرة (لا أستطيع تجميعها مباشرة في برنامج التثبيت/الملف القابل للتنفيذ، فهذا محظور من قبل Microsoft) ).كما تعلمون، فإن عدة ميغابايت من أوقات التشغيل لتشغيل كيلو بايت من التعليمات البرمجية هو أمر غبي نوعًا ما.يحتاج VC++ 6.0 فقط إلى الملف القابل للتنفيذ و2 .DLL في أحسن الأحوال.

أيضًا، لا يمكن توزيع أوقات تشغيل تصحيح الأخطاء باستخدام VC++ .NET، وهذا ليس جيدًا حقًا عندما يكون لدي عميل يحتاج إلى إجراء بعض التصحيح لمنتجاتي :)

هناك في رأيي الأسباب الرئيسية التي تجعلني لا أزال أستخدم VC++ 6.0، ولكن IDE نفسه قبيح (على سبيل المثال:لا يوجد دعم الجدولة).عادةً ما أتجاوز قيود IDE باستخدام كتل التعليمات البرمجية بدلاً من ذلك (يدعم CodeBlocks CL.EXE/LINK.EXE لجميع إصدارات VC++)

كوبولفو

يعد Visual C++ 2008 أكثر توافقًا مع المعايير (لا يدعم Visual Studio 6 معيار C++ الذي تم تعيينه في عام 1998).

يحتوي VS2008 على مترجم أفضل (أكثر توافقًا مع المعايير، وتحسينات أفضل، ...).

يتمتع VS6 بـ IDE أسرع بكثير.يحتوي VS2008 IDE على العديد من الميزات الرائعة، لكنه أبطأ من VS6.

قائمة سريعة بالتحسينات التي ستراها بدءًا من الإصدار 6.0 إلى الإصدار 2008:

  • العديد من إصلاحات الأخطاء
  • توافق أفضل مع معيار C++
  • تحسين أفضل للمترجم
  • واجهة مستخدم محسّنة (ذكاء أفضل، وما إلى ذلك)

الشيء الوحيد الذي ينساه الناس أحيانًا هو أن عمر VS 6.0 يزيد عن 10 سنوات الآن!في هذه المرحلة، لا أرى كيف قد يرغب أي شخص في الاستمرار بها.

أحد الأمور الصعبة التي واجهناها هو أن "القيمة" أصبحت كلمة رئيسية.

يمكن أن يكون Visual C++ 6 عربات التي تجرها الدواب في بعض الأحيان مقارنة بعام 2008.بعض الأشياء على وجه الخصوص:

  • ضعف دعم القالب/الشذوذ (على سبيل المثال sometemplate<othertemplate<t>> لا يعمل، ولكن sometemplate< othertemplate<t> > العمل)
  • غير متوافقة مع المعايير
  • محرر الموارد هراء (يبدو أن الخطوط الزرقاء تتحرك بشكل عشوائي، من بين أمور أخرى)
  • يدعم فقط تحرير أنواع معينة من الصور النقطية ذات 8 بت (لا بد لي من استخدام imagemagick لتحويل الصور النقطية المحفوظة في Paint.net حتى أتمكن من رؤيتها في موارد الصور)
  • دعم رهيب للعمل مع ملفات للقراءة فقط / تكامل آمن مع المصدر.

في بعض الأحيان، يبدو التطوير في VS6 وكأنه محاولة جعل مواقع الويب تبدو جيدة في Internet Explorer 5.5

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top