# Native Code > برنامه نویسی با C > برنامه نویسی با Borland C++‎ Builder >  فرق بین C++‎ builder ,visual C++‎  در چیست

## saeed-niknami

فرق بین سی بیلدر و ویژوال سی ++ در چیست

----------


## Inprise

بزرگترین فرق کتابخانه کلاس است . ویژوال سی از  MFC استفاده میکنه در حالیکه سی بیلدر از  VCL استفاده میکنه ( ضمن اینکه سی بیلدر از  MFC  "هم" حمایت میکنه ) . سرعت تولید برنامه در سی بیلدر واقعا بیشتر از ویژوال سی است .

----------


## saeed-niknami

فرق بین vcl و mfc در چیست و کدام بهتر است و اینکه سی بیلدر خوب است یا ویژوال سی مایکروسافت

----------


## Inprise

هر دو محصور کننده هائی برای  Win32 API هستند به اضافه امکاناتی خاص برای توسعه نرم افزار . یقینا" برای همه منظورهای توسعه  برنامه کاربردی  VCL از  MFC برتر است . حتی اگر مقصود توسعه کاربردهای مرتبط با لایه های پائین سیستم عامل باشه ، سی بیلدر هم سطح یا بالاتر از ویژوال سی است .

----------


## SSP_Software_team

آقای اینپرایز میزان حمایت سی بیلدر از MFC در چه حدیه به طور کامل پشتیبانی میکنه و یا تا حدودی مثل دلفی 7 از net. :?:

----------


## Best Programmer

> یقینا" برای همه منظورهای توسعه برنامه کاربردی VCL از MFC برتر است . حتی اگر مقصود توسعه کاربردهای مرتبط با لایه های پائین سیستم عامل باشه ، سی بیلدر هم سطح یا بالاتر از ویژوال سی است .


 :shock:  :shock:  :shock:  :shock:  :shock: 
من تازه این تاپیک را دیدم.
من اینجا 1 سوال مطرح میکنم. آیا شما در ‌BCB میتوانید یک exe ایجاد کنید که فقط 1 Message Box ایجاد کند و سایز EXE هم تنها 1024 بایت شود ؟

----------


## Best Programmer

VCL isn't really *all* that bad - well, it's built with delphi which (as all borland product these days?) generates pretty bad code, but one can live with that, considering where delphi/bcb is usually deployed. No, the really bad thing about BCB and Delphi is that people link to VCL statically. While I can understand this from the sense of distribution, it's major suckage - the executables would be much smaller with dynamic linkage.

----------


## LawLover

به نظر این جانب همین که C++‎ Builder محصول شرکت بورلند است ولی Visual C محصول مایکروسافت برای اثبات برتری سی بیلدر کافیست. چرا که مایکروسافت اساسا این کاره نیست.

----------


## SSP_Software_team

> به نظر این جانب همین که C++‎ Builder محصول شرکت بورلند است ولی Visual C محصول مایکروسافت برای اثبات برتری سی بیلدر کافیست. چرا که مایکروسافت اساسا این کاره نیست.


باز هم از اون حرف های کلیشه ای همیشگی فکر کنم اینجا بحث بحث مقایسه ی BCB و VC بود نه مایکروسافت و بورلند

----------


## Best Programmer

> به نظر این جانب همین که C++‎ Builder محصول شرکت بورلند است ولی Visual C محصول مایکروسافت برای اثبات برتری سی بیلدر کافیست. چرا که مایکروسافت اساسا این کاره نیست.


دوست عزیز . در دنیا VC بهترین و قوی ترین روش های بهینه سازی را داشته است . و تنها رقیب اصلی ان Intel C++‎ Compiler Vesion 8 و C-- و CodeWorrior بوده.

----------


## Inprise

> آقای اینپرایز میزان حمایت سی بیلدر از MFC در چه حدیه به طور کامل پشتیبانی میکنه و یا تا حدودی مثل دلفی 7 از net. :?:


الف . حمایت از  MFC کامل است هر چند در حضور وی سی ال ، برنامه نویسی با ام اف سی "احمقانه" است . ( حتی تصورش رو هم نمیکنم کسی که با هر دوی این موجودات تجربه کافی داشته باشه بتونه مقایسه بین اونها رو به ذهنش خطور بده  :wink:  )

ب) دلفی هفت ادعای خاصی در باب دات نت نداشت و اظهارشده بود که این صرفا" یک پری ویو است .

----------


## Inprise

> یقینا" برای همه منظورهای توسعه برنامه کاربردی VCL از MFC برتر است . حتی اگر مقصود توسعه کاربردهای مرتبط با لایه های پائین سیستم عامل باشه ، سی بیلدر هم سطح یا بالاتر از ویژوال سی است .
> 			
> 		
> 
>  :shock:  :shock:  :shock:  :shock:  :shock: 
> من تازه این تاپیک را دیدم.
> من اینجا 1 سوال مطرح میکنم. آیا شما در ‌BCB میتوانید یک exe ایجاد کنید که فقط 1 Message Box ایجاد کند و سایز EXE هم تنها 1024 بایت شود ؟


تصور میکنم میشه . اما فارغ از این مسائل ،... که چی ؟

----------


## Inprise

> VCL isn't really *all* that bad - well, it's built with delphi which (as all borland product these days?) generates pretty bad code, but one can live with that, considering where delphi/bcb is usually deployed. No, the really bad thing about BCB and Delphi is that people link to VCL statically. While I can understand this from the sense of distribution, it's major suckage - the executables would be much smaller with dynamic linkage.


نویسنده این متن ، حتی الفبای برنامه نویسی با سی بیلدر یا دلفی را نیز نمیدانسته دوست عزیز ، آیا قراره هر متنی که حاوی چند کاراکتر انگلیسی بود ، برای ما معنی و مفهوم یک سند علمی رو داشته باشه ؟ حتی یک پسر بچه 12 ساله که یک هفته با دلفی یا سی بیلدر کار کرده باشه میدونه توزیع نرم افزار همراه با کتابخانه های غیر پیوندی (  Static ) حتی از توسعه کاربردهای اینچنین تحت وی سی راحت تره ضمنا" چه از کاربردهای استاتیک چه دینامیک استفاده کنی نهایتا" حجم خروجی محصولات بورلند کمتره ، راستی ! دلفی دارای سریعترین کامپایلر 32 بیتی ویندوزه ، سرعت کامپایلر سی بیلدر ( بورلند سی ) هم به مراتب از سرعت کامپایلر وی سی بیشتره .

----------


## Inprise

> به نظر این جانب همین که C++‎ Builder محصول شرکت بورلند است ولی Visual C محصول مایکروسافت برای اثبات برتری سی بیلدر کافیست. چرا که مایکروسافت اساسا این کاره نیست.
> 			
> 		
> 
> دوست عزیز . در دنیا VC بهترین و قوی ترین روش های بهینه سازی را داشته است . و تنها رقیب اصلی ان Intel C++‎ Compiler Vesion 8 و C-- و CodeWorrior بوده.


در توضیح مطالب این دوستمون فقط کافیه اعلام کنم آخرین بهینه سازی کامپایلر ویژوال سی به استناد مهندسین بخش کامپایلر وی سی در نسخه شماره 4 این کامپایلر ( الان نسخه هفتش در حال کاربرده ) انجام شده و این دوستان مدعی اند متن کد این کامپایلر اونقدر پیچیده و "ماکارونی وار" است که جرات دست زدن به آن را ندارند ( ر-ک شماره 34 مجله شبکه - گزارشی از مایکروسافت - ترجمه مسعود سعیدی ) و تمام کسانیکه با وی سی برنامه نوشته اند ( و نه کسانیکه صرفا" در مورد آن صحبت میکنند ) به سرعت پائین کامپایلر وی سی معترفند  :wink:

----------


## SSP_Software_team

پس نتیجه میگیریم VC7 به پای BCB نمیرسه درسته؟
خوب میشه بگین آخرین ورژن BCB چنده آخه من تا حالا اصلا سراغ این یکی نرفتم :oops: 
ممنون

----------


## Inprise

الف . خیر . الزاما" وجود تعدادی قابلیت در یک محصول و نبودن اونها در یک محصول دیگه باعث برتری یکی بر دیگری نمیشه , به همون تعداد که از مزیتهای سی بیلدر عرض شد میشه نمونه هائی ذکر کرد که ویژال سی در اونها حرف اول رو میزند . اما بهر حال اگر هدفت تولید برنامه کاربردی سطح بالا مانند برنامه های مرتبط با بانک اطلاعاتی , لایه های بالای شبکه و ... امثالهم هستی سی بیلدر گزینه مناسبیه . ( وی سی هفت از دات نت حمایت میکنه در حالیکه سی بیلدر اینکار رو نمیکنه  در عوض سی بیلدر کیلیکس یعنی تولید همزمان برنامه برای چند پلت فرم رو حمایت میکنه و وی سی خیر و ... قس علی هذا)

ب. 6

خوش باشی

----------


## Best Programmer

تشکر. البته جسارت منو ببخشید که چیزی که کار نکرده بودم را اضحار نظر کردم  :oops: . و از بیانات متنور شما کمال استفاده را کردم.البته اگر میتوانید ان ترجمه را در اختیارعموم بزارید چون خیلی دوست دارم بیشتر با VC آشنا بشوم. :|

----------


## seyedof

سلام
من از هر دو کمپایلر سی بیلدر و ویزوال سی به طور همزمان و حرفه ای استفاده میکنم. هر کدوم در زمینه ای قویترند مثلا برنامه هایی که رابط کاربر پیچیده و مفصلی دارند رو  با بیلدر مینویسم چون واقعا در اینکار قویتره و سریعتر میشه برنامه رو نوشت و برای کارهای سیستمی و سطح پایین هم از ویزول سی چون در این زمینه قویتره. در ضمن کد خروجی ویزوال سی بطرز محسوسی سریعتر از کد خروجی بیلدر است که این خودش باعث میشه در یک سری کاربردها بدون احتیاج به تفکر اضافه ویزوال سی رو انتخاب کنیم.
در مورد حجم هم ویزوال سی در حالت Win32 App کوچکترین حجم exe خروجی را دارد اما exe خروجی MFC  از خروجی بیلدر که به صورت Static Stand Alone Exe باشد به مراتب بیشتر است.
اگر مورد دیگری هم بود در خدمتم:)

ممنون

----------


## Voldemort

دوستان عزیز شما حتما بهتر از من می دانید که در مورد کمپایلر ها دو زمان مد نظر است یکی زمان ترجمه برنامه و یکی زمان اجرای برنامه ترجمه شده.
در مورد زمان ترجمه برنامه حق با آقای نیاکی است و کمپایلر C++‎ Builder بسیار سریعتر از VC++‎ عمل می کند اما در مورد زمان اجرا می تونیم بگیم سریعترین زمان اجرای برنامه های ترجمه شده متعلق به برنامه های VC++‎ است. در این مورد به گفته خود شرکت بورلند C++‎ Builder حتی از Delphi هم کندتره و می تونیم بگیم Delphi از نظر زمان اجرای برنامه های ترجمه شده بعد از VC++‎ قرار می گیره. زمان کمپایل برنامه های C++‎ Builder کمی از زمان کمپایل برنامه های Delphi کندتره (یک مرحله بیشتر داره) بنابراین فکر می کنم اگه به محصولات بورلند علاقه دارید بهتره Delphi رو انتخاب کنید و اگه به محصولات مایکروسافت علاقمندید VC++‎ حرف اول رو می زنه.
اما یه نکته هم در خصوص فایده کار با C++‎ Builder بگم که فکر نکنید یه طرفه دارم حرف می زنم اونم اینه که کسی که C++‎ Builder کار می کنه براحتی می تونه به برنامه نویسی لینوکس با Kylix هم سوئیچ کند. حداقل راحتتر از برنامه نویسای VC++‎ که عادت به استفاده از MFC دارن.
در ضمن آقای نیاکی در مورد کلاسهای MFC کمی کم لطفی فرمودند. این موجود پیچیده هست ولی خیلی قوی. درست مثل مار بوایی که چنبره زده باشه!!!

----------


## Voldemort

با عرض پوزش حین تایپ به جای اسم آقای InPrise اسم آقای نیاکی را نوشتم :oops:

----------


## وحید محمودیان

سلام
من مدتها با ++C در محیط DOS کار کردم. بیش از 15 سال هست که با C آشنا هستم.
جد و آباد C تحت DOS رو در آوردم.
با ++VC و C++‎ builder هم کاملا آشنا هستم.
ببینید دوستان : نمیشه منکر قدرت فوق العاده بالای VC شد . اما مطلب اینجاست که این قدرت مربوط به زبان C است نه مربوط به microsoft . یعنی شما هر قدرتی رو که در VC میبینید قطعا در BCB هم وجود داره.
ضمن اینکه اگه یه کمی به گذشته برگردیم می بینیم که در محیط DOS کدام ورژن C پر کاربردتر و پر طرفدارتر بوده.
دیدم یه دوستی گفته بود که اینجا حرف از مقایسه ی VC و BCB هست نه از مقایسه ی borland و microsoft .
راستش این حرف درست نیست چراکه ببیند اصل هر دوی اینها یکی است. مثل این میمونه که شما دارید سره دوتا ماشین دعوا میکنید که هردو از یه مدلند فقط راننده هاشون یا هم فرق داره.
پس میبینید که اساسا این بحث به مقایسه ی borland و microsoft برمیگرده و باید خدمتتون عرض کنم که بنده حقیر که بیش از 15 ساله با C آشنا هستم میگم که borland خیلی بهتره.
توضیح و دلیل و مناظره اش بمونه واسه بعد ولی فقط بگم که بعضی ها برای اثبات بهتر بودن VC به برنامه های حرفه ای و زیادی که با اوون نوشته شده استناد میکنن (مثل خود دلفی ) که باید حضورشون عرض کرد که این فقط به این دلیله که VC محصوله همون شرکتیه که سیستم عامل برنامه مورد نظر رو نوشته(microsoft - windows) و شرکت نویسنده برنامه برای کمتر کردن دردسرهای ویندوزه سراپا دردسر مجبوره از محصول همون شرکت استفاده کنه.
ببخشید که پر چونگی کردم . آخه ما معلما رو ول کنی تا فردا حرف میزنیم
خوشحال میشم آقایون صاحب نظر نظرشون رو بگن تا ما هم استفاده کنیم
ارادتمند - وحید محمودیان

----------


## حسن صفوی

من فکر می کنم اکثر برنامه نویسان ایرانی تعصب زیادی به بورلند دارند چرا؟ چون در ایران شرکتهای بزرگ نرم افزار نویسی مثل ماکروسافت یا امثال اینها وجود نداره و معمولا تیم های برنامه نویسی ها در ایران 10 /15 نفری باشند. زبانی مثل C++‎Bilder ویا دلفی بدرد همین برنامه نویس ها می خورد ولی در شرکتی مثل دیسکریت که مثلا می خواد نرم افزار عظیم 3دی مکس را بسازد یا شرکت آتو دسک که می خواد آتو کد را بزازد هیچ وقت از محصولات شرکت بورلند استفاده نمی کنند چون جواب گوی کارشان نیست .همانطور که در ایران بورلند خوب خود را جا انداخته در آمریکا یا کشور های صنعتی اصلا برنامه نویس های محصولات بورلند رو جز برنامه نویس بحساب نمی ارند و از آنها به عنوان برنامه نویسان دستی یا خانگی نام می برند پس نتیجه می گیریم که ++VC زبان شرکت های بزرگ است و اگر کسی با این زبان آشنا باشد درآمریکا بزودی می تواند صاحب کار شود یادمان باشد که باید جهانی فکر کنیم و بورلند در کشور های جهان سوم دارای اعتبار است.

----------


## حسن صفوی

بورلند در کشور های جهان سوم دارای اعتبار است نه کل جهان!!

----------


## حسن صفوی

من نمی خوام یک جانبه به قضیه نگاه کنم ولی اکثر کار ها در VCL به طورخود کار انجام میشه مثلا ساختن توابع ولی در MFC تمام اعمال بشکل دستی توسط خود برنامه نویس تا نخ قضیه انجام می شود . خب این باعث می شود سرعت ساخت نرم افزار در VCL بسیار سریعتراز MFC باشد . چون در VC++‎ تمام اعمال حتی مدیریت حافظه بعهده بر نامه نویس است باعث می شود که MFC دارای قابلیت ها و انعطاف پذیری بیشتری نسبت به VCL شود این یک مزیت برای شرکت های بزرگ تولید نرم افزار است نه برای بر نامه نویسی که بخواهد به تنهایی یا چند نفره یک نرم افزار کوچکی بسازد باشد البته ماکروسافت هم برای انهایی که می خواهند از VC++‎ برای نرم افزار های متوسط و کوچک درست کنند زبان جدیدی بنام VC#‎ را ارزه کرده که نسبتا شبیه محصولات بورلند است یعنی سرعت تولید نر افزار را بالا برده یا به اصطلاح جز محصولات RAD است ولی قابلیت هیچ زبانی مثلVC++‎نیست و معمولا از شیوه های سنتی یا( تابع گرایی وشی گرایی) بکار رفته نه شی گرایی محض مانند .VC#‎

----------


## Inprise

> در آمریکا یا کشور های صنعتی اصلا برنامه نویس های محصولات بورلند رو جز برنامه نویس بحساب نمی ارند


فقط دربارهء مسائلی اظهار نظر کن که در موردش اطلاع یا تجربه داری .

----------


## حسن صفوی

آقای اینپرایز من که این اطلاعات رو که از خودم در نمی یارم چند تن از دوستان من در آمریکا برنامه نویس هستند و من رو به ادامه در محصولات ماکروسافت تشویق می کنند واین احظار نظری که شما از من نقد کردید نظر آنها بوده.

----------


## Inprise

نظرات دوستانت هم مثل آنچه تو نوشتی محصول یک جانبه نگری و کم تجربگی است . نوشتن فلان نرم افزار غول پیکر توسط یک شرکت معروف با استفاده از یک محصول خاص نه دلیل بر رجحان و برتری اون محصول است نه هیچ چیز دیگه . بسیاری از بزرگترین نرم افزارهای حیاتی و حساس نظامی و کنترلی با استفاده از BCB نوشته شده اند . لینک مربوطه رو قبلا" یه جائی داده بودم ؛ از نرم افزار جامع نیروی دریائی امریکا ؛ تا نرم افزار یک میلیارد دلاری پردازش تصویر یک ماهواره ژاپنی و ...غیره . به همین ترتیب میتونم برنامه های فوق العاده حساسی که با VC و غیره توسعه داده شدن معرفی کنم . 

محصولات بورلند بطور وسیع مورد کاربرد و استفاده هستند . چه اینجائی که بنده فعلا" سکونت دارم ؛ چه کشورهائی مثل امریکا و آلمان و غیره که تجربشون کردم ؛ اونطوری که برات گفتند نیست . اصولا" غربیها اینقدر احمق نیستند که سیستم تصمیم گیری شون مبتنی بر کارخونهء سازندهء یک چیز باشه . برای انجام دادن یک پروژه از مشاورین زبده و با تجربه استفاده میشه که صرفا" به محصول فکر میکنن ؛ حرفه ای و تجاری . 


قصد نداشتم بحث رو فنی کنم اما :




> اکثر کار ها در VCL به طورخود کار انجام میشه مثلا ساختن توابع ولی در MFC تمام اعمال بشکل دستی توسط خود برنامه نویس تا نخ قضیه انجام می شود . خب این باعث می شود سرعت ساخت نرم افزار در VCL بسیار سریعتراز MFC باشد . چون در VC++‎ تمام اعمال حتی مدیریت حافظه بعهده بر نامه نویس است باعث می شود که MFC دارای قابلیت ها و انعطاف پذیری بیشتری نسبت به VCL شود


این دیدگاه متعلق به کسی است که نه با VCL آشناست و نه با MFC . 

MFC تابع ندارد ؛ کلاس دارد . مدیریت حافظهء VCL هم چیزی بیشتر از MFC نیست . ( هر دو یک کار رو انجام میدن ؛ با حدود و ثغور مختلف ) طبیعی است که کاربران VCL بصورت همزمان میتونن از خودکار سازیهای اون استفاده کنن ؛ هم ؛ میتونن از کلیه ویژگیهای سطح پائین C و CPP بهره مند باشند. بدون کوچکترین خللی . ضمن آنکه برنامه نویسان BCB میتونن داخل همین محیط هم به توسعه MFC ادامه بدن ؛ یا حتی برنامه های مخلوط VCL و MFC تولید کنند و ...الخ ؛ MFC در یک کلام هیج انعطاف پذیری بیشتری نسبت به VCL ندارد . اگر کسی چنین اعتقادی داره ؛ بدون حرافی و استفاده از کلمات کلی ؛ با نوشتن چند سطر کد MFC و مقایسه اون با معادل VCL اش ؛ این انعطاف بیشتر رو نشون بده ؛ در مقابل من حاضرم با هر کسی که MFC رو میشناسه و باهاش کار کرده ؛ تو یه بحث فنی ؛ اثبات کنم انعطاف و کارائی MFC به مراتب کمتر از VCL است . دولت انگلستان کلیه نرم افزارهای بازیابی اطلاعات ، Forensics Investigation و فایروالهای شخصی اش رو با استفاده از BCB توسعه داده ( ر-ک نامهء پاول گستاوسون به بورلند ) و ... ؛

موفق باشی

----------


## حسن صفوی

مچکرم از راه نمایی های ارزشمندتون آقای اینپرایز

----------


## حسن صفوی

آقا اینپرایز بزودی منتظر باش تا برایت ثابت کنم MFC چیز دیگریست VCL فقط با اجزا بسیار زیاد خودش بعضی از برنامه نویسان رو بطرف خود کشیده نه چیز دیگری .

----------


## Inprise

:sorry:

----------


## حسن صفوی

آقای inprise من این موضوع را از چند تا  اساتید مهندسی نرم افزار پرسیدم هیچ کدام از آنها نظر شما را قبول ندارند .من خودم شخصا تجربه زیادی درکار با VCL ندارم و نمی توانم ضعف او را بگویم ولی آنچه مسلم هست اینکه من به غیر از شما کسی را ندیدم که بگوید BCB از VC قویتر است.

----------


## Inprise

آفرین به تو  :موفق: 

it's over

----------


## ali_hadian

سلام 
آقا این دو برنامه کدومشون به پای QT می رسند؟
اولا که هم تحت لینوکسش هست هم تحت ویندوز
ثانیا همه قابلیتهای اون دو تا رو با هم داره
ثالثا Open Source   است
دیگه چی میخواین؟ :sunglass:

----------


## حسن صفوی

آقای هادیان آخر تبلیغ خودتون رو کردی کجا QT به پای VC میرسه نکنه در لینوکس؟

----------

