ارتباط دین و زبان برنامه نویسی

سعی کردم اینجا مطالب فنی فقط بنویسیم و سراغ مطالب بی ربط نرم، اما در مورد این موضوع ماجرا فرق می‌کنه چون به نظرم مطلب شخصی من این بار فنیه.چند روز پیش یکی از همکاران خوبم پیش من اومدم و به من گفت: "به نظرت چرا یک نفر با وجود زبان خوبی مثل سی شارپ و فریم ورک عالی مثل ASP.NET Core MVC باید به سراغ زبانی مثل پایتون و فریم‌ورکی مثل Django بره؟"با این سوال یاد دعوای همیشگی برنامه نویس‌ها افتادم که تا الان 100 ها و هزاران مطلب راجع بهش نوشته شده. ASP بهتره یا PHP؟ جاوا بهتره یا سی شارپ؟ و ...قسمت جالب ماجرا اینه که خیلی وقت‌ها توی ماجرا‌های مقایسه به این شکل، نه تنها زبان‌های برنامه‌نویسی بلکه خود برنامه نویسی‌ها هم با هم مقایسه میشن. مثلا جاوا کارها خفن تر از سی شارپ کارها هستن یا ...اما بیاید قبل از این بررسی‌ها و مقایسه‌ها به سابقه شروع به کار خودمون با زبان‌های برنامه نویسی برگردیم. ما چطور زبان برنامه نویسی خودمونو انتخاب کردیم؟ اول تحقیق کردیم و تمام زبان‌های برنامه نویسی موجود رو با هم بررسی کردیم و در نهایت به سراغ بهترین زبان رفتیم یا اینکه از بد حادثه سراغ یک زبان خاص رفتیم؟ مثلا تو دوره دانشجویی به صورت کاملا اتفاقی با یک زبان شروع به کار کردیم و اون زبان تبدیل به انتخاب اول و آخر ما شد؟ یا یک سناریوی دیگه اینکه ما در حال بی تجربگی به یک شرکت مراجعه کردیم و گفتیم کار میخایم و به عنوان تازه کار مشغول به کار شدیم و توی اون شرکت از یک زبان برنامه نویسی استفاده می‌کردن و ما هم از اون به بعد طرفدار سینه چاک اون زبان برنامه نویسی؟ یا یک سناریوی دیگه تو کشوری متولد شدیم که بازار کار یک زبان برنامه نویسی باز‌تر و نیازمند‌تر از بقیه زبان ها هست و ما هم رفتیم سراغ همون چون بیش از هر زبان دیگه‌ای اسمش به گوشمون خورده.برای همین به نظر من زبان برنامه نویسی هم مثل دینداری ما هست. چون توی یک خانواده با دین X به دنیا اومدم X شدم، به همه اعتقادات پایبند هستم. اگر هم تحقیقی در مورد سایر ادیان انجام داده باشم به این صورت بوده که متنی مطابق با دین خودم انتخاب کردم و توی اون گفته شده همه بد هستن و ما خوبیم. یا در بهترین حالت گفته شده همه خوب هستن ولی ما بهترینیم.من به عنوان یک برنامه نویس بعد از 18 سال برنامه نویسی میگم که در انتخاب زبان برنامه نویسی خودم کمترین نقش رو داشتم. در مقام قیاس زبان‌ها و فریم ورک‌ها به نظر اول باید زبان‌ها خاص منظوره رو از زبان‌های عمومی جدا کنیم. بعد برای اینکه بگیم زبانی که انتخابی ما بهتر از بقیه است باید همونقدر که روی زبان فعلی زمان و انرژی گذاشتیم برای سایر زبان‌ها هم زمان انرژی بذاریم و پروژه باهاشون انجام بدیم. بعد ببینیم در نهایت می‌تونیم بگیم X قطعا از Y بهتره یا در بهترین حالت به این نتیجه میرسیم که هر کدوم مزایا و معایبی دارن؟حتی اگر به این نتیجه هم برسیم که یک زبان بهتر از دیگری هست در بهترین حالت می‌تونیم بگیم برای شرایط و کار فعلی من در زمان حال این زبان انتخاب بهتری هست نه اینکه زبان‌ها نسبت به هم برتری داشته باشن.نمونه خوب این مثال میشه پایتون. زمانی که مایکروسافت حتی به ایده تولید دات نت هم فکر نمیکردن پایتون توسعه داده شد بود و وجود داشت. تقریبا 10 - 12 سال قبل از تولد دات نت و سی شارپ. اما تا همین 10-12 سال پیش کمتر کسی در موردش حرفی میزد و ازش استفاده می‌کرد. و در حال حاضر یکی از جذاب ترین انتخاب‌ها در همه زمینه‌هاست. چطور میشه در این شرایط و با این دانش ناقص و مهم‌تر از اون تعصبی که جلوی عدالت رو گرفته در مورد بهتر یا بد‌تر بودن قضاوت کنیم؟مثالی که برای خودم در دنیای برنامه نویسی اتفاق افتاد این بود که یک زمانی برنامه نویس c++ بودم. معمولا نرم‌افزارهایی که ما توی شرکت تولید می‌کردیم سیستمی بودن و کارشون سر و گوش آب دادن توی سایر نرم‌افزارها مثل Word و Excel و فوتوشاپ بود و هوک کردن APIهای اون‌ها و تزریق‌کردن کارهایی که ما به عنوان برنامه نویسی دوست داشتیم انجام بشن. از قضا یک روز یک پروژه کار کردن با دیتابیس به من داده شد و با رنج فراوان به SQL Server 2000 وصل شدم و داده‌ها رو واکشی و ذخیره کردم. یادگرفتن زبان SQL یک طرف. استفاده از دیتابیس توی محیطی که من کار توسعه انجام میدادم هم یه طرف دیگه که توی 2 ماه 100 سال پیرم کرد. یک روز خیلی اتفاقی یکی از دوستان گفت از سی شارپ استفاده کنیم بهتر نیست؟ برای من تو اون سال‌ها پیشنهاد جدا شدن از c++ و رفتن سراغ زبان سی شارپی که همه چیز توش از قبل آماده بود و فقط آدم‌های بی‌سواد و بی استعداد می‌رفتن سراغش خیلی کار سختی بود. اصلا مگه میشه قوی‌ترین زبان تاریخ برنامه نویسی رو رها کرد و سراغ ضعیف ترین زبان دنیا رفت. آخه مگه میشه توی محیط مدیریت شده کار کرد؟ بالاخره بعد از چندین بار توی در و دیوار رفتن گفتم اشکالی ندار بذار ببینم آدم‌های بی استعداد چطوری کد میزنن! و نتیجه برام غیرقابل تصور بود. کار در عرض 1 ماه بسته شد. حالا واقعا به این داشتم فکر می‌کردم C# کارها بی استعداد هستن یا من که کار 1 ماهه رو چند ماه به تاخیر انداختم؟ البته به عنوان خواننده اگر انصاف داشته باشید ته دلتون نمی‌گید من بی استعداد بودم بلکه میگید من 1 ماه کار کردم و 2 ماه کسب تجربه. از اون روز و اون تصمیم خیلی سال می‌گذره. الان من مطمئنم هم سی شارپ قوی ترین زبان دنیاست هم سی پلاس پلاس. هم جاوا خیلی قوی و فوق العادست هم کار کردن تو محیط پایتون می‌تونه دنیای جدیدی رو به من نشون بده. هم ASP.NET Core فوق العادست هم Django و این وسط Nodejs هم که حرف نداره و عالیه. از همه زبان‌ها و بستر‌ها و فریم‌ورک‌هایی هم که اینجا اسمشون برده نشد هم عذر‌خواهی می‌کنم و مطمئنا همشون جذاب و دوست داشتنی هستن.پ.ن: این مطلب صرفا نظر شخصی من هست و هیچ دلیلی بر صحت یا رد اون وجود نداره.