مدیر دیتابیس و مهندس داده
چگونه زبان برنامه نویسی انتخاب کنیم
مکالمه اول
کدام زبان بهترین زبان برنامه نویسی هست؟
نفر اول : زبان سی پلاس پلاس بهترین هست ، این دیگه پرسیدن نداره :))
نفر دوم : فقط پایتون ! سختی زبان های دیگر رو نداره و یادگیریش آسونه !
مکالمه دوم
بین زبان های برنامه نویسی سی پلاس پلاس و پایتون ، کدام بهتر است؟
نفر اول : معلومه سی پلاس پلاس ، خدای زبان های برنامه نویسی هستش . تمام !!!
نفر دوم : معلومه پایتون نسبت به سی پلاس پلاس آسون تره و یادگیریش راحت تر !!
این دو مکالمه یکی از رایج ترین مکالمات در بین کسانی هستند که میخواهند برنامه نویسی را شروع کنند (و شاید هم در بین افراد متوسط هم دیده شود) که در گروه های مختلف تلگرامی ، فروم ها و بین افراد در محیط های مختلف رخ میدهد. بیایید یکم در مورد این دو سوال دقیق تر بشویم.
پ.ن مکالمه اول : اگر یک زبان برنامه نویسی بهترین بود دیگه دلیلی نداشت این همه زبان به وجود آید و یا زبان های به وجود آمده این همه طرفدار یا جامعه کاربری داشته باشند و هر روز توسعه پیدا کنند. پس این نشان می دهد هیچ زبانی بهترین زبان نیست.
پ.ن مکالمه دوم : این سوال مثل این هست که بپرسیم مداد بهتر است یا خودکار ؟! (واقعا کدام بهتر هست؟! )
در جایی که قرار است طراحی ای انجام شود مداد بهتر است ، زیرا قابلیت پاک شدن را دارد و هم چنین طیف رنگ بیشتری را دارا می باشد یا مثلا دانش آموزان ابتدایی که در ابتدای یادگیری هستند نیاز دارند اشتباهات خود را پاک کنند، اما وقتی شما به عنوان یک خبرنگار در حال نوشتن خبری هستید و یا به عنوان یک دانشجو در حال نوشتن جزوه هستید ، از خودکار استفاده میکنید. چرا؟! چون خودکار مانند مداد نیاز به تراشیدن ندارد یا نوک آن نمی شکند (وقت شما را بابت تراشیدن تلف نمی کند تا خبر و جمله ای را از دست بدهید) این نشان میدهد که مداد و خودکار با اینکه یک کار را انجام می دهند (نوشتن!)، اما نقاط مثبت و منفی آن ها باعث ایجاد تمایز در استفاده می شود. مکالمه دوم هم از این مثال گفته شده مبرا نیست زیرا هر زبان دارای نقاط مثبت و منفی ای هست که باعث تمایز آن می شود .و اما چگونه میتوانیم یک زبان مناسب را انتخاب کنیم ؟!
- در اولین گام باید بیاییم حوزه یا حوزه های مورد علاقه خود را انتخاب کنیم (این انتخاب می تونه بر اساس علاقه، بازار کار، توانایی خود فرد و خیلی از پارامترهای دیگر در یکی از سمت های وب ، موبایل ، هوش مصنوعی و ... باشد )
- در دومین گام جست و جو می کنیم که حوزه یا حوزه های کاری ما نیاز به چه مهارت هایی دارند. یکی از این مهارت ها برنامه نویسی میباشد . پس ابتدا میاییم میبینیم در این حوزه چه زبان هایی استفاده می شوند و بنا به نیاز خودمان و قابلیت های آن زبان ها ، میاییم زبان یا زبان های مناسب مان را انتخاب میکنیم.
بزارید یک مثال بزنم :
من مثلا پس از تحقیق متوجه میشم به یادگیری ماشین علاقه دارم و میام در موردش تحقیق میکنم که نیاز به ریاضی، زبان برنامه نویسی ، الگوریتم و ... دارد.
در مرحله بعد میبینم زبان های جاوا، پایتون، سی پلاس پلاس می توانند در این زمینه استفاده شوند( از ذکر بقیه زبان ها برای جلوگیری از طولانی شدن خودداری کردم). حالا میام در مورد نقاط مثبت و منفی هر زبان تحقیق میکنم و با توجه به نیاز خودم یک یا چند زبان انتخاب میکنم. مثلا من نیاز دارم که سریع بتونم ایده ام را عملی کنم و خود را درگیر کد نویسی های طولانی و سخت نکنم ، پس میام زبان پایتون را انتخاب میکنم یا طولانی نوشتن کد برایم مهم نیست و در عوض سرعت اجرای بالا برای من ملاک هست ، پس میام سی پلاس پلاس را انتخاب میکنم یا اگر سریع نوشتن کد و سرعت اجرای بالا برای من مهم است ، میام پایتون و سی پلاس پلاس را در کنار هم و به صورت ترکیبی استفاده میکنم( شما میتوانید در داخل کد پایتون از سی پلاس پلاس هم استفاده کنید جهت استفاده در کد کمتر و سرعت بالاتر و بلعکس! پایتون و سی پلاس پلاس صرفا مثالی به جهت تفهمیم بهتر بود)
انتخاب زبان ملاک های زیادی دارد و فقط سرعت اجرا یا نوشتن کد کم تر ملاک نیست و باید به جامعه کاربری اون زبان، کتابخانه های موجود برای آن زبان در حوزه مورد نظر، سیستم عاملی که میخواهید در آن کار کنیم (بنظر من این مورد زیاد مهم نیست چون شما قادرید بیشتر زبان هارا در سیستم عامل های مختلف استفاده کنید ) و پارامترهای دیگر توجه کنید و در آخر این نکته رو بگویم زبان برنامه نویسی یک ابزار هست ، پس در انتخاب آن دقت کنید اما وسواس نداشته باشید.
خوشحال میشم اگه موردی هست که در انتخاب زبان می تونه به افراد کمک کنه رو در قسمت نظرات بگید تا به متن اضافه بکنم.
مطلبی دیگر از این انتشارات
استفاده از Nginx به عنوان Load Balancer
مطلبی دیگر از این انتشارات
اصولی که یک برنامه نویس خوب باید بدونه
مطلبی دیگر از این انتشارات
آموزش نصب Deno در UBUNTU 20 (+ راهنمای ZSH)