PDA

نسخه کامل مشاهده نسخه کامل : Paste.Ubuntu و لینوکس!



Arrowtic
16-08-2012, 14:25
سلام دوستان.اول یه درخواست دارم بعد یه سوال.
درخواست اول اینه که خواهشا کداتونو تو سایت نذارید چون اکثرا درست نمیفتن و سخته خوندنشون.بذاریدشون توی سایت زیر:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و اسمتون و زبان کد رو وارد کنیدو Paste رو بزنید و اون لینکو بذارید اینجا!

سوالمم اینه که چه سیستم عاملی برای نوشتن کد C++ پیشنهاد میکنید و با چه کامپایلری؟
ممنون

god of war 2
16-08-2012, 15:53
سوالمم اینه که چه سیستم عاملی برای نوشتن کد C++ پیشنهاد میکنید و با چه کامپایلری؟
سیستم برای زبانی مثل ++C از یک نظر چندان مهم نیست ولی از سویی دیگر برای یک برنامه نویس مهم هست. از نظر مالتی پلتفرم کتابخانه استاندارد این زبان کاملا مستقل از سیستم عامل هست مثلا تابعی که برای درج خروجی استاندارد بکار میره در windows , linux, mac, symbian , ... از نظر کاربرد و ظاهر دستور هیچ تفاوتی با هم ندارن پس از این نظر بستر کار زیاد مهم نیست.
ولی چیزی که باعث میشه سیستم عاملی نسبت به دیگری از نظر یک برنامه نویس ارجحیت پیدا کنه در یک مورد میتونه API های اون سیستم عامل باشه که باز هم برمیگرده به پارامتر های دیگری مثل سادگی, سرعت, کارایی, دسترسی , مستندات کامل , .....
بطور مثال سیستم عاملی از مجموعه غنی API پشتیبانی میکنه اما هیچ مستنداتی نسبت به اونها ارائه نداده. خوب طبیعتا این سیستم عامل برای یک برنامه نویس اصلا محیط جالبی نیست و برای هر کاری برنامه نویس باید درگیر مسائل اضافه دیگری بشه.
پس نتیجه ایی که میشه گرفت اینه که اگر هدف کار کردن بر روی بستری خاص هست باید مواردی مثل موارد بالا رو در نظر گرفت اما اگر هدف کاملا مستقل هست دیگر چندان مهم نیست که بستر کار چه وِیژگی هایی دارد چون در نهایت برنامه نوشته شده باید روی رنج سیستم عامل های هدف بصورت یکپارچه عمل کند.
معمولا برنامه نویس ها سیستم عامل های متن باز رو ترجیح میدن که دلایل مختلفی هم داره که عمدتا بر میگرده به متن باز بودن و اینکه امکان دسترسی به سورس وجود داره و برنامه نویس میتونه با توجه به سلیقه خودش اونو گسرش بده.
اما در رابطه با کامپایلر.
بنظر من کامپایلری که برنامه نویس کاملا به اون مسلط هست بهترین کامپایلر هست.
اگر مباحثی مثل مالتی پلتفرم بودن رو کنار بزاریم در یک نگاه در دسترس ترین و راحت ترین میتونه بهترین باشه.
کامپایلر های شناخته شده ایی مثل MinGW و کامپایلر شرکت micro$oft هردو از نظر آپتیمایز بودن تفاوت چندانی با هم ندارند و این برنامه نویس هست که باعث تفاوت بین این دو میشه.
یعنی اگر شما به کامپایلری مسلط نباشی و اقدام به تولید کد ماشین توسط اون کامپایلر بکنی در بهترین حالت برنامه شما اصلا آپتیمایز نیست و به احتمال زیاد شامل باگ هم هست(البته مبحث باگ برمیگرده به اشکال زدا که امروزه معمولا Debugger و کامپایلر هر دو در یک مجموعه وجود دارند).
ولی برنامه نویس مسلط و کسی شناخت کامل از کامپایلر خود داره مطمئنن میتونه بهترین و آپتیمایز ترین کد ماشین رو تولید کنه حالا فرقی نمیکنه که کامپایلر مثلا MinGW باشه یا محصول شرکت micro$oft باشه. این مطلب در شرایط تک پلتفرمی صدق میکنه.
اما در شرایط مالتی پلتفرم مخصوصا در پروژه های بزرگ نحوه کار کلا فرق میکنه. یعنی بهترین گزینه در مورد کامپایلر گزینه ایی هست که مالتی پلتفرم باشه.
البته امکان استفاده از کامپایلر انحصاری برای هر سیستم عامل هست اما کار فوق العاده سخت میشه. یعنی هر کامپایلر باید بطور جدا کانفیگ بشه که کار فوقالعاده وقت گیر و دشواری هست.
نظر شخصیم در رابطه با کامپایلر استفاده از کامپایلر های مالتی پلتفرم مثل MinGW هست.