PDA

View Full Version : سوال: فرق کامپایلرهای ویژوال سی پلاس پلاس 2010 با بورلند سی پلاس پلاس 2010



hfkh77
پنج شنبه 21 اردیبهشت 1391, 19:46 عصر
با سلام خدمت همه ی دوستان گرامی.
راستش رو بخواین, یه چند وقتی هستش که برام این سوال پیش اومده که اون دوتا کامپایلری که توی تیتر نوشتم, یعنی ویژوال سی پلاس پلاس و بورلند سی پلاس پلاس, از لحاظ دستوری, با هم فرقی دارند؟
منظورم این هستش که مثلا یک کدی که در محیط ویژوال سی پلاس پلاس کار کنه, توی بورلند هم اجرا میشه؟

به نظر خودم, قائدتا نباید فرقی باهم داشته باشند, چون هر دو بر پایه سی پلاس پلاس هستند و سی پلاس پلاس هم که در هردو, یکسان است.

شاید سوالم یکم مبتدیانه باشه, از این بابت معذرت می خواهم, ولی باید جوابم رو بگیرم.
شرمنده.

با تشکر فراوان

vasilopita
پنج شنبه 21 اردیبهشت 1391, 22:37 عصر
سلام. کدها و توابع استندارد سی++ تو هر دو یکسانه ولی هر کامپایلر توابع کتابخانه ای مخصوص به خودش رو داره که ممکنه توی کامپایلر دیگه نباشه و کار نکنه

Asg.Mojtaba
شنبه 23 اردیبهشت 1391, 13:09 عصر
اکثرش تفاوت واسه استفاده از کتابخونه های خصوصی هر کامپایلر هست ، توی ویژال استدیو MFC ، توی بورلند بیلدر VLC .
که البته VLC به شدت بهتره :)

Felony
شنبه 23 اردیبهشت 1391, 13:24 عصر
اکثرش تفاوت واسه استفاده از کتابخونه های خصوصی هر کامپایلر هست ، توی ویژال استدیو MFC ، توی بورلند بیلدر VLC .
که البته VLC به شدت بهتره :)

VLC ؟! اون VCL هست که مخفف Visual Component Library هستش .

دلیلتون برای اینکه میگید به شدت بهتره چیه ؟!

me.enik
شنبه 04 شهریور 1391, 09:43 صبح
بحث خوبی میشد اگر ادامه پیدا میکرد.

کلا, برای استفاده از زبان سی پلاس پلاس, توصیه میکنید بریم سراغ ویژوال سی پلاس پلاس یا سی پلاس پلاس بیلدر؟
ممنون میشوم اگر دلیلش رو هم ذکر کنید.

#target
شنبه 04 شهریور 1391, 14:58 عصر
قبلا هم بحث شده ! اگر واقعا ++C میخواهید یاد بگیرید ++Visual C بهتره . قبلا اینجا (http://barnamenevis.org/showthread.php?337470)بحث مشابهی بود .
ممکنه البته کامپایلر های شرکت های مختلف ی سری استاندارد ها هم برا خودشون بذارن که تو اون یکی نباشه
این تفاوت ب نظر در ظاهر بین کتابخانه ها هست که مثلا کتابخانه VCL رو C++ Builder داره و این نداره ! البته VCL بخوای کار کنی همون دات نت بهتره . از طرفی محیط توسعه RAD Studio فراوان باگ داره (ورژن جدیدو نمیدونم . ولی هر چی من دارم بدون استثنا باگ های عجیب داشته )
در مورد کامپایلر هم دو کامپایلر ممکنه کد اسمبلی یک سانی تولید نکن و هر کدام قوانین و بهینه سازی های خود رو داشته باشن (تو اون تاپیک دو تا نتیجه اسمبلی گذاشتم ببینید )

me.enik
شنبه 04 شهریور 1391, 16:32 عصر
ممنونم, قبلا هم اون تاپیک را دیده بودم.

با احتساب تمام قابلیت هایی که اخیرا به rad studio اضافه شده این حرف را میزنید؟
مثلا کراس پلتفرم, فایرمانکی, ... ؟

Ananas
شنبه 04 شهریور 1391, 17:43 عصر
اگه IDE ی c++builder مکروها رو درست میشناخت و یه code completion درست براش می گذاشت مطمئنا من اون رو ترجیح می دادم ولی یک سری توابع هم تو ویژوال استودیو بهتر پیدا میشن تا برلند. من برای کار خودم به این نتیجه رسیدم که کتابخونه ها و دستوراتی که می نویسم طوری باشن که بشه هر زمان خواستم با هر کدومشون کار کنم. یعنی از توابع و کتابخونه های خاص استفاده نکردم و اصل برنامه رو طوری نوشتم که بشه با کامپایلر های دیگه هم استفاده کرد بعد برای هر کار خاص میام نیاز ها رو میسنجم اگه لازم باشه از vcl استفاده کنم پوسته ی برنامه رو با vcl میسازم و یا اگه لازم باشه از کتابخونه های vs استفاده کنم با اون برنامه رو پیاده میکنم. فکر میکنم روش خوبیه که قسمتی از برنامه تو هر دو تا قابل استفاده باشه بعد هر وقت خواستیم از امکان و قابلیت خاصی استفاده کنیم می تونیم یکی رو انتخاب کنیم. دقت کنید که می تونید قسمتهایی از برنامتون رو طوری بنویسید که با هر دو اینها درست اجرا بشه. مثلا DirectX_SDK که من ازش استفاده میکنم تو هر دو اینها به درستی اجرا میشه بدون هیچ تغییری در کد فقط lib های مورد استفاده رو با یک فایل exe کمکی که تو پوشه ی c++builder هست، تبدیل میکنم تا برای c++builder قابل استفاده باشه.

me.enik
شنبه 04 شهریور 1391, 17:54 عصر
از توضیحاتی که دادی ممنون, روش خوبیه ... !

اما اگر شما باشی, پس بین سی پلاس پلاس بیلدر و ویژوال سی پلاس پلاس, ویژوال سی پلاس پلاس رو انتخاب میکنی دیگه, درسته؟

younes221
یک شنبه 05 شهریور 1391, 10:40 صبح
سلام ، قبلا هم واستون توضیح دادم ، که کاربردشون چیه و هر کدوم چه کاربردهایی دارن ، پس دیگه توضیح نمیدم ،

بهتره C++‎‎‎ رو با مایکروسافت پیش برین چون تیمش خیلی قویه و در هر ورژن قابلیت های مختلفی رو اضافه میکنه مثلا در همسن نسخه vs2012 یک Code Completion خیلی قوی واسش درست کرده و دیگه حرفی رو واسه گفتن نذاشته ،

اگه میخواین بعدا به مشکلات برنخورین ( احتمال داره مشکلاتی بعدا به وجود بیاد) با مایکروسافت و Visual c++پیش برین . تقریبا تمام برنامه های خوب رو با همین Visual C++ ساختن پس نگران نباشید.

من خودم انتخاب اول و آخرم ویژوال سی هست.

موفق باشید

#target
یک شنبه 05 شهریور 1391, 14:57 عصر
با احتساب تمام قابلیت هایی که اخیرا به rad studio اضافه شده این حرف را میزنید؟
مثلا کراس پلتفرم, فایرمانکی, ... ؟
آره
وقتی ی کتابخانه کراس پلتفرم یاد میگیری باید ببینی به صرفه هست یا نه !
یعنی شما آیا نیاز هست که برای MacOS برنامه ای بنویسید ؟چون وقتی از فایر مانکی برای کراس پلتفرم استفاده میکنید دیگه نباید اط هیچ تابع مستقیم سیستم عامل ویندوز استفاده کنی تا بتونی برنامه رو مجددا اونجا کامپایل کنی . و اگر برنامه قرار نباشه توی مک کار کنه اون هزینه اضافه استفاده از فایر مانکی به صرفه نیست مگه نوجیه خاصی باشه !

hadi0x7c7
یک شنبه 05 شهریور 1391, 22:09 عصر
بهتره C++‎‎‎ رو با مایکروسافت پیش برین چون تیمش خیلی قویه و در هر ورژن قابلیت های مختلفی رو اضافه میکنه مثلا در همسن نسخه vs2012 یک Code Completion خیلی قوی واسش درست کرده و دیگه حرفی رو واسه گفتن نذاشته ،


Eclipse cdt که از شونصد سال پیش Code Completion اش فوق العاده قوی بود !

Ananas
یک شنبه 05 شهریور 1391, 22:27 عصر
اما اگر شما باشی, پس بین سی پلاس پلاس بیلدر و ویژوال سی پلاس پلاس, ویژوال سی پلاس پلاس رو انتخاب میکنی دیگه, درسته؟
من برای نوشتن کد از هر دوتاش استفاده میکنم. و دوتاشون رو انتخاب میکنم. شاید نیاز نباشه ولی می تونیم دیگه داش.:چشمک:

حامد مصافی
دوشنبه 06 شهریور 1391, 00:05 صبح
قابل توجه تعدادی از دوستان: بعضی از حرف‌های شما در واقع نظر شخصی شماست. در مورد نظر شخصیتون مانند یک واقعیت مطلق صحبت نکنید.
وقتی میگید فلان محیط بهتره حتما اولش یک «به نظر من» اضافه کنید.

در تکمیل صحبت‌های دوستان که مواردی رو فرمودند...

اگر در مورد سیستم عامل ویندوز داریم صحبت می‌کنیم کامپایلر مطرح برای نوشته کد در اختیار داریم:
1- Microsoft Visual C++‎ (MC++‎)
2- Embarcadero C++‎ Builder
3- G++ (MinGW

Microsoft Visual C++‎ (MC++‎)
کامپایلر شرکت مایکروسافت،‌سازنده ویندوز. شرکت‌های بزرگ نرم‌افزار به این کامپایلر بیشتر از بقیه اعتماد دارند. در واقع همگان می‌دانند مادامی ویندوز هست دارد این کامپایلر هم هست. به همین دلیل اکثر نرم‌افزار‌های مطرح با این کامپایلر توسعه داده شده اند. مایکروسافت بر طبق اصول خاصی که خودش آنرا «درخواست مشتریان» و مخالفان آنرا «انحصار طلبی»‌ می‌نامند قواعد غیر استاندارد (منظور از غیر استاندارد هر چیزیست که در ISO مشخص نشده باشد) بسیاری به کامپایلر خود اضافه کرده که این امر سبب شده نرم‌افزار‌های موجود قابلیت پورت روی سایر کامپایلر‌ها را نداشته باشد. بنا بر دلیلی که ذکر شد هیچ شرکتی نگرانی از این بابت ندارد. این کامپایلر در نسخه‌های قبل کلاس‌های بنیادی خودش را با نام MFC به عنوان بسته پیشنهادی توسعه نرم‌افزار‌های مبتنی بر رابط گرافیکی به همراه محیط توسعه عرضه شده. در نسخه‌های جدید امکان نوشتن کد‌های مدیریت شده با این کامپایلر اضافه شده که از این رو آن را Managed C++‎ یا به اختصار MC++‎ می‌نامند.

Embarcadero C++‎ Builder
این محیط به همراه یک کامپایلر C++‎ که نسخه تکامل یافته Borland Turbo C++‎ بود در شرکت بورلند ساخته شده. سالها به عنوان یک کامپایلر موفق مطرح بود اما کینه دیرینه مایکروسافت و بورلند سبب شده بود کسی نظر خوشی به آن نداشته باشد. به خصوص بعد از فروش آن به شرکت Embarcadero که بیش از بیش تزلزل آن را نمایش داد (این یک جمله احساسی نیست. لطفاً طرفداران جبهه گیری نکنند). ابزار‌های کمکی فراوانی از گوشه کنار جهان توسط بورلند برای حضور در کنار این کامپایلر خریداری شدند. VCL در کنار این کامپایلر بسیار قدرتمند و منعطف است و کسانی که تجربه کار با آن را داشتند قدرت ابزار‌های کمکی این کامپایلر را درک کردند. از لحاظ نزدیکی به استاندارد‌ها بهتر از مایکروسافت عمل کرده است.

G++ (MinGW
این کامپایلر توسط بنیاد گنو و شخص استالمن توسعه داده شده است. استانداردترین کامپایلر C++‎ شناخته می‌شود که تا بدین لحظه بیشترین موارد لحاظ شده از استاندارد C++‎11 را در خود لحاظ کرده است. اما بر خلاف کامپایلر‌های فوق هیچ چهارچوبی به همراه آن ارائه نمی‌شود. اما توسعه‌ دهندگان از چهارچوب های استانداردی نظیر Qt استفاده می‌کنند. مهمترین مزیت استفاده از یک کامپایلر استاندارد قابلیت پورت به سایر کامپایلر‌هاست. بسیاری از نرم‌افزار‌هایی که به صورت استاندارد نوشته می‌شوند برای سایر سیستم‌عامل‌ها نیز کامپایل می‌شوند (مانند apache, php, mysql, ...) معمولا شرکت‌های بزرگ جز در موارد اندک یا جز برای نیاز‌های خاص روی این کامپایلر سرمایه‌گذاری نمی‌کردند. اما در سالهای اخیر کمی مساله فرق کرده (مثال نرم‌افزار مایا)البته گفتنی در این مورد بسیاری سعی کردم موارد مهمتر رو بگم