انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: چرا از C++ به جای C استفاده نمیشه  (دفعات بازدید: 6046 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین userb

  • Jr. Member
  • *
  • ارسال: 96
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #15 : 31 اردیبهشت 1394، 04:33 ب‌ظ »
میدانیم زبان c++ همون زبان c است که یه سری ویژگیهای جدید مثل شی گرایی بهش اضافه شده . یعنی تقریبا همون زبان c است و چیزی از پلاس پلاس کم ندارد خوب حالا چرا برای نوشتن کرنل و برنامه های سیستمی وکلا برنامه های بسیار سطح پایین(اسمبلی) از c++ استفاده نمیشه و بیشتر از c استفاده میشه مثل کرنل یونیکس /لینوکس؟؟
هر زبانی برای کاری ساخته شده و بسته به سن و عمر یک زبان و کاربردش می‌تونه محبوبیت بیشتر یا کمتری داشته باشه. شاید یکی از دلایل اینه که اولین استاندارد Cpp حدودا تا سال ۱۹۹۸ زمان برد، درحالیکه پروژهایی مانند گنو، پیش از این کار خودشون رو با زبانی مانند سی شروع کرده بودند؛ یا مثلا، کرنل لینوکس در ۱۹۹۱ اولین نسخه خودش رو ارائه داده بود (ویکی‌پدیا).
به‌نظر من، Cpp  زبانی بسیار پیچیدست، یادگیری اون مشکله و برای پروژه‌های بزرگ مناسبه، مثلا پروژه‌هایی که بیش از ۱۰ برنامه‌نویس داره؛ در اینجا چاره کار استفاده از زبان‌های بی‌نظیری مثل Cpp هست تا به ‌راحتی بتونن گروهی روی یک پروژه کار کنند. به‌طور نمونه، هم از سی و هم از سی++ در NASA JPL استفاده می‌شه؛ در International Space Apps Challenge ناسا که بصورت یک رویداد سالانه اجرا می‌شه امکان استفاده از فریمورک Qt رو به مشارکت‌کنندگان دادند که خوب مختص سی++ هست. در محصولات ادوبی یا اتودسک هم بیشتر از زبان سی++ استفاده می‌کنند - با کتابخانه‌های متفاوت - اما این پروژه‌ها محدود به یک زبان نیستند.
موضوع اینجاست، وقتی کسی می‌تونه یک برنامه‌ای رو با زبان سی به راحتی بنویسه - که یادگیری ساده‌تری نسبت به سی++ داره، در زمان کمتر یک پروژه رو می‌تونن اجرا کنند که به‌همان‌سان سودآوری بالاتری داره -، چرا باید وقتش رو روی پیاده‌سازی شی‌گرا بزاره؟ من خودم با Cpp کار می‌کنم (کارآموز هستم)، اگر این شناخت و تفاوت زبان‌ها رو پیش‌تر می‌دونستم، شاید با سی کار می‌کردم. وقتی می‌تونن یک کرنل یا برنامه ایمکس، یا گیت، گیمپ یا پیجین رو با C بنویسن، چرا باید خودشون رو درگیر انجام کارهای اضافه در سی++ کنند؟ اگرچه سی یک زبان سطح سیستم معرفی شده، اما وقتی توانایی انجام کارهای موردنظر رو با این زبان دارند، چرا انجام ندهند و وقتشون رو صرف یادگیری و اجرا با زبان دیگه (نه لزوما سی++) بکنند؟ اما خوب یکی هم اینقدر حرفه‌ای میشه که از روی علاقه میاد یه سیستم‌عامل رو با سی++ پیاده می‌کنه (BeOS). کسانی هم هستند که کار‌های کوچکی رو مانند Stardict یا چغوک رو با سی++ پیاده می‌کنند.
به نظر من مهم این نیست که چرا یک زبان رو به یک زبان دیگه ترجیح می‌دن، مهم اینه که به هدفی که دارن می‌رسن و به درستی اجراش می‌کنند.
« آخرین ویرایش: 31 اردیبهشت 1394، 04:42 ب‌ظ توسط userb »

آفلاین userb

  • Jr. Member
  • *
  • ارسال: 96
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #16 : 31 اردیبهشت 1394، 05:30 ب‌ظ »
لینک‌ی که آقا دانیال اشاره کردند خیلی جالب بود.
« آخرین ویرایش: 31 اردیبهشت 1394، 10:01 ب‌ظ توسط userb »

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #17 : 31 اردیبهشت 1394، 08:30 ب‌ظ »
GCC کامپایلر نیست، یک مجموعه از کامپایلرهاست که توش هم C داره، هم ++C، هم فورترن و…
دانیال جان به نظرم منطور اون دوستمون پیاده سازی اون کامپایلرا بود.هرچند که نمیدونم آیا همه ی کامپایلرای موجود تو gcc رو با سی پلاس پیاده سازی کردن یا نه.

استالمن: http://harmful.cat-v.org/software/c++/rms
توروالدز: http://harmful.cat-v.org/software/c++/linus
آدم‌های معروف دیگه: http://harmful.cat-v.org/software/c++/coders-at-work
دانیال جان خودتم میدونی که این بزرگواران اساسا با شی گرایی مشکل دارن. به نظر شما این قضیه بیشتر به سلیقه ی اون آدما برنمیگرده؟ چون بهرحال هرکدوم از اونا حداقل یه کار بزرگ انجام دادن و چون سلیقه و تکنیکشون چیزی مخالف با شی گرایی بوده احتمالا هیچوقت دیگه باهاش موافق نخواهند بود. مث اینه که شما به مورینیو بگی که شیوه ی بازیتو عوض کن. اونم هزارتا دلیل میاره که چون من ۱۰ ساله با این روش خیلی موفق بودم دلیلی نمیبینم که روشمو عوض کنم
به گمانم در هیچ جای دنیا دو الف مست را پیدا نخواهید کرد! البته بجز در سردابه های الف های سیاه بیشه!

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #18 : 31 اردیبهشت 1394، 08:47 ب‌ظ »
این موضوع همیشه بوده بهتره دنبالش نباشید چون هرکسی براساس تجربهٔ خودش نظر می‌ده و دلیلی برای اینکه شما هم از اون روش استفاده کنید من به شخصه نمی‌بینم پس بهتره با مقایسهٔ زبون‌ها وخت خودمون رو هدر ندیم و بریم سراغ موضوع‌های فنی‌تر که کجا و کی باید از چه زبونی استفاده کنیم. تا اونجایی من اطلاع دارم از زبون سی‌پی‌پی بیشتر در برنامه‌نویسی جامع استفاده می‌شه و از زبان سی در موارد تخصصی‌تر و زمانی که سرعت و مجموعه ویژگی‌های زبان اهمیت داره. البته شاید از سی‌پی‌پی در برنامه‌های تخصصی هم استفاده بشه ولی گمونم به‌اندازهٔ سی فعلاً‌ باهاش کار انجام نشده و هنوز بیشتر شرکت‌ها و حتی افراد سعی می‌کنن به سی تکیه کنن و سراغ سی‌پی‌پی نرن البته من علت اصلی این کار رو نمی‌دونم پس نمی‌تونم نظر مطلق بدم. با هرچی حال می‌کنید از همون استفاده کنید خیلی هم جواب داده و در آینده هم خواهد داد ;D

آفلاین 不眠症

  • Full Member
  • *
  • ارسال: 191
  • جنسیت : پسر
    • lazygeek
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #19 : 01 خرداد 1394، 08:09 ب‌ظ »
برای پروژه های حساس و مهم به این راحتی هم نیست که توسعه دهنده طبق تجربه یا سلیقه ای یک ابزار رو انتخاب کنه!

c برای پروژه های سطح پایین تر یعنی برای پروژه هایی که به سخت افزار نزدیک تر باشد مناسب تره و c++ برای پروژه های که اهمیت چندانی برای سخت افزار قائل نیستیم مناسب تر است.

علت فنی: کامپایلر برای c++ کد پیچیده تر یا بیشتری تولید میکند به خاطر ویژگی های اضافی که به این زبان اضافه شده و این ویژگی ها برای پروژه های سطح بالا یا در سطح سیستمی مفید خواهد بود چون روند تولید رو بهبود و سرعت می بخشد. اما در سطح سخت افزاری گاهی نیاز داریم با ساختار و کارکرد cpu و کدهای اسمبلی درگیر شویم و در اونجا یک خط کد اضافه مهم خواهد بود برای همین زبان سی بهترین راه حل خواهد بود برای کمترین overhead و .... پس زبان سی میتواند انتخاب مناسبی برای توسعه کرنل باشد و برنامه هایی مثل بازیهای کامپیوتری و برنامه های سیستمی زبان c++ انتخاب بهتری خواهد بود.

هر چند!! با تجربه ها محدودیتی در استفاده از هر کدامیک از این زبانها رو ندارن! یعنی در واقع ممکن است c++ توسعه بدن اما با سینتکس و تفکر ساختار c این کار رو انجام بدن.
« آخرین ویرایش: 01 خرداد 1394، 08:10 ب‌ظ توسط 不眠症 »

آفلاین K-FIVE

  • Jr. Member
  • *
  • ارسال: 94
  • جنسیت : پسر
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #20 : 15 تیر 1394، 06:20 ب‌ظ »
ببخشید این سوال رو می پرسم
الان اگه کسی بخواد شروع ب یادگیری زبان کنه
از C شروع کنه یا ++C ?
ممنون میشم دلیل هم بیارید برای نظرتون.
« آخرین ویرایش: 15 تیر 1394، 09:30 ب‌ظ توسط K-FIVE »

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19754
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #21 : 15 تیر 1394، 09:22 ب‌ظ »
ببخشید این سوال رو می پرسم
الان اگه کسی بخواد شروع ب یادگیری زیان کنه
از C شروع کنه یا ++C ?
ممنون میشم دلیل هم بیارید برای نظرتون.
در محیط‌های آکادمیک از سی شروع می‌کنن معمولاً، چون در سطخ پایین‌تری کارها رو انجام می‌ده و کاربر دقیقاً متوجّه می‌شه چه اتّفاقاتی قراره بیفته.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین K-FIVE

  • Jr. Member
  • *
  • ارسال: 94
  • جنسیت : پسر
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #22 : 15 تیر 1394، 09:35 ب‌ظ »
ببخشید این سوال رو می پرسم
الان اگه کسی بخواد شروع ب یادگیری زیان کنه
از C شروع کنه یا ++C ?
ممنون میشم دلیل هم بیارید برای نظرتون.
در محیط‌های آکادمیک از سی شروع می‌کنن معمولاً، چون در سطخ پایین‌تری کارها رو انجام می‌ده و کاربر دقیقاً متوجّه می‌شه چه اتّفاقاتی قراره بیفته.
ممنون
خب اگه مستقیم از سی پلاس شروع بشه / ایا چیزی از قلم میافته ؟
ایا ممکنه طرف مجبور بشه بگرده و کد سی رو مرور کنه

و اگه هدف جاوا باشه چی؟ ایا سی پلاس و بعد جاوا
یا سی و بعد جاوا؟
ممنون

آفلاین alireza.crs

  • Sr. Member
  • *
  • ارسال: 491
  • جنسیت : پسر
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #23 : 15 تیر 1394، 10:19 ب‌ظ »
هیچ کس حق نداره c++ رو به خاطر شی گرایی نقد کنه .تفاوت های c با c++ فقط تو شی گرایی نیست
c++ مجبورتون نمیکنه از شی گرایی استفاده کنین.برعکس جاوا و c#.با این حال برای کسایی که از شی گرایی استفاده میکنن
کامل ترین پشتیبانی رو از شی گرایی داره(در حد جاوا)

میگم ای کاش به جای مقایسه زبان های برنامه نویسی ،به مقایسه سبک های برنامه نویسی می پرداختین
ایا شی گرایی خوبه؟واقعا سرعت رو افزایش میده یا باعث پیچیده شدن پروژه میشه؟یا مثلا سبک های دیگه رو نقد میکردین


آفلاین ava

  • High Hero Member
  • *
  • ارسال: 1330
پاسخ : چرا از C++ به جای C استفاده نمیشه
« پاسخ #24 : 17 تیر 1394، 02:39 ق‌ظ »
هر کدوم کاربرد خودش رو داره
برنامه ای که شما میتونی در عرض 3 ماه با c++ پیاده سازی کنی در عرض یک سال هم با سی نمیشه پیاده سازی کرد
در جایی هم برعکس مثلا شما وقتی در سطح خیلی پایین کار میکنی و بیت بیت کد ها مهمه و صفر و یک ها برات مهمه و خودت تو مغزت مثل یک سی پی یو باید کد ها رو برسی کنی سی به دلیل سادگیش کاربردش بیشتره . البته خوب اسمبلی از این نظر خیلی بهتره از سی ولی اون دیگه خیلی خیلی کار رو طولانی میکنه و در پروژه های کوچیک ازش استفاده شده ولی چیز بزرگی مثل کرنل لینوکس رو همون سی مناسبشه و بعدا تغیر دادنش هم ساده تره .
به نظر من به شخص و پروژه مربوط هست زبان و نمیشه گفت کدومش بهتره یا کدوم بدتره
صدای پلیس : هاپ هاپ