انتخاب زبان برنامه نویسی برای یک پروژه
میخوام در مورد زبان ها و چرا نباید خیلی چیزا بخاطر بعضی چیزا فدا بشن بنویسم.
خیلی جرائت میخواد که مطلب بنویسی و من این جسارت رو قبول کردم که مثل من راه اشتباه رو نرید.
من از چند سال پیش (چیزی حدود ۷ ۸ سال ولی حرفه ای ۵ ۶ سال) برنامه نویسی رو شروع کردم و نمیتونم بگم با زبان های زیاد ولی با چند تاشون کار کردم ، میخوام براتون از مزیت هاشون بگم و از نبایدها و بایدهاشون بنویسم:
زبان هایی که تو این پست مد نظر من هست پایتون ، جاوا ، سی ، پی اچ پی ، گو و جاوا اسکریپت(نود) هست.
پایتون قدرت زیادی داره راحتتر از بقیه است کدش کمتره.
جاوا قدرتمنده و نسبت به پایتون سختتره کدش هم بیشتره.
سی قدیمی تره ، سخته و بسیاری از زبان های برنامه نویسی از سی گرفته شده (شاید این جمله گرفته شده اشتباه باشه).
تو زبان های بالا فعلا حرفی از سرعت نزدیم و بیشتر هدف این مطلب استفاده از این زبان هاست که پایین بهشون اشاره شده.
پی اچ پی راحتتره کامیونیتی بسیار بسیار بزرگی داره و ابزارهای بسیار زیاده داره سرعت قابل قبولی داره یه جورایی میشه گفت اکثر برنامه نویس های بک اند از پی اچ پی استفاده میکنند چون تقریبا جوابگوی کاراشون هست ، درآمد خوبی داره آگهی های استخدامی بسیار بسیار زیادی داره.
گو سرعت بسیار زیادی داره تقریبا کد زدن باهاش نسبت به سی راحتتره ، منابع کمتری استفاده میکنه ، کامیونیتی کمتری داره و برنامه نویس های بک اند برای سرعت و قدرت معمولا این زبان رو پیشنهاد میکنند درآمد بسیار زیادی داره آگهی های استخدامی نسبتا خوبی داره.
نود سرعت خوبی داره ، کد زدن باهاش راحته ، کامیونیتی خوبی داره ، قابل اعتماد نیست( تسکی رو تضمین نمیکنه ) وقتی درخواست زیاد و سنگینی بیاد یکم اذیت میشه (: ، درآمد خوبی داره آگهی های استخدامی زیادی داره.
از این گفته ها (که اکثرا از منابع خوبی برداشته شده اند و بعضا تجربه من هستند) میبینیم که زبان ها مزیت و معایب خودشون رو دارند و وقتی زبانی رو انتخاب میکنیم باید به این موارد دقت کنیم که کدوم مزیت کدوم عیب رو میپوشاند که میتونیم انتخابش کنیم وقتی شرکت بزرگی هستید محصولاتی دارید (برای خودتون یا برای مشتری محصولی خلق میکنید) بهتره در این مورد بیشتر فکر کنید در مورد برنامه نویس های موجود در شرکت تان، در مورد آمار برنامه نویس های شهرتان ( ریموت بحثش جداست ) نباید خیلی چیزا رو فدای بعضی چیزا کنید مثلا سرعت رو فدای کامیونیتی و سختی نکنید (البته تا یه حدی).
به این اعداد و ارقام دقت کنید :
اینجا میبینیم که گو در تعداد ریکوئست بر ثانیه و همچنین تعداد کل ریکوئست ها نسبت به بقیه زبان ها (زبان های مد نظر ما از این عکس گو ، پی اچ پی و نود هست) اختلاف بسیار زیادی دارد.
نتیجه میگیریم گو بهتره؟ نه ، بهتری در کل وجود ندارد.
اگه برنامه نویس براتون مهمه یعنی سریع بخواید به تیمتون برنامه نویس اضافه یا جایگزین کنید پی اچ پی بهتره.
اگه ابزارهای نود براتون مهمه مثلا سوکت رو بخواید با خود نود بنویسید خوب نود بهتره.
اگه قدرت و سرعت براتون مهمتره گو بهتره.
حالا کدوم یک از اینا رو برای پروژه x انتخاب کنیم؟ این سوال خودش اشتباهه
وقتی میخواید مزیت رو انتخاب کنید حتما به معایب هم دقت داشته باشید ، قدرت و سرعت هیچ وقت تاکید میکنم هیچ وقت نمیتونه جایگذین جامعه آماری برنامه نویس باشه بزرگترین قدرتی که میتونه یه شرکت داشته باشه اینه که اگر به هر دلیل و از هر دو طرف برنامه نویس یا کارفرما تصمیم به قطع همکاری شد شرکت بتونه سریع یه برنامه نویس جایگزین پیدا کنه.
بحث بعدی در مورد یه پروژه است شما به راحتی میتونین وقتی پروژه بهتون محول شد نسبت به کارایی اقسام مختلف پروژه میتونید زبان های مختلفی رو انتخاب کنید.
برای مثال میگم (در نظر گرفته شده اکثر برنامه نویس های شرکت شما پی اچ پی کار هستند) وقتی سرعت پاسخ یه درخواست با گو میشه ۰.۵ میلی ثانیه با پی اچ پی میشه حتی ۱۰۰ میلی ثانیه یعنی ۲۰۰ برابر آیا واقعا لازمه که این درخواست هم با گو نوشته بشه؟ نه تفاوت میان نیم میلی ثانیه با ۱۰۰ میلی ثانیه هم برای کاربر و هم برای مشتری مهم نیست ( تایمر نمیزاره که) اصلا متوجه این تفاوت نمیشه ، شما اگه بتونید درست کانفیگ کنید خیلی بهتر نتیجه میگیرید. یه برنامه نویس با تجربه پی اچ پی یه پروژه رو بهتر از یه برنامه نویس آماتور گو میتونه جلو ببره، اگر تو یه بخشی از پروژه قدرت براتون مهم بود و متوجه شدید که پی اچ پی این قدرت رو نداره بهترین انتخاب اینه که اون بخش رو با یه زبان دیگه بنویسید ، مثلا بخش آمار رو با جولیا ، پایتون و اکسل بنویسید. بخشی که ریکوئست های زیاد و پیچیده ای داره با گو یا زبان های قدرتمندی که اشاره شد بنویسید ولی دیگه ورود ثبت نام با پی اچ پی (: .
بجای تغییر زبان برنامه نویسی از ابزار ها استفاده کنید و اگه دیدید پی اچ پی جوابگو نیست یبار دیگه با دقت فکر کنید و مطالعه کنید بعد زبان بعدی رو انتخاب کنید چون شما پی اچ پی کار هستید.
هر زبانی برای هدفی ساخته شده شما میتونید برای چیزای ساده از زبان های قدرتمندی استفاده کنید ولی مطمئن باشید که هدف ایجاد اون زبان این نبوده و راه رو دارید اشتباه میرید.
آزاد و پیروز باشید.