تالار گفتمان nCIS.ir

نسخه‌ی کامل: آیا #C همون کاربرد ++C و C رو داره ؟
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.

ABZiko

سلام، من یکم #C در حد کار کردن با Access و غیره رو برای #C یاد گرفتم و از زبونش خوشم اومده، چون می خوام در کنار PHP و وب یک زبان تحت ویندوز هم بلد باشم، به خاطر همین این زبان رو انتخاب کردم ...
یک سوالی هست یک چند وقتی هست که ذهنم رو مشغول کرده، اکثر امکاناتی که نوشته شده از جمله Encoding x265 و غیره با زبان ++C و C نوشته شدن، حالا اگر من بخوام وارد این #C به صورت حرفه ای بشم، آیا کار هایی که ++C و C می تونن انجام بدن، #C هم می تونه انجام بده ؟ یعنی با همون کیفیت و قدرت؟
خیر همه ی کارها رو نمیشه با #C انجام داد مثلا برای بینایی ماشین در ++C ما opencv رو داریم که میتونه روی بردهای الکترونیکی مثل raspberry pi لینوکس نصب کرد و کارهای جالبی رو با سرعت بالا انجام داد
(کپی پیست از سایت برنامه نویس: لینک)

کتابخونه های مطرح C++‎‎‎‎‎‎‎ که میشه ازشون استفاده کرد عبارتند از:

1. گرافیک سه بعدی DirectX و OpenGL
2. گرافیک دو بعدی OpenGL، Direct2D, GDI و +GDI
3. صوت: OpenAL, Fmod و Bass
4.GUI پنجره ای: Qt، GTK, MFC, SDL , wxWiddgets
5. فیزیک: Nvidia Physix, Nvidia Apex, Bullet, Box2D, ODE, Open Dynamics و ...
6. کتابخونه های کارهای عمومی: Boost, Qt, STL و ...
7. کتابخونه های شبکه: Poco, Qt, RakNet, ReplicaNet, SDL
8. هوش مصنوعی: OpenAI, FEAR, OpenSteer, PathLib و هزارن کتابخونه دیگه.
9. پردازش تصویر: OpenCV, OpenNI
10. پردازش موازی: OpenCL, OpenML, CUDA و هزاران کتابخونه دیگه از جمله خود API سیستم های عامل
11. اسکریپ نویسی: Lua, LuaPlus, Phyton و ... (تقریبا تمامی زبانهای اسکریپت کتابخونه برای C++‎‎‎‎‎‎‎ عرضه می کنن.)
12. ورودی ها: OpenInput, Qt, SDL, SFML و البته خود API سیستم عامل
13. گیم انجین ها: Unreal Engine, OGRE, Irrlicht, KGE و ... (که همه اینها علاوه بر عرضه بصورت نرم افزار به صورت کتابخانه های C++‎‎‎‎‎‎‎ هم عرضه میشن.)
14. موتورهای وب: WebKit, ClearSilver, Teng و ...
15. کار با فایلهای ویدویی: FFMPEG, GSTREAM و ...
16. کار با فایلهای تصویری: DevIL, QT, SDL و ...
17. و هر چیزی که شما اراده کنید وجود داره.

اگه میخواهید از #C برای برنامه نویسی ویندوز اپلیکیشن و برای وب از PHP استفاده کنید نه ASP.net، من توصیه میکنم Qt یاد بگیرید که یک فریمورک مبتنی بر ++C است : qtips.ir

ABZiko

ازتون ممنونم بابت پاسختون ...
پس شما کلا می گید برم سراغ ++C درسته؟ اتفاقا خودم هم دیدمش خوشم اومد چون می دونم قدرتش بیشتر از این حرفا هست ...
می خواستم بدونم زبان ++C مثل #C به IDE خاصی نیاز داره یا نه ؟
راستی اگر می شه درباره Qt بیشتر صحبت کنید، ممنون می شم ...
آقای کامبیز اسدزاده یک PDF در این زمینه دارند که خیلی خوب توضیح داده اند.

Qt یک فریمورک مبتنی بر ++C هست. همونطوری که دات نت برای #C یک فریمورک محسوب میشه.
برای برنامه نویسی Qt میتونید توی ویژوال استدیو هم کد بزنید ولی IDE خوب Qt Creator برای اون ساخته شده.
توصیه میکنم قبل از رفتن سراغ کیوت، اول با کتابخونه های استاندارد ++C کار کنید و اشاره گرها و شیء گرایی و نوع داده هایی که توی نسخه های جدید ++C وجود داره ولی توی دانشگاه به ما میگفتن وجود نداره ( مثل string یا vector و ...) آشنا بشین. سایت Qtips.ir خیلی خوب در زمینه آموزش کیوت فعالیت داره.

موفق باشید
سی شارپ فقط برای برنامه های تحت دسکتاپ با فرض اینکه سیستم عامل شما ویندوز باشه بدرد میخوره و app نویسی واسه گوشی ... ++C و C دامنه ی کارهایی که میشه باهاش انجام داد همونطور که دوستمون گفتن خیلی زیاده
کاربردای اونارو نداره کلا C و ++C تقریبا میشه گفت مادر بیشتر زبانای الانن ولی خب به نظرم سی شارپ شما یادبگیرین بیشتر بکارتون میاد

ABZiko

تشکر از عزیزان، یک سوال دیگه هم برام پیش اومد، آیا می شه با ++C برنامه هایی مثل Windows Form برای ویندوز نوشت؟ یعنی مثلا با استفاده از Visual Studio و ... ؟
وقتی خوده ویندوزو با ++C/C نوشتن به نظرتون چیزی وجود داره که نشه باهاش نوشت؟ Angel
(13-05-1394، 12:42 ق.ظ)ABZiko نوشته: [ -> ]تشکر از عزیزان، یک سوال دیگه هم برام پیش اومد، آیا می شه با ++C برنامه هایی مثل Windows Form برای ویندوز نوشت؟ یعنی مثلا با استفاده از Visual Studio و ... ؟

مورد چهارم:
4.GUI پنجره ای: Qt، GTK, MFC, SDL , wxWiddgets

که من Qt رو توصیه میکنم

شما کتاب آقای اسد زاده رو دانلود کنید کمی مطالعه کنید، از سایت Qtips.ir بازدیدکنید اگه تونستید ویدئوهای آموزش کیوت از صفر صفر (30 قسمت رایگان) رو ببینید خیلی از سوالات رفع میشه.

شما احتمالاً مثل خیلیای دیگه ++C رو یک محیط متنی میبینید که حتی نوع داده string نداره و باید از *char استفاده کرد!
نه خیر الان نسخه 14 ++C هم اومده چیزی که توی دانشگاه درس میدن نسخه 6 و پایین تره.


برنامه های مبتنی بر ویندوز، لینوکس، اندروید، ios، بلک بری و ... رو با Qt میشه ساخت. تصویر محیط Qt Creator ضمیمه شد.


موفق باشید
Qt اینا برای برنامه های بزرگ و مفصل.
من برای کارهای کوچک از پایتون استفاده میکنم.
همون Tk که همراه پایتون هست تاحالا برام کفایت کرده. ساده و راحته یادگیری و استفادش.
ضمنا پایتون هم زبان عالی ای برای برنامه های کوچک و یوتیلیتی هست. اسکریپتی بودنش هم این خوبی رو داره که کد منبع و برنامهء نهایی یکی هستن و مشاهده و بررسی و ویرایش و تست رو خیلی ساده تر میکنن. یکی از مزایای برنامه های اسکریپتی هم که تازگی به ذهنم رسید اینکه که در خیلی موارد نیازی به فایلهای کانفیگ جانبی خارج از برنامه و کدنویسی و پیچیدگی اضافه بخاطر اونا نداری، چون میتونی براحتی متغییرهای کانفیگ رو ابتدای خود برنامه یا حتی توی سورس فایلهای مختص خودشون بذاری و هر وقت خواستی مقدار اونا رو تغییر بدی و سیو کنی و تمام! ولی توی یه برنامهء کامپایل شده و فایل اجرایی که نمیشه این کار رو کرد و برای هندل کردن کانفیگ و تنظیمات نیاز به فایلهای جانبی و منطق و کدهای مخصوص خوندن و parse کردن اونا هست که حتی اگر از ماجول های آماده مخصوص این کار هم استفاده کنی بازم بهرحال کد و تشکیلات اضافه میخواد و مستقیما و واضح و سرراست توی بطن و منطق خود برنامه دم دست نیست.
توی کیوت کلی وقتم سر کامپایل تلف میشد. گاهی هم حواست نبود تغییرات رو کامپایل نکرده بودی برنامه رو تست میکردی. کلا ابزارها و محیطش خب سنگین تر و پیچیده تره دنگ و فنگ بیشتر داره.
برتری اینطور زبانها مثل سی++ بیشتر در همون پرفورمنس هست دیگه.
مثلا من یه برنامه کوچک که قبلا با کیوت نوشته بودم بررسی کردم چقدر ram رو گرفته و با یه برنامه کوچک پایتون مقایسه کردم دیدم برنامه پایتون سه برابر ram اشغال کرده! ضمنا برنامه کیوت خب سریعتر هم اجرا میشه، ولی این در خیلی موارد اهمیت چندانی نداره که بخاطرش انتخاب زبان تحت تاثیر قرار بگیره، در بعضی موارد هم اهمیت داره خب! حتی همون مصرف ram هم بازم چندان اهمیتی نداره. فقط من فکر میکردم چون حجم dll های کیوت زیاده حتما مصرف رمش هم زیاده، ولی دیدم اینطور نیست، شاید چون فقط بخشهایی از کیوت که برنامه استفاده میکنه load میشن؟ یعنی مقدار رمی که برای برنامه کیوت توی تسک منیجر ویندوز نشون میده از حجم dll های همراه برنامه خیلی کمتره.