View Full Version : c# یا c++
fazlnet
پنج شنبه 05 اردیبهشت 1387, 20:14 عصر
سلام
چند وقته خیلی ها تون این سوال رو میکنید که کدوم یکی از این دو زبان مناسبند که من لازم دیدم یکسری حقایق رو بگم که ممکنه ناراحت بشید اما به نفع شماست:
1. اولن اگر شما تازه به برنامه نویسی رو اوردید واستون فرقی نداره پس خودتونو قاطی این بحث ها نکنید چون هم از هدفتون دور میشید و هم چیزی متوجه نمیشید
2. اگر ادعا دارید که برنامه نویسید و از ریز و درشت کار آشنایید و قابل مجادله پس یه بحث رو شروع کنید و به یه جایی برسونید .
شما هی میگید سی # کنده و سی++ سریع و آیا میدونید سی++ میتونه خیلی کندتر از سی# باشه و دلیلش هم رعایت نکردن شما از اصول برنامه نویسی هست.
حال با این تفاسیر اگر دلیل کندتر بودن سی# از سی++ رو میدونید بگید وگرنه بقیه رو با حرفاتون گیج نکنید و بحث رو هم عوض نکنید.
بازم ممنون
:عصبانی:
PC2st
پنج شنبه 05 اردیبهشت 1387, 21:08 عصر
حال با این تفاسیر اگر دلیل کندتر بودن سی# از سی++ رو میدونید بگید وگرنه بقیه رو با حرفاتون گیج نکنید و بحث رو هم عوض نکنید.
سی# کندتر از سی++ هست، چون:
1) انواع اصلی داده در سی# به اندازه انواع اصلی داده در سی++ سریع نیستند.
چون بر خلاف سی++، توی سی# یک نوع داده مثلا int یک نوع داده ساده نیست و در واقع یک کلاسه که از کلاس ValueType مشتق شده و اون هم از کلاس Object مشتق میشه. ولی در سی++، نوع int یک نوع خیلی ساده و بدون امکاناته که فقط مشخص کننده مقدار حافظه لازم برای ذخیره کردن و یا کار کردن با بخشی از حافظه است.
2) سی# از دات نت فریم ورک استفاده میکنه که به همین دلیل هم در حین اجرای کدهای سی#، قبلش یه کامپپایل کوچولو باید صورت بگیره (شایدم مفسر بود، یادم نمیاد!) :-) پس مقدار کمی، کندتر از برنامه های سی++ بالا میاد.
3) توی یک حلقه for، تنها یک مقدار رو به تعداد خیلی زیاد (مثلا 1000000000000 بار) به یک عدد اضافه کن. یک کد رو در سی# و یکی دیگه رو توی سی++ بصورت realse (نه debug) کامپایل کنین، با یه چیزی تایم بگیرین، خودتون بهتر متوجه میشین :-)
من خودم لازم بود و این کار رو امتحان کردم، جالب اینجاست که سرعت اتمام برنامه سی++ در اون حالت یک چهارم همون برنامه در سی# بود. که البته اینهم کاملا طبیعیه. (جالب اینجاست که من این تست رو بین C++/CLI و سی# انجام دادم ولی توی C++/CLI از کد native استفاده کردم و برای تایمر هم از کلاسی managed بنام StopWatch استفاده بردم، شما هم اگه اینطوری امتحان کنین راحت تره.)
قبوله، ممکنه هر برنامه ای 1000000000000 پردازش نخواد روی یه عدد انجام بده، پس اگه توی برنامه ای این مقدار پردازش لازم بود: سی++ بهتره در غیر اینصورت: سی#.
آیا میدونید سی++ میتونه خیلی کندتر از سی# باشه و دلیلش هم رعایت نکردن شما از اصول برنامه نویسی هست.
این امر از سی# مستثنی نیست ولی قبول دارم که احتمالش تو سی# کمتره.
سی# مزایایی داره که سی++ نداره و بالعکس.
جاهای زیادی خوندم که:
سی# = سرعت در طراحی
سی++ = قدرت در performance
pswin.pooya
پنج شنبه 05 اردیبهشت 1387, 23:49 عصر
سلام
عملا چون سی شارپ از یه CLR استفاده میکنه و این یعنی یه لایه رابط اضافی نسبت به سی ++ پس باید کندتر باشه این دقیقا مثل قضیه com داخل DX میمونه و قضیه برنامه نویسی نادرست هم میتونه برای سی شارپ هم صادق باشه. مساله بعدی اینه که شما مدیریت حافظتون داخل سی++ به مراتب قویتر و بیشتر هستش پس داخل یه بازی که با حافظه خیلی زیاد سروکار داره شما باید بتونین به بهترین نحو حافظه موجود رو کنترل کنید.
Nima_NF
جمعه 06 اردیبهشت 1387, 03:22 صبح
دسترسی مستقیم به سخت افزار را هم در ++C به صحبت های دوستان اضافه کنید.
مقاله زیر برای بیان تفاوت های برنامه نویسی native با ++C/C در مقایسه با سایر زبان ها از جمله #C از زبان مایکروسافت نوشته شده، مطالب اصل انگلیسی و لینک فیلم توسط توسعه دهندگان Visual studio مایکروسافت قرار داده شده است. حرف هایی که خود مایکروسافت سازنده C# و دات نت بیان کرده است،
اگر مطالب شما را راضی نکرد خودتان شخصا با آن ها تماس بگیرید و در مورد انتشار چنین مطالبی انتقاد کنید !
http://barnamenevis.org/forum/showthread.php?t=94381
موفق باشید
AliyerEdon
چهارشنبه 11 اردیبهشت 1387, 16:30 عصر
به نظر من هرکی با هرچی راحت تره باید کار بکنه. اگه با C# می تونی بهتر کار کنی، نگران سرعت نباش. شما فقط به کارهایی که می تونی تو زبان ها انجام بدی اکتفا کن.:لبخندساده:
مثلا شما شاید یکی بتونه تو #C یه World Editor بسازه اما تو ++C نتونه. اگه شما با ++C خیلی راحتی، بهتره با همون کار کنی.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.