++C کامپایلر زیاد داره که معروف ترینشون توی ویندوز ویژوال ++C مایکروسافت و C++ Builder برلند هستن.
خوب قطعا فرق هایی با هم دارن از لحاظ امکاناتی که ارائه میکنن.با C++ Builder کار نکردم زیاد در مورد فرق هاشون نمیدونم.
C یک زبان قدیمی هستش که ++C ارتقا یافته ی اون هست که علاوه بر اینکه همه ی امکانات C رو داره امکان برنامه نویسی شئ گرا رو هم داره و قدرتش خیلی بیشتر از C هستش.
#C یک زبان هست که توسط مایکروسافت طراحی شده و از لحاظ گرامر و موضوعات دیگه شبیه ++C هست ولی از خیلی لحاظ ها هم متفاوته. این زبان بر اساس تلنولوژی NET. هست :
که در اون برنامه ها بجای اینکه به طور مستقیم تحت ویندوز اجرا بشن به زبان CLR تبدیل میشن و تحت قالب NET. اجرا میشن.مزیت این کار اینه که میشه NET. رو برای سیستم های مختلف ارائه داد و اونوقت برنامه دیگه وابسته به سیستم عامل نمیشه.البته الان تا اونجا که میدونم از طرف مایکروسافت NET. فقط تحت ویندوز و ویندوز موبایل اجرا میشه. NET. یه جور رقیب برای Java حساب میشه البته جاوا الان خیلی توسعه پیدا کرده و خیلی مونده تا NET. به جاوا برسه.مزیت دیگه استفاده از NET. یا جاوا اینه که بجای کار مستقیم با ویندوز یا محیط دیگه میشه از کلاس ها و توابع زیادی که توی این قالب ها پیاده سازی شدن استفاده کرد و برنامه نویسی به نسبت خیلی راحتر از حالتی میشه که ما به طور مستفیم با سیستم عامل در ارتباطیم.
زبان هایی که آخرشون دات نت اومده هم مثل VB یا Delphi قبلا (VB6 Delphi7) به طور مستقیم با ویندوز کار میکردن اما با دات نت شدنشون برنامه ها همونطور که گفتم میتونن از امکانات دات نت استفاده کنن و به CLR بجای زبان ماشین ترجمه میشن و امکان اجراشون تحت Platform (قابت) دات نت فراهم شده(و البته دیگه بدون دات نت اجرا نمیشن!)
--
در مورد انتخاب کامپایلر تحت داس و یا ویندوز هم , شما اگه میخوای برای ویندوز برنامه بنویسی طبعا باید کامپایلر تحت ویندوز رو انتخاب کنی و برعکس. گرچه فکر نکنم تا دلیل خاصی نداشته باشی نوشتن برنامه تحت داس ارجحیت داشته باشه نسبت به ویندوز..