مگر قرار بود از برنامه نویسان C# جواب بشنوی ؟ تا جایی که بنده میدونم اینجا تالار های C++ هست نه دیگر زبان ها ! :متفکر: و شما سوالتون راجب C++ بوده نه C# پس مسلما من یا اشخاصی که با این زبان آشنا هستند پاسخ در رابطه با این سوال میدهند.
Printable View
گویا باب شده هر چند وقت یکبار یه نفر بیاد و بگه فلان زبان خوبه فلان زبان بده.
این زبان نیازی به اثبات قدرتش توسط برنامه نویسها نداره و صد البته هیچ برنامه نویسی هم نیاز به اثبات قدرت کد زنی خودش به شما نداره.
انگار واقعا این طرز تفکر که همش دنبال بحث های حاشیه ای در مورد زبان های مختلف باشیم داره به یه سنت تبدیل میشه.
خوبه که هر کس روی نقاط قوت خودش کار کنه.
شما اگه رابطت با #C خوبه خب بسم ا...
دیگه به بقیه چیکار داری که کی چه زبانی رو ترجیح میده.
انتخاب زبان یه امر کاملا اختیاریه که هر کس بنا به صلاحدید خودش و با توجه به زمینه کاریش اونو انتخاب میکنه.
واقعا خوب میشد مدیران محترم به این جور تاپیک ها رسیدگی کنن، آخه قرار نیست که هر کس یادگیری ++C براش سنگین بود ما ازش دلجویی کنیم و از خوبی های این زبان براش بگیم که.
لطفا ارزش علمی این سایت رو با این پست های پوچ پایین نیارید و خودتون یه زبان رو انتخاب کنید و بچسبید به همون.
می گن کسی که خواب هست رو می شه بیدارش کرد ولی کسی رو که خودش رو زده به خواب نمی شه بیدار کرد!
حیف که فقط برخی ها دنبال مچ گیری هستند و نه بحث علمی، با دلیل، مدرک و منطق!
بفرمایند دوستان نرم افزارهای مطرح و بزرگی که از کیوت استفاده کردند رو در این لینک مشاهده کنند
این لینک هم جنبه آموزشی داره و برنامه های کوچک کیوت هست
یه نکته رو هم اضافه کنم، معمولا از بقیه زبان ها و فریمورک ها به C++ و کیوت مراجعه می کنند، چون در خیلی از زبان ها بعضا می بینند، نمی تونند نیازشون رو اون طوری که می خوان برطرف کنند (خودم پروژه خیلی خوب و قوی با دات نت نوشتم (و هنوز هم دات نت رو به فراموشی نسپردم!)، ولی آخرش چی شد؟ برگشتم از صفر C++ خوندم! C++ ای که ترم های اول دانشگاه (البته الآن چندین سال گذشته) یه استاد باتجربه بهمون فوق العاده پیشنهاد می داد و خودش دربارش کتاب داده بود بیرون و شنیده بودم از نظر مالی هم خوب تونسته بود ازش پول در بیاره!)
پس دیگه خواهشا از تعصب حرف نزنید، از اینکه پول نمی شه در آورد، اگر واقعا چیز بلد باشیم کار خوب هم هست ولی آیا واقعا ما چیز بلدیم؟ و آیا واقعا ما تخصص درست و حسابی داریم یا فقط حرف می زنیم!!؟؟؟
سلام
به چالش کشیدن مشکلی نداره هرکس که فقط به یه موضوع تسلت یا حتی علاقه داره ممکنه فک کنه اون از همه بهتره٬ شما استاد c و C++ دوستمون استاد چیز دیگه هرکدوم تو کار خودتون حرفی واسه گفتن دارین. همه بعد از مدتی تجربه کسب میکنن و به راه راست هدایت میشن. :دینقل قول:
با چه کسانی در مورد ++c بحث ميکنيد؟
پست ها و سؤالات قبلی اين کاربر ها رو جست جو کنيد متوجه ميشيد که حتی چند ماه هم نيست شروع به يادگيری برنامه نويسی کردن اونوقت ++c رو به چالش ميکشند! حيف وقت تايپ کردن نيست ؟
گفتی تایپ یاد اشپیلن افتادم:لبخند:
من خیلی خلاصه وار بحثو خوندم٬ تجربه ثابت کرده این بحثا به جایی نمیرسه فقط تمدید میشه !
هم با قند میشه چای خورد هم با کشمش٬ یکی مشکل قند داره با کشمش میخوره یکی هم مشکلی نداره قند رو دوتا دوتا میزنه تو چای:)٬انقدر جر و بحث نکنید ببینید با چه زبانی راحت ترین و میتونید بهتر کد بزنید که هم خدا راضی باشه هم کارفرما هم برنامه خروجی بهتر باشه همونو ادامه بدین.
این همه داستان نداره به خدا٬ برنامه نویس نباید انقدر در قید و بند زبان باشه(باید برنامه نویسی بلد باشه)٬ این حرفا مال ایران نیست که میگن استخدام برنامه نویس مسلط به طراحی دیتابیس٬ UI فریم ورک فلان٬ تعمیر سماور سخن گو٬اشپز و داور فوتبال !!
خیلی کم هستن شرکت هایی که میتونی بری بگی من اینو بدلم اونم بگه بفرما در بخش مربوط به "این" کار کن!
بازار کار هرزبانی بسته به فیلدکاری خوبه٬
سیستمی کار میکنی زبان های Nativeمثل c/C++ یا دلفی باید بلد باشی خب کسایی که دلفی بلدن ممکنه کمتر از سی کارها باشه به همین خاطر بیشتر شرکت ها سی کار میخوان که فردا دلفی کارها منقرض شدن برنامه هاشون کپک نزنه (نیاز به مثال هم نداریم دیگه).
برنامه های مرتبط با بانک اطلاعاتی مینویسی ٬ خب دلفی و سی شارپ و ... امکانات خیلی خوبی ارائه میدن ولی خب محبوبیت الان دات نتی ها بیشتره پس باید اینو بلد باشی.
و همینجور الی آخر.
همگی موفق و پیروز باشین.
منظورم از پست قبليم اين بود که کسی که منطق و همچنين تجربه برنامه نويسی و... نداره گذاشتن وقت برای بحث با اين آدم اشتباه هست.نقل قول:
به چالش کشیدن مشکلی نداره هرکس که فقط به یه موضوع تسلت یا حتی علاقه داره ممکنه فک کنه اون از همه بهتره٬ شما استاد c و C++ دوستمون استاد چیز دیگه هرکدوم تو کار خودتون حرفی واسه گفتن دارین. همه بعد از مدتی تجربه کسب میکنن و به راه راست هدایت میشن. :دی
.
گفتی تایپ یاد اشپیلن افتادم
اشتباه برداشت کرديد من نه استاد هستم نه خودم رو استاد ميدونم نه ادعا حرفه اي بودن دارم:بامزه: بحثی در مورد انتخاب زبان ندارم اگر هم در اين بحث شرکت کردم به خاطر حرفهای اشتباهی بوده گفته شده کسی که در موضوعی تجربه و اطلاعات لازم رو نداره حق اظهار نظر قاطعانه در اون مورد رو نداره نه به خاطر افکار و نظرات خودش به دليل اينکه آمار و اطلاعات اشتباهی که مونتشر ميکنه ممکنه باعث بشه بعدها کسی که اين پست ها رو ميخونه همين اطلاعات اشتباه منبعی بشه برای اون.
بنده نیز علاقه ای به بحث بر روی اینجور مسائل ندارم چون بارها بحث شده ولی یا باید تاپیک رو حذف کنیم که سریعا ناراحت میشن یا باید یه پاسخی بدیم که نگن کسی به این زبان آشنا نیست چون وقتی جوابی هم ندیم سکوت را به نشانه موافق بودن در نظر میگیرند.
دیگر مدیران هم اگر صلاح میدانند تاپیک راقفل کرده و هر تاپیکی که به این صورت ایجاد میشود سریعا حذف نماییم.
موفق باشید.
دوستان زمانی حرف های شما اعتبار داره که بتونید دلیل کافی بیارید. زبان C++ از چند جهت نسبت به زبانهای دیگه برتری داره:
1. سرعت بالا (که کسی در موردش شک نداره)
2. امکان استفاده از تمامی امکانات سیستم و سیستم عامل (که بازم ایرادی بهش وارد نیست و همه می دونن)
3. کتابخانه هاش. متاسفانه اکثر دوستان در مورد این هیچ اطلاعاتی ندارن. کتابخانههای این زبان به تنهایی کافیه که نسبت به زبانهای دیگه ارجهیت پیدا کنه. دوستانی که سنگ مواردی مثل شبکه رو به سینه می زنن باید بدونن که حتی کتابخونه های متن باز C++ برای شبکه هم برای برتری داشتن اون توی شبکه کافیه مثل:
pocoproject.org/
و البته توی هر زمینه ای که فکرش رو بکنید کتابخانه موجوده، از کار با فالیهای گرافیکی مثل Maya گرفته (که توسط خود Auto-desk منتشر شده) تا فایلهایی ویدیی (مثل FFMPEG) و یا حتی کار با فایلهای فونت. و یا هوش مصنوعی، شبیه سازی فزیک، گرافیک سه بعدی، صوت سه بعدی، کار با فایلهای تصویری و .... اینقدر این کتابخونه ها زیاد و متعدد هستن و در عین حال کامل هستن که هیچ جای رقابتی برای هیچ زبان دیگه ای نموده حتی در C# هم از Wrapper های C++ استفاده میشه.
بعضی از کتابخونه ها حتی جلوتر از زمان هم حرکت می کنن که از جمله اونها میشه به Boost اشاره کرد. مثلا اگر اشتباه نکنم همین ایده توابع لامبادا اونجا مطرح شد. (سالها قبل از اینکه وارد C++ و سی شارپ بشه)
4. ساختار زبانی. ساختار به ظاهر پیچیده C++ در پروژه های متوسط به بالا دقیقا برعکس جواب میده و باعث میشه نه تنها پیچیدگی پروژه کاهش پیدا کنه بلکه امکان مانور هم بالا بره. مثلا هم اینکه کتابخانه ها Reference نیستن مثل C# شاید در اول به نظر بیاد کار رو سختر می کنه اما بعد از مدت کوتاهی متوجه می شید که امکانات بیشتری به شما داده. به عنوان مثال شما می تونید DLL های مختلفی از یک کتابخانه رو تست کنید که خوبیش اینکه که حتی انتخاب اونها رو می تونید از داخل کد هم انجام بدید که در عمل اگر بخوایین یک رفرنس رو توی سی شارپ حذف کنید ممکنه براتون تبدیل به یه دردسر بزرگ شه.
البته بماند موارد ساختاری دیگه زبان مثل ماکروها و ... که کلا هر کدومشون جای بحث داره.
5. ساختار نوین زبانی. همنطور که توی پست قبلی هم اشاره کردم ساختار زبان C++ مرتبا به روز میشه و در این بین امکانات جدیدی بهش اضافه میشه که برخی از اونها در هیچ زبان دیگه ای نیست که اگر می خوایید بیشتر در موردشون بدونید کافیه Wiki رو مطالعه کنید.
البته بازم هر کس از هر زبانی می خواد می تونه استفاده کنه. به قول معروف خلایق را هر چه لایق.
یه مورد دیگه که خیلی باعث تعجبم شد بحث در مورد سایز خروجی برنامه های زبان C++ بود. مطمئن باشید که شما با هیچ زبانی نمی تونید خروجی کوچیک مثل C++ تولید کنید. خروجی شما از C++ نزدیکترین خروجی به زبان اسمبلی است همین برنامه ساده Hello world رو میشه با کمتر از یکی دو کیلوبایت نوشت. اینکه توی برخی از موارد حجم برنامه زیاد میشه از زبان C++ نیست بلکه از کتابخونه ها است که مثلا میشه به CRT و یا کتابخونه هایی مثل Qt اشاره کرد. مورد بعدی حجم برنامه ساختار فایل اجرایی (مثلا PE) و داشتن قالبلیتهایی مثل PIC (Position independent code ) است. که همنطور توی تاپیک زیر اشاره شده بنا به ادعای طرف حجم برنامه رو میشه تا 700 بایت هم کاهش داد:
http://stackoverflow.com/questions/1...xhello-app-exe
متاسفانه مشکل برنامه نویسهای C++ با برنامه نویسهای دیگه. مشکل برنامه نویسهای آماتور با برنامه نویسهای حرفه ای است. برنامه نویسهای زبان های دیگه مثل جاوا و سی شارپ توی اغلب موارد کاملا آماتور هستند و شبیه افرادی صحبت می کنن که میری سیستمشون رو راه می اندازی بعد میگن اینکه 5 دقیقه شد چرا مثلا 200 تومن می خوای؟ خب اگر طرف حالیش بود که اصلا همچین چیزی نمی گفت. برنامه نویسهای C++ کلا باید یه وقت بزارن که به بقیه بگن چی وجود داره و باید چه شکلی فکر کنی تا اونها قانع بشن که در اغلب موارد بی فایده است.
تنها چیزی که می تونم بگم اینه که شما یه کار نام ببر که برنامه نویسهای C++ نتونن اون رو به بهترین شکل ممکن انجام بدن و بیا من لیستی از برنامه های مختلف رو به شما بدم که حتی توی زبانهای دیگه قابل اجرا نیست. (حتی برنامه نویسهاشون جرات فکر کردن بهش رو نداشته باشن).
یه مورد هم که خیلی برام سوال شده اینه که برنامه نویسهای زبانهای ماشین مجازی دار، ادعای کراس پلتفرمی دارن. در صورتی که شاید روی نزدیک 90 درصد معماریها امکان حتی برنامه نویسی با اون زیان رو ندارن. مثلا خیلی دلم می خواد یک برنامه نویس جاوا رو ببینم که تونسته باشه با یکی از میکروهای محبوب داخل کشور یک خط کد جاوا زده باشه و یا مثلا بدون وجود سیستم عامل حتی روی معماری x86 کد زده باشه. (البته پروژهایی هستند که VM تولید کردن با C++ و بعدش بدون سیستم عامل کد جاوا و یا سی شارپ رو اجرا کردن اما حتی اونها هم به جایی نرسیدن)
من با آقا پویا کاملا موافقم...
مشکل برنامه نویسهای ما اینه که فکر میکنن کار با sqlserver و نقاشی کردن با visualstudio رو بهش میگن برنامه نویسی :لبخند:
اگه بهشون بگی یه برنامه برای میکرو یا اِمبدِد یا سیستمی بنویس یا حتی برنامه ای برای پردازش سریع تصاویر (مثلا شناسایی چهره) اونوقته که متوجه میشن هنوز برنامه نویس نشدن
تو دنیای غیر از ایران فقط کسانی رو که c یا ++c بلدن بهشون میگن برنامه نویس. حالا اگر کسی برنامه نویس بود (یعنی c بلد بود) دیگه براش کاری نداره سینتکس زبونهای دیگه رو هم بخونه
وای خدای من. این رو ندیده بودم. بیا 1000 تا بزارم:نقل قول:
شما زحمت بکش یه برنامه که به زبان C++ نوشته شده و توسط برنامه نویسی ایرانی نوشده شده باشه بزارید برای دانلود
http://sourceforge.net/projects/kge/
http://sourceforge.net/projects/hmrengine/
http://sourceforge.net/projects/arax/
http://sourceforge.net/projects/cyrusscript/
و ...
اینها تنها پروژه هایی بود که من و دوستان نزدیکم کار کردیم
http://sourenagames.com/نقل قول:
متاسفانه C++ کار های ایرانی فقط حرف میزنن بنده که تا الا هیچ برنامه ایرانی ندیدم که با C++ باشه و توسط بچه های ایران باشه
http://www.seganx.com/
http://www.hmrengine.com/
blog.araxos.ir
http://www.sourenaco.ir/
http://www.fanafzar.com/ (موتور بازی گرشاسپ و البته خود آنریل هم که به تازگی استفاده می کنن نیاز به کد زنی C++ داره)
متاسفانه تو ایران حرف بی دلیل زدن باب شده. من نمی دونم با کدوم دانش داری همچین ادعایی میکنی؟
خیلی از اشخاصی که چنین سوالاتی میکنند خب مثل این عزیز فعلا تکلیفشون با خودشون مشخص نیست ! :لبخند:
https://barnamenevis.org/showthread.p...9F%D8%9F%D8%9F
بهترین روش این هستش که کاربران و مراجعه کنندگان یه نگاهی به تجربیات و تعداد پست و تشکر های بقیه داشته باشند یا اینکه برای رسیدن به حقیقت تحقیق و جستجو کنند ! ما که نمیگیم بیایید هرچی ما میگیم رو بپذیرید ! خب تحقیق و جستجو برای این چیزاست دیگه ، خدارو شکر هزارو یک جور منبع و مستندات معتبری وجود داره اگه نبودند وضعیت بدتر از این بود.
به نظر من وقت صرف کردن برای چنین سوالات بیهوده هستش چون یکی دو نفر نیست که از زمانی که من و امسال بنده و شما و دیگر مدیران وارد این انجمن ها شدیم کارمون شده اطلاع رسانی این موارد هیچوقت هم تمومی نداره ! جالب اینجاست بعد اینکه قانع میشوند میرن سراغ زبان دیگه دلیلش اینه دانش کافی برای کار با این زبان یکی از واجبات است.
هزار بار گفتیم بازهم میگیم عزیز من برادر من دوست بزرگوار ی که فکر میکنی برنامه نویسی نخود لوبیاست ! نکن این کارو... خب وقتی تخصصت این نیست وقتی رشتت این نیست نکن این کارو خب... شما وقتی پات بزرگتر یا کوچیکتر از کفشت باشه مسلما اذیت میشی دیگه.:افسرده:
فکر کنم یکی دو تا تاپیک در این مورد بنویسیم و اونها رو اعلان کنیم بتونه جلوی خیلی از سوالهای مشابه رو بگیره.نقل قول:
به نظر من وقت صرف کردن برای چنین سوالات بیهوده هستش چون یکی دو نفر نیست که از زمانی که من و امسال بنده و شما و دیگر مدیران وارد این انجمن ها شدیم کارمون شده اطلاع رسانی این موارد هیچوقت هم تمومی نداره ! جالب اینجاست بعد اینکه قانع میشوند میرن سراغ زبان دیگه دلیلش اینه دانش کافی برای کار با این زبان یکی از واجبات است.
پیشنهاد خوبیه...
یک تاپیک در رابطه با مزیت ها ، ویژگی ها و کاربرد هاش رو همراه با لیستی از نرم افزار های مطرح و شماره یک که روزمره همگی استفاده میکنند رو ایجاد کنیم.
در این بخش بیایید مشورت کنیم همین موضوع رو هم بیان کنید لطفا : https://barnamenevis.org/showthread.p...%D8%A7%DB%8C-C
به نظر من هم این بحث ها بیخوده و هر زبان کاربرد خودش رو داره. درسته که سی سرعت خیلی بهتری داره ولی خیلی جاها به این سرعت نیاز نیست و به قولی برای کشتن مرغ نیازی به چاقوی گاو کشی نیست!!! یه جا سرعت اجرا برنامه اهمیت داره، یه جا سرعت تولید برنامه. خود من چون با میکرو کنترلر ها و این داستان ها کار میکنم زبان سی++ رو بلدم و از توانایی های اون با خبرم ولی اگه برای اندروید و یا ویندوز بخوام کدی رو بزنم جاوا رو ترجیح میدم. این سلیقه و شرایط من هست و دلیل نمیشه که غلط باشه! شاید اگه یه روزی یه برنامه برای اندروید خواستم بنویسم که الگوریتم سنگینی داشت حتما با سی ++ می نویسم و با JNI و NDK داخل کد های جاوا میارمش. کاری که خیلی از برنامه های سنگین در حال حاضر انجام میدن.
به قول یه دوستی : زبان وسیله هست! برنامه نویسی رو بیاموز!
این بحث جالبه! نمی دونم چقدر تجربه کار با میکرو کنترلر ها رو دارید ولی مشکل اصلی که من دیدم این هست که کامپایلر های مناسب مثل ویندوز موجود نیست! مثلا خود من خیلی دوست دارم که بتونم تو کدهام از C++11 استفاده کنم ولی متاسفانه کامپایلر هایی که تست کردم همه به 98 وفادار بودن. مورد بعدی هم اینکه اصلا خیلی ها این که با سی++ هم میشه برای میکرو کنترلر ها کد نوشت اطلاع ندارند و فکر می کنن که فقط با سی میشه! تو دانشگاه زیاد میدیدم اینو. که برمیگرده به آموزش های سطحی و نادرست. (حالا مشکلات این که تو پروژه هم کد سی داشته باشی و هم کد سی++ هم هست که دیگه خودتون میدونید بعضی وقت ها چه قدر اذیت میکنه)نقل قول:
هم که خیلی برام سوال شده اینه که برنامه نویسهای زبانهای ماشین مجازی دار، ادعای کراس پلتفرمی دارن. در صورتی که شاید روی نزدیک 90 درصد معماریها امکان حتی برنامه نویسی با اون زیان رو ندارن. مثلا خیلی دلم می خواد یک برنامه نویس جاوا رو ببینم که تونسته باشه با یکی از میکروهای محبوب داخل کشور یک خط کد جاوا زده باشه و یا مثلا بدون وجود سیستم عامل حتی روی معماری x86 کد زده باشه.
بگذریم از این بحث. دلیل این که حرف شما رو نقل قول کردم این بود که میخواستم بگم دیگه این قضیه نشدنی نیست ولی به خاطر ماهیت کار ترجیح بر سی هست ( محدودیت های پردازنده و حافظه واینکه زمان پاسخگویی سیستم خیلی مهم هست) ولی نشدنی هم نیست:
اجرای بایت کد های جاوا روی AVR ( پردازنده 16 مگاهرتزی و 1 کیلو رم): کاربردی نیست ولی جالبه!
http://www.harbaum.org/till/nanovm/index.shtml
https://github.com/kosch/NanoVM
شرکت st رابطی رو پیاده کرده که با جاوا برای میکرو ها برنامه نوشت:
http://www.st.com/web/en/catalog/too...=stm3220g-java
http://www.st.com/web/en/catalog/too...?sc=stm32-java
یه فیلم هم داشتم که روی یکی از برد های keil میومد و jvm رو میریخت .جطوریش رو نفهمیدم ولی به نظر خود jvm داخل میکرو بود و برنامه های جاوا رو از داخل sd card اجرا میکرد. به LCD و شبکه و... دسترسی داشت. تو youtube سرچ کنید فیلم های زیادی هست در این مورد.
مورد آخر هم اینکه شرکت اتمل یکی از میکرو هاش رو با قابلیت پشتیبانی از زبان های .net ارائه کرده! هسته و خود میکرو قدیمی هست نسبتا ولی بی ربط با بحث اینجا نیست. نحوه کارش هم به این شکل هست که کد های خروجی .net رو مستقیم اجرا میکنه.
http://blog.iimplement.net/post/Requ...roduction.aspx
این میکرو تو ایران هم پیدا میشه. برای اینکه تبلیغات نباشه لینک نمیدم اما توضیحاتش اینه:
این میکرو در ایران پیدا نمیشد که وارد شد
خوبی این میکرو این هست با .NET MICRO میشه براش برنامه نوشت در صورتیکه در موردش اطلاعی ندارید به این سایت مراجعه کنید
http://blog.iimplement.net/post/Requ...roduction.aspx
این میکرو دقیقا مشابه X256 هست فقط فرقش در مقدار حافظه و رم اون هست و میشه با دات نت میکرو براش برنامه نوشت
و پایه هاش دقیقا با برد ---- مچ هست و میتونید میکرو تون رو عوض کنید و بجاش X512 بذارید
دوستان تازه وارد مثل من یا کلا کسایی که میخوان برنامه نویس بشن و نمیخوان مثل بعضیا که فرق زرت و از پرت تشخیص نمیدن بیان نظر بدن تو این بخش کلا c نیان بخدا هیچ کدوم نه برنامه نویسن نه چیزی!!!
دوستان تو این تاپیک میگن جاوا به هیچ درد نمیخوره و برای همه کار از مطره خودشون qt خوبه!!!
ولی اگه یه سایت خارجی بخونید میبینید که جدیدا تو تمام دانشگاه های آمریکا داره جاوا تدریس میشه و استرالیا و کانادا بسیار زیاد دارن رو برنامه نویسان جاوا سرمایه گذاری میکنند!!!
من دلیل دارم که جاوا خوبه!!! مدرک دارم که خوبه!!!
سی پلاس پلاس هم خوبه ولی فقط و فقط برای کمپانی ها که تولید کننده نرم افزار و زبان برنامه نویسی هستن!
نه برای یه مشت آدم که نمیدونن به چه دردی میخوره و الکی میگن برنامه نویس ++C هستیم!!!
البته به غیر از یه سری دوستان که بهم ثابت شده اطلاعاتشون تو برنامه نوسسی بالاس من به اونا چسارتی نمیکنم یا اگه با این حرفا اونارو ناراحت کردم معذرت میخوام !!!!
خلاصه کلا کسی تو اینجا نیاد که بد گمراه میشه بد!!!
تمامه دنیا میگن #C و Java ولی نمیدونم چرا جمع نخبگان این تاپیک میگن این دوتا به درد نمیخورن!!!
شما می تونید از کامپایلر G++ استفاده کنید که تحت ویندوز هم امکان راه اندازیش هست. منتها فکر نکنم راحتی کار با کامپایلرهایی مثل CodeVision و یا Keil رو داشته باشه. فکر کنم حتی مجبور شید یه قسمت از کتابخونه ها رو دوباره بنویسید.نقل قول:
مثلا خود من خیلی دوست دارم که بتونم تو کدهام از C++11 استفاده کنم ولی متاسفانه کامپایلر هایی که تست کردم همه به 98 وفادار بودن.
خیلی ممنون، مساله این نیست که بایت کد جاوا باشه یا نه (هرچند خود من در مورد اینها اطلاع نداشتم). مساله اینه که همنطور توی پست قبلی هم نوشتم شما باید قبل از هر کاری یه VM طراحی کنید که خودش هم با زبان غیر جاوا نوشته میشه. البته بحث خود VM هم که با توجه به سازگار بودن جاوا با تمامی ویرایش ها خودش باعث پیچیده تر شدن شده. مثلا برخی توابع باید برای حفظ سازگاری چندین سری اصلاح بشن که خودش یه مشکل به حساب می یاد. و البته ظرفیت فلش محدود میکرو هم معمولا جوابگوی یک VM کامل نخواهد بود.نقل قول:
اجرای بایت کد های جاوا روی AVR ( پردازنده 16 مگاهرتزی و 1 کیلو رم): کاربردی نیست ولی جالبه!
http://www.harbaum.org/till/nanovm/index.shtml
https://github.com/kosch/NanoVM
کویر آورده بودش. (برای جاوا هم داریم.) منتها این هم ایراد داره. چون پیاده سازی سخت افزاری اینها زبانها (بایت کد آنها) نیازمند پردازنده های CISC و یا پردازنده های RISC با رابط CISC است که از نظر طراحی نه تنها هزینه تولید بالا میره بلکه بخاطر تعداد ترانزیستور زیاد نه تنها امکان تولید اونها سختر می شه. بلکه حتی بعد از یه بازه فرکانسی و اندازه سیلیکون دای غیر ممکن می شه که در آینده نزدیک با پیشرفت نیازها و پردازنده ها عملا اونها از بازار حذف میشن. (همنطور که الان هم به زور می شه پیداشون کرد و طرفدار ندارن). فقط کافیه به تفاوت پردازنده های ARM و x86 توجه کنید. ما الان حتی پردانده 16 هسته ARM داریم که نه تنها پردازنده نیست بلکه یک SOC هم هست اما یه پردازنده 8 هسته اینتل مثل Corei7 هم از نظر اندازه و هم از نظر تشکیلات کنار و ... به مراتب عقب تر است. (البته گفتن عقبتر یکم بی انصافیه چون امکانات پردازنده ای اینتل فعلا توی هیچ پردازنده دیگه ای نیست ولی از نظر معماری کامپیوتر پردازنده اینتل شبیه یه پرداید می مونه که مرتبا بهش دم و دستگاه اضافه کردن و در مقابل ARM اینجا از نظر معماری نقش یه بوگاتی رو بازی می کنه که اگر بهش دم دستگاه اضافه کنن اصلا قابل قیاس نمیشه.)نقل قول:
مورد آخر هم اینکه شرکت اتمل یکی از میکرو هاش رو با قابلیت پشتیبانی از زبان های .net ارائه کرده! هسته و خود میکرو قدیمی هست نسبتا ولی بی ربط با بحث اینجا نیست. نحوه کارش هم به این شکل هست که کد های خروجی .net رو مستقیم اجرا میکنه.
دوستان پردازنده های اینتل یک شاهکار معماری و سازمان کامپیوتر هستن اما اشتباهی هستند که مرتب داره تکرار می شه. در حقیقت مهندسان خبره اینتل تا حالا اون رو زنده نگه داشتن. اما واقعا دیگه اونا هم توی این مرحله کم آوردن و دیگه کار زیادی از دستشون ساخته نیست و همش بخاطر طراحی اولیه اشتباه بوده. الان دقت کنید چندین ساله که سرعت پردازنده ها تغییر زیاد نکرده و سعی کردن اول از همه روی موازی سازی و بعد چند هسته ای تمرکز کنن و بازهم الان چند ساله که اون رو هم نمی تونن بدرستی جلو ببرن. حالا یکی دو تا تکنولوژی جدید مخصوصا از سمت nvidia مطرح شده که ممکنه تا یه چند سال دیگه هم باعث شه این پردازنده ها پیشرفت کنن. اما واقعا توی آخر راه هستن و حتی خود تیم اینتل هم این رو بارها گفته که مشکلات طراحی ما چندین برابر بقیه است و کارمون خیلی پیچیده تر.
کلا شما می تونید نه تنها با ساختن VM جاوا رو اجرا کنید بلکه می تونید هر زبان دیگه رو هم روی اینها اجرا کنید. خلاصه یه برنامه نوشتید که کارش اجرا کردن یه برنامه دیگه هست و توی نرم افزار نشد نداریم. منتها واقعا این همون کامپایلر و یا VM جاوای هست که روی PC می شناسیم؟!
کیوت و جاوا با قدرت دارن پیش میرن
بقیه زبانها هیچی
دات نت که فاتحه خیلی خوشحالم گذاشتمش کنار
اگه گذرتون به تالار سیلورلایت و WPF افتاده باشه ماهی یه پست هم نداره
تالار سی شارپ هم تعداد پست هاش نسبت به سال گذشته که من این تاپیک رو ایجاد کردم دقیقا نصف شده
کلا دنیای برنامه نویس یدست کراس پلتفورم ها و زباتهای استاندارد است
نمیخواستم جواب بدم ولی دیدم نشد. بنده گفتم برنامه ایرانی که با C++ نوشته شده نه دوتا سایت که هیچی توش نیست و چندتا برنامه خارجی.
دوما همه شما که دارید میگید سی پلاس پلاس همش زیر سایه کیوت هستش و اگه کیوت نباشه یعنی هیچی.
یادمه تو یکی از تاپیک ها گفتن کیوت نباشه میریم روی یه کامپایلر دیگه مگه میشه ؟ این قسمت برای جای سواله
بهتر شما بگید ما کیوت کاریم نه سی پلاس پلاس
سی پلاس پلاس یعنی برنامه رو با توربو سی بنویسی یا برنامه های امسال این نه اینکه دوتا باتن توی کیوت بزارید کدهارو قرار بدین بعید بگین ما سی پلاس پلاس کاریم
همین پروژه سرور لایت آقای اسدزاده همش زیر سایه کیوت هستش و اگه کیوت یه روز نباشه پروژه شکست خورده
دوست عزیز بهتره یاد بگیری که وقتی میخوای راجع به چیزی قضاوت کنی همه جوانب رو در نظر بگیری.
شما میگی جاوا خداست یا نمیدونم #C چقدر توپه و واسه اثباتش به بقیه میری کارهایی رو معرفی میکنی که کار کمپانی های بزرگ بودن نه کار یه نفر.روشون یه تیم کار کرده.
ولی واسه این که بگی ++C ضعیفه میای و مثلا کاری رو که یه برنامه نویس ایرانی تک و تنها انجام داده رو مطرح میکنی.
این نشان از تعصبی بودن شما رو زبانهایی مثل جاوا و امثال اونهاست.
یه مورد دیگه هم اینکه توی ایران سطح سیستم آموزشی علی الخصوص در زمینه برنامه نویسی بسیار پایینه و این بچه ها هر چی بلدن با همت خودشون بوده.
خوب بود شما که کار دیگر دوستان رو زیر سوال میبری نمونه هایی از کارهای بزرگ خودت با زبانهایی که اینقدر یکطرفانه روشون تعصب داری میذاشتی تا یکم حرفات قابل قبول تر میشد.
دوست عزیز شما اطلاعاتتون چقدره در مورد C++ ؟ کاش جوابی نمیدادید بهتر از این بود !
هزاران بار در مورد C++ توضیحات داده شده است...
این زبان به کمک کتابخانه هایی که داره برتری خودش رو ثابت میکنه !
همین فوتوشاپ رو فرض کن شما... فکر میکنی در Turbo نوشته شده ؟ یا فقط با یک هیدر iostream نوشته شده ؟ خیر چنین نیست ! قدرت C++ در کتابخانه هاش هست شما وقتی با یکی از کتابخانه ها مثلا Qt کار میکنید وقتی داری کد نویسی میکنی دقیقا داری با زبان C++ کد می نویسی !
کاملا مشخصه شما حی 10 درصد از این زبان شناخت ندارید ! یعنی هنوز که هنوزه شما فکر میکنید Qt یک زبانه :لبخندساده: بزارید روشنتون کنم...
زبان زیر سایه کتابخانه ؟! :متفکر: یا کتابخانه زیر سایه زبان !!! دوست عزیز Qt نباشه کتابخانه های دیگری هم وجود دارند که در ادامه لیستشو خدمتت تقدیم میکنم :لبخندساده:
کامپایلر؟! از کی تا حالا Qt کامپایلر محسوب میشه ؟!
لیست کامپایلر های C++ : https://en.wikipedia.org/wiki/List_of_compilers
این اشتباهه و بارها بنده به شخصه اشاره کردم کیوت یک کتابخانه هست نه یک زبان !
برنامه نویسی C/C++ به قدری سخت و وقت گیر هستش که کیوت رو دادن تا امسال بنده یا اشخاصی که وقت براشون مهمه وقتشون رو برای طراحی نگذارند ! بلکه وقتشون رو بزارن در هسته نویسی و به کمک کمترین کد نویسی رابط کاربری رو ایجاد و کد های اصلی که شامل کلاس ها و توابع هست رو برنامه نویسی کنند :لبخندساده:
بزارید یک مثال بزنم شما مثال های ایرانی دوست دارید ظاهرا : این لینک رو دقت کنید : http://nanosoftco.com/products/cross-x-engine.html
هسته ای که توسط C++ نوشته شده و در کتابخانه ها و سیستم عامل های مختلف با سخت افزار های ذکر شده قابل استفاده هستش ! پس من باید بیام بگم من cross x نویسم نه C++ نویس ! چون با استفاده از این هسته که آماده کردم کار بر روی هر پروژه رو حد اقال تا 80% راحتر کردم وقت اصلی رو صرف کد نویسی های مورد نیاز میکنم نه طراحی و نه توابع و کلاس نویسی های اضافی ! این یکی از قابلیت های C++ هستش که به شما اجازه میده برای خودتون هر نوع کتابخانه یا هسته ای خواستید برای هر کاری بنویسید.
[/QUOTE]
باور بر این داشته باش Qt هم نباشه هیچ پروژه ای لنگ نمیشه...
حالا یه چند تا مثال میزنم امیدوارم یکم شناختتون در مورد Qt و C++ روشنتر بشه :
این کد رو در نظر بگیرید ، از کتابخانه های پیشفرض C++ استفاده شدهیعنی از iostream داریم استفاده میکنیم پس در خود زبان شما بدون استفاده از کتابخانه هیچ کاری نمیتونی بکنی !
#include <iostream>
using namespace std;
int main()
{
cout << "Welcome to C++ Programming language! \n";
return 0;
}
حالا اجازه بدین یه مثال از کتابخانه Qt بزنم :
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Welcome to C++ Programming language!\n";
return a.exec();
}
خب حالا شما در نظر بگیر این دو تا نمونه چه فرقی باهم دارد ؟ تابع main هست اصول اینکلود در جاه قوائد زبان کاملا در جاشه فقط با این تفاوت که ترجیحا از qDebug که عمل چاپ رو اینجا انجام میده استفاده شده این کجاش کیوت هست ؟!
حالا من به جای این qDebug از همون iostream استفاده میکنم :
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
cout << "Welcome to C++ Programming language! \n";
return a.exec();
}
چه فرقی کرد؟ میبینید که دست برنامه نویس از هر جهت بازه ! این قدرت و انعطاف پذیری رو شما میگی Qt؟ یا میگی قابلیت زبان C++؟
حالا بزار یه مثالیم از کتابخانه Poco بزنم... آخه اینم از نظر شما باید یه زبان محسوب بشه !
#include "stdafx.h"
#include <Poco/String.h>
using Poco::trim;
int _tmain(int argc, _TCHAR* argv[])
{
std::string hello(" Hello, world! ");
std::string s1(trim(hello)); // "Hello, world!"
std::cout << s1;
return 0;
}
خب نظرتون چیه ؟ بازم C++ کار نیست کسی که با این روش چاپ میگیره ؟
اینم خدمت شما که متوجه بشید کتابخانه های C++ هر کدام برای اهدافی درنظر گرفته شده اند : http://en.cppreference.com/w/cpp/links/libs
برای مثال در مورد طراحی رابط گرافیک : GTK , Qt , wxWidget پیشنهاد میشه و از همشون قدرتمندتر Qt هستش.
در رابطه با شبکه و ... کتابخانه های مثل Poco و یا در زمینه هایی دیگر Boost و ...
هیچ زبانی به اندازه C++ اینهمه انعطاف پذیر نیست که هرجور با هر سلیقه ای که خواستی کد بزنی دوست عزیز!
برای مثال همین لحظه بخوام برای محصولات Intel برنامه ای بنویسم در دیگر زبان ها باید هفت خانه رستم رو پشت سر بزاری در نهایت هم نخواهد شد ! ولی برای C++ کافیه کتابخانه های مربوطه رو وارد پروژه کنی : نمونه مثال : https://www.google.com/search?btnG=1...%2B%2B+library
جای بحث برای این موارد خیلی زیاده ما میتونیم خیلی بحث کنیم در مورد این مسائل ولی راستشو بخوای نه C++ ماله بابای منه نه کتابخانه هاش و نه چیزی تنها دلیلی که در این بحث ها شرکت میکنم روشن تر کردن علاقه مندان هست و مثال ها و پاسخ هایی که جناب عالی میزنید واقعا گمراه کننده و اشتباه است امیدوارم از این پس بدون اطلاعات فنی وارد بحث نشوید... خیلی دوستانه پیشنهاد میکنم دانستن بهتر از ندانستن است ! کمی تحقیق کنید چه اشکالی داره ؟ خب از Qt بدت میاد بنویس آقا من باهاش حال نمیکنم لزومی نداره که همه پروژه ها و حتی خود زبان رو ببرید زیر سوال
خوب آقای اسدزاده شما برای طرحی از کیوت استفاده میکنید درسته ؟
خوب یعنی فرم ها شما تحت کیوت هستش بر فرض مثال کیوت دیگه نبود الان برنامه چیه؟
همچنین بنده منتظر تست پروژه شما هستش امید هستش پروزه قابل قبولی باشه
چرا از C++ builder استفاده نمیکنید؟
خب قضیه اینه ما فقط رابط کاربری رو با استفاده از Qt پیاده سازی میکنیم نه کله پروژه رو ! همانطور که لینک Cross X engine رو بهتون دادم کاملا مشخصه هسته نرم افزار با تمامی قابلیت هاش به صورت مستقل از Qt نوشته شده و قابل استفاده در Qt و دیگر کتابخانه ها هستش.
در در یک جمله بخوام خلاصه کنم همین Qt و دیگر کتابخانه ها از کتاب خانه های پیش فرض C++ متشق گرفته شده اند !
برای مثال در پست قبلی چند نمونه Hello world نوشتم که به صورت پیشفرض و با استفاده از کتابخانه های دیگر چاپ میشد.
و اینکه شما دارید تاپیک رو به بحث نابودی کیوت و محو شدنش از روی زمین میکشید ! خب هیچ شخص یا شرکتی نمیاد بره دنبال چیزی که قراره از رو زمین محو بشه !
نه بحث در نابودی کیوت نیست فقط جای صحبت اینه اگر پروژه کیوت موفق نشه و شکست بخوره اون موقع تکلیف برنامه نوشته شده با کیوت چی هستش.
برای مثلا بنده اگه مک داشتم حتما با xcode کار میکردم نه کیوت و ...
اولا دوستام عزیز حق بدبن که یک سری افراد مثه خودم اطلاعاتشون راجبعه ++C برای اینکه هیچ سایت ایرانی پاسخ گو سوالات ما نیست کمه!
تو سایت های خارجی هم تعدادی از سایت ها خوبن بقیش به درد نمیخورن مثلا تو خیلی از سایت های خارحی نوشتن ++C فقط برای بازی نوشتن خوبه!!
تو همین سایت هم هرچی سوال پورسیدم هیج کدوم از اساتید بجای اینکه راهنمایی کنن یا سر سری حواب دادن یا اونای هم که واقعا استادن هیچ کدوم نه راهنمایی نه چیزی نمیکنن!!!
اصلا بحث نابودی کیوت مطرح نیست چون شرکت های بزرگ نرم افزاری تا جایی که ممکنه به سبب سیاست های خاص مایکروسافت خودشونو از وابستگی به تکنولوژی های مایکروسافت خارج میکنند الان شرکت های زیادی دارن به جای استفاده از Mictosoft Visual C++ از کیوت استفاده می کنند نرم افزارهای تجاری و شبیه سازهای مطرح شبکه های کامپیوتری در ورژن ها یجدید از کیوت استفاده میکنند برخی از آنها :
Google Earth
QGIS
VLC Player
Autodesk Maya
Virtual Box
KDE Linux
WireShark
Skype For Linux
GNS3
Skype For Windows
Telegram
Ubuntu Touch
Cisco Packet Tracer 6.2
خب حالا من یک سوال میپرسم... قبول که داری 90 درصد ایرانی ها از C# استفاده میکنند نمونش خود شما که اونارو ترجیح میدی حالا سواله من اینه اگه .NET و از بیخ مایکروسافت نابود شد تکلیف اینهمه برنامه نویس چی میشه ؟:متفکر: با توجه به اینکه هیچ مسئولیتی در قبال دات نتو اینجور چیزا هم نداره نمونش سورس باز که نیست که بقیه کارشو ادامه بدن ! البته جدیدا صحبت هایی شده ولی MS از ترس همین که دات نت داره نابود میشه میخواد Open Source اش کنه :چشمک: کاری که تمامی کتابخانه ها و بندو بساط C++ از خیلی وقت پیش انجام داده اند ... به این توجه کردین که کیوت نزدیکه 20 الی 21 ساله مطرح هست ؟ با نابودی Nokia به کیوت چی شد ؟ هیچی ! شرکت Digia اومد جلو و گروه بسار قوی تر کار رو پیش گرفت و از نسخه 4.7 به نسخه 5.5 که الان در دست هستش رسیدیم و با پیشرفت های بسیار چشمگیری داشته اینم لینکش : http://www.qt.io/about-us/ تمامی کتابخانه های C++ به این شیوه عمل میکنند و به خاطر همین راحتی خیال از منسوخ نشدن C++ هستش که هیچوقت نمیان نرم افزار های گردن کلفت مهدندسی مانند 3dsmax رو با دات نت بنویسند چون MS هر روز یه ساز میزنه و برنامه نویس هاش باید با اون ساز برقصند!
به این اشاره میکنید که اگه Mac داشته باشید میرید سراغ xCode خب این که خیلی خوبه چه اشکالی داره برنامه های خود Mac رو ا محصولات خودش ایجاد کنیم ؟ مثل ویندوز که با دات نت برنامه های ویندوزی رو تو محیط VS تولید میکنیم... ولی این روش در هر شرکتی انحصار طلبی داره و برنامه نویس رو مجبور میکنه که در اون بازه و در دایره اهداف اون شرکت که حالا Apple باشه یا MS یا هرچی عمل کنه ... این نظر شخصیه من هستش که ترجیح میدم برای هیچ شرکتی نوکری نکنم ! چرا باید وابسته Apple یا MS باشم ؟ میخوام آزادانه فکر کنم آزادانه برنامه نویسی کنم محدودیت رو نمیپسندم... حال شاید شما میپسندید و خب منم نظرمو دادم هیچ اشکالی نداره.
دوست عزیز شما سوال فنی پرسیدی که ما پاسخ فنی ندادیم؟ تا جایی که من یادمه در پاسخ دادن های اشتباه شرکت کرده بودید که بنده نیز سعی کردم اونارو اصلاح کنم درضمن راهنمایی نمیکنیم ؟ آخرین سوالی رو که پرسیدی واقعا درخواست راهنمایی بود و منهم واقعا پاسخش رو دادم بازم سوالی بود بپرس :چشمک:
منظورم واسه قبل بود اقای اسدزاده و امروز هم کلی لطف کردین و راهنمایی کردین! واقعا ممنونم.
چرا نرم افزارهای بزرگ مثل 3D max یا مثل illastrator و یه تیم با تعداد نفرات بالا مینویسن؟
یعنی به هیج وجه یک نفر قادر به نوشتن کداش نیست؟؟؟
و یک سوال ديگه ای هم دارم اینه که چه مباحثی در ++C تمرکز کنم که بعدش بخوام وارد qt بشم؟
تعداد نفرات گروه توسعه دهنده نرم افزار پیچیده تر و خیلی اصولی هستش و کاملا بستگی داره به هدف و حجم کاری روی پروژه ! معمولا یک شخص میتونه همه کار رو خودش انجام بده در صورتی که مسلط باشه به تمامی مواردی که نیاز خواهد داشت ولی به طور ساده و خودمونی بخوام اشاره کنم درستش اینه که تیم شامل چندین برنامه نویس و طراح باشه که در رابطه با طراحی و برنامه نویسی هسته ، رابط کاربری ، ارتباطات ، بتا تستر و در نهایت اعضای تیم با هماهنگی یکدیگر محصول رو سریعتر روانه بازار خواهند کرد در غیر اینصورت سرعت توسعه نرم افزار میاد پایین.
در رابطه با مباحث هم اشاره کردم یک لینکی دادم که در اون عناوین مشخص شده اند میتونید با تحقیق در رابطه با هریک از مباحث به نتیجه برسید.
وارد کیوت هم که بشید براتون طراحی راحتر هستش ولی خب کد نویسی اصلی باید با C++ باشه که اگه اطلاعات کافی در این زمینه کسب نکنید چیزی به جز پوسته یا رابط کاربری در اختیار نخواهید داشت.
اون لینک هایی که دادین موارد مقدماتی توضبحاتی داده شده !
اقای اسد زاده دوتا سوال ديگه دارم و کلا موزاحم نمیشم D:
1) من متوجه نمیشم هسته نرم افزار منظور از چه
نوع کد نویسیه ؟؟ اگه یه مقدار روشن در مورد این قزیه توضیح بدید ممنون میشم.
2) خیلی دنباله مباحث آموزشی فوق پیشرفته میگردم که دیگه مثلا برنامه بشه نوشت ولی چیزی پیدا نکردم ! چند تا لینک هم لطف کتید معرفی کنید.
معمولا نرم افزار رو بخوای استاندارد بنویسی ببری جولو باید تقسیم بندی کنی لایه بندی کنی انواع معماری های برنامه نویسی وجود داره...
هسته معمولا متشکل از کلاس ها و توابع اصلی هستش که در هر بخشی از برنامه میشه ازشون استفاده کرد. (اگر بازهم متوجه نشدین جزئی تر بگم)
برای مثال هسته نرم افزار شما میتونه شامل یک کلاس و چندین توابع اجرائی باشه که در لایه های بالا مخصوصا لایه رابط گرافیکی میشه ازشون استفاده کرد.
در رابطه با مباحث پیشرفته هم من منبعی نمیشناسم متاسفانه چون هرچیزیم لازم شده خودم نوشتم کتابی و لینکی در ذهن ندارم شاید دوستان بتونن کمکی کنند.
1. تمامی این برنامه ها ایرانی هستن. منتها حتی برنامه نویسهای اونها هم ترجیح نمی دن وبلاگ فارسی داشته باشن. (بطور یقین یکی از دلیل هاش مسائل موجود و افرادی هست که سر درد براشون میارن) خود من هم وبلاگ فارسیم رو دارم جمع می کنم. و لینک های گروه اول هم همه کد باز نرم افزارها بودن که اگر دقت می کردی پیداشون می کردی.نقل قول:
نمیخواستم جواب بدم ولی دیدم نشد. بنده گفتم برنامه ایرانی که با C++ نوشته شده نه دوتا سایت که هیچی توش نیست و چندتا برنامه خارجی.
@کامبیز اسدزاده:
برای چی شما خودتون رو اذیت می کنید تا صبح هم توضیح بدین دلیل بیارین فایده نداره. حتی طرفها هم نتونن چیزی بگن بازهم قبول نمی کنن. کسی که یک خط مطالعه هم نداره و یا بهش آدرس سایت می دیم می بینه زبانش انگلیسی هست و فکر می کنه خارجیه به نظر شما می شه بهش یاد داد. قبل از هرکاری همت لازمه و وقتی یه عده همت حتی مطالعه ابتدایی رو هم ندارن دیگه تکلیف مشخصه. این عده همیشه بازنده خواهند بود و مدعی و حتی تاریخ رو هم نتونسته این رو عوض کن. این عده حتی وقتی هم می بازن باز قبول نمی کنن و اشتباهات خودشون رو تکرار می کنند.
یه چند تا مورد برای دوستانی که نگران GUI هستن:
1. تنها فریم ورک C++ کیوت نیست چند تا از اونها (GDK، MFC و Wxwidgets و .... )
2. حتی فریم ورک ها هم نباشن میشه با API سیستم عامل و ... اینکار رو کرد برای مثال می تونید Win32 API رو مطالعه کنید.
3. دوست عزیزمون سجاد (یوزر SeganX) هم یه فریم ورک پیشرفته GUI سه بعدی داره که با دایرکت ایکس کار می کنه و یکم بهش سر و سامان بده چیز خفتی میشه.
4. برنامه نویسهای C++ می تونن به کمک کتابخانه های جانبی برای خودشون یه کتابخونه GUI بسازن. تعداد کتابخونه های گرافیکی هم یکی دو تا نیست ( مثلا Direct3D, Direct2D, OpenGL, GDI, GDI+ و .... )
شما فرض کن فردا اصلا کیوت هم نابود شه. هیچ فرقی برای برنامه نویسهای C++ به جزء از دست دادن یک کتابخونه خوب هم نمی کنه.
ببینید اگر اصرار دارید که زبانهای دیگه خوب هستند ما کاری نمی تونیم بکنیم به جزء اینکه بگیم دارید اشتباه می کنید. و درک نمی کنید که راه درست چیه. حالا تا هر موقع که دلتون بخواد می تونید اشتباه های خودتون رو تکرار کنید. طبیعتا زندگی شما هست. ما می دونیم راهی که انتخاب کردیم درسته و داریم نتایخشون رو می بینیم. مثلا آخرین برنامه پردازش تصویری که من تحویل دادم فقط 2 درصد پردازنده رو اشغال می کرد اما فقط کافیه تو یکی از زبانهای جاوا و یا سی شارپ بخوای تصویر وب کم رو نشون بدی. نزدیک 50% قوی ترین پردازنده ها هم اشغال می شه (حالا با بقیه قابلیت ها مثل کنترل کردن پایه های برد رزبری رو کاری باهاشون ندارم که حتی شما توی خواب هم اونها رو نمی تونید ببینید.)
شما حال می کنید با سی شارپ و جاوا ما هم می گیم کار خوبی می کنید. این باعث میشه حوزه حداقل برنامه نویسهای C++ مثل سی شارپ و نت خز نباشه. و اعتبار ما حفظ بشه.
لطفا مبحث خودتون رو مشخص کنید تا کتاب و یا منابع رو معرفی کنیم.نقل قول:
2) خیلی دنباله مباحث آموزشی فوق پیشرفته میگردم که دیگه مثلا برنامه بشه نوشت ولی چیزی پیدا نکردم ! چند تا لینک هم لطف کتید معرفی کنید.
من علاقه شدیدی به برنامه نویسی در زمینه نرم افزار هایی مثل maya و illustrator و کلا اینجور نرم افزار های بسیار کاربردی !!!
هم کلا برنامه نویسی پیشرفته نرم افزار خیلی کاربردی دارم
لینک یا منابع در این مباحث معرفی کنبد ممنون میشم
دوستان پیشنهادم اینه یک سه ماه کد را با سی شارپ بزنید،یک سه ماه هم با سی پلاس پلاس ،بعد در مورد سی پلاس پلاس قضاوت کنید،دوستان اساتید سی پلاس پلاس
کامبیز اسدزاده، pswin.pooya و چندتا دیگه ببخشید اسسمشون از قلم افتاد،کاملا درست می گویند،سی پلاس پلاس الان یک استاندارد است،مستقل از سکو است،دوم برای کار های کوچک سی شارپ و جاوا
کار شما را راه می اندازی،شکی نیست داخلش اما وقتی یک خورده حجم پروژه زیاد می شه،اون زبان ها سرعت پایینی دارند،پس اینجا سی پلاس پلاس می یاد،وسط،من کاراموزی ام داخل شرکت دولتی برقی بودم،کلا تمام سیستم هاشون مانیتورینگ بود وقتی از شون پرسیدم این نرم افزاره باچی هست گفت باسی پلاپلاس،من دقیقا اینو گفتم،سی پلاس پلاس قدیمی است،چرا سی شار پ استفاده نکردین،اون بنده خدا که چند ده سال کارش اتوماسیون بود ،گفت هرچی داخل دانشگاه می گن ،با صنعت تفاوت زیادی می کنه،ما سی پلاس پلاس را فقط به خاطر کارایی اش استفاده می کنیم.ولی واقعیت این بود کل شبکه برق استان را مانیتور می کردند.دیگه انتخاب با خودتون
شما باید برنامه نویسی سیستمی بکنید که مشکل ترین نوع برنامه نویسی است. توی این نوع برنامه نویسی علاوه بر معلومات فوقالعاده زیاد، مهارت و وقت زیاد هم لازمه.نقل قول:
من علاقه شدیدی به برنامه نویسی در زمینه نرم افزار هایی مثل maya و illustrator و کلا اینجور نرم افزار های بسیار کاربردی !!!
برای برنامه های گرافیکی دو API مطرح وجود داره که عبارتند از DirectX و OpenGL (البته API های زیاد دیگه ای هم هستن). خب مثلا Maya قسمت ادیتورش تا اونجا که من می دونم با OpenGL کار می کنه (حداقل تحت لینوکس مجبوره) و یا 3Ds Max با دایرکت ایکس (که البته فکر کنم میشه تغییرش هم داد). حالا سوالی که معمولا مطرح میشه اینه که با OpenGL کار کنم یا DirectX. در کل فرقی نمی کنه. اما خب OpenGL کراس پلتفرم هست و دایرکت ایکس محبوب تر. هر چند که معمولا OpenGL از نظر تکنولوژی در سطح کمی جلوتر از دایرکت ایکس هست (به دلیل قابلیت داشتن الحاقی ها و معرفی ویژگی های جدید سازنده های سخت افزار در قالب اونها) اما نسخه های stable دایرکت ایکس خیلی زودتر از OpenGL عرضه می شن. یعنی مثلا با اینکه تکنولوژِی مثلا OpenGL 4 از دایرکت ایکس نسخه 11 زودتر عرضه شد اما واقعیت اینه تا نسخه stable دایرکت زودتر عرضه شد. مثلا بازی Wolf station سر همین قضیه فکر کنم با OpenGL 3 که میشه گفت معادل دایرکت 10 هست عرضه شد. (کلا بحثش یکم پیچیده است).
دایرکت ایکس:
برای دایرکت ایکس کتاب زیر فوق العاده است. من حتی به برنامه نویسهای OpenGL هم پیشنهادش می کنم:
http://www.amazon.com/Introduction-P.../dp/1556229135
البته کتاب به روزی نیست و شما بهتره بعد از اون Shader Approch و نسخه دایرکت 11 رو بخونید اما به دلیل استفاده از برخی از تکنیک ها مثل Ray Selection بهتره اول این رو بخونید (در نسخه های بعدی از مثل این نسخه ریاضیات و ... اونها رو توضیح نداده و تا اونجا که یادمه از خود API استفاده کرده بود.)
OpenGL:
برای برنامه نویسی OpenGL کتاب زیر می تونه کمک زیادی کنه که از OpenGL 3 استفاده می کنه:
http://www.amazon.com/Beginning-Open.../dp/159863528X
البته این کتاب بخوبی کتاب بالا نیست. اگر OpenGLهای نسخه های پایین تر رو هم مد نظر دارید مثل OpenGL 1.2 (که رنج سخت افزاری بیشتری رو ساپورت میکنه) بهتره ویرایش اول این کتاب رو بخونید.
البته این کتابها حتی 10 درصد اول راه هم نیستن و بعد از مدت کوتاهی متوجه می شید که باید کتابهای دیگه ای مثل ریاضیات برای گرافیک و یا گرافیک کامپیوتری، کتابهایی در زمینه دیزاین پترن های برنامه نویسی با C++ و یا برنامه نویسی Generic و یا برنامه نویسی با API سیستم عامل و .... رو بخونید. خلاصه کلام کار راحتی نیست. و بعد از خودندن تمام اینها شاید 20 درصد اول راه باشید که بعد از اون باید برید سراغ های متدهای پیشرفته کدینگ مثل Data Oriented که اصلا زمانی که مطالعه می کنیدش متوجه می شید شی گرایی زیاد هم متد خوبی برای نیازهای امروزی نیست و باید با یه دید دیگه نگاه کنید. کلا توی برنامه نویسی سیستم بعد از یه مدت حتی باید در مورد ساختار سخت افزار و یا سیستم عامل هم اطلاع پیدا کنی تا بتونی واقعا بر همه چی غلبه کنی.
با اینکه سخت به نظر میاد اما یک لذت خواص داره. و می تونید از تک تک امکانات سیستم استفاده کنید. همین سختی هم باعث شده که حقوق برنامه نویسهای سیستم تا 3 برابر حقوق برنامه نویسهای عادی در خارج از کشور برسه. به عنوان مثال حقوق یه برنامه نویس سیستم از نزدیکهای 7 هزار دلار در ماه در استرالیا شروع میشه تا برای برنامه نویسهای خبره نزدیک 12 هزار دلار می رسه با اینکه برنامه نویسهای مثلا وب حقوقی معادل 4 هزار دلار تا به زحمت 7 هزار دلار رو دارن. (البته شرکتهایی هستن که امکان داره حقوق بیشتر و یا کمتر هم بدن اما عرف اینجوریه).
کتابخونه های مطرح 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. و هر چیزی که شما اراده کنید وجود داره.
البته تعدادی از کتابخونه های مطرح برای شون Wrapper و یا پورت زبانهای دیگه ساخته شده. منتها اصل کتابخونه تنها برای C/C++ عرضه می شه و البته باز با خود این زبانها نوشته میشه. تجربه نشون داده که علاوه بر مشکلات مثل سرعت. مشکلات دیگه ای مثل باگ و یا عدم سازگاری در برخی موارد و حتی به روز نبودن رو میشه دید.
با اینکه برنامه های زیادی به زبان کیوت نوشته شده آیا تلاشی برا ی استاندارد سازی این کتابخانه انجام شده یا نه ؟ چون یادگیری فرآیند زمان بری هستش و باید برنامه نویس اطمینان حاصل کنه که حداقل ظرف چند سال اتی جایگزینی به جاش نباشه و زحماتش هدر نره چون من قبلا تجربه بسیار وحشتناک سیورلایت مایکروسافت رو داشتم
برای بار N ام... Qt زبان نبست :لبخندساده:
به اندازه کافی دلیل و مدرک آوردیم... شما C++ رو یاد بگیری چیزی جایگزینش نمیشه اینهمه سال اینهمه محصولات بزرگو کوچیک توسعه داده شده حتی کتابخانه Qt بیست ساله توسعه داده میشه بعد اینهمه مدت بیان جمعش کنن؟ Silverligh رو با Qt چرا مقایسه میکنید ؟ کل دات نت قابل مقایسه با Qt نیست چه برسه Silverlight که یک افزونه ای کوچیک بود که فقط در محصولات مایکروسافتی قابل استفاده بود خب معلومه که باید با شکست روبرو بشه.
اگر یک ذره هم شک و تردید دارید سراغ C++ و Qt نروید این پیشنهاد منه برای شما چون تا شما انتخابت رو بکنی نسخه 100 هم از راه میرسه.
اینحارم مطالعه بفرمایید : https://barnamenevis.org/showthread.p...A7%D8%B1%D8%AF
با سلام و احترام ؛
تاپیک قفل میشود بنا به دلایل زیر :
- محتوای غیر فنی و نامربوط
- اسپم های بی مورد توسط جناب danyalbursin
- اطلاعات کافی راجب عدم استقبال Qt و رفع نگرانی ها در مورد این موضوع ذکر شده است.
پیشنهادم برای danyalbursin عزیز داشتن کمی ادب و احترام است زیرا پیش نیاز پاسخ های شما میدانم.
شما بارها سوال پرسیدین جوابش رو دادیم منابعش هم رسمی و قانونی بوده حالا شما رفتی با یک استاده مثلا با سواد که هنوز فرق بین C++ و C# رو نمیدونه بحث کردی اومدی اینجا کاربران رو تحقیر میکنی ؟!!! :متفکر:
همین استادت که دم از سوادش میزنی یکم باید تحقیق کردن رو یاد بگیره تا شاید بتونه جواب های قانع کننده بده نه اینکه با اطلاعات ناچیز هم شما و هم بقیه رو زیر سوال ببره:چشمک: از قدیم گفتن سریع تصمیم نگیر ! شمایی که با پاسخ های من در آوردی یک شخص مثلا استاد میای بی احترامی میکنی همون بهتر از اون استادت اطلاعات بگیری نه از ما.
جریمه لازمه صادر شد در صورت ادامه همچین فعالیت ها درخواست بلوک شدن شما را ارسال خواهم کرد.
موفق باشید.