پیش از این در مقالهای با عنوان آیا دوست داریم در زمان مرگ پولدار از این دنیا برویم یا خوشحال؟ نکاتی در مورد ثروت گفتم و امروز خبرنامهای دریافت کردم با عنوان «پردرآمدترین زبانهای برنامهنویسی» که سوژهای شد برای نوشتن این پُست. علیالظاهر تبلیغات پوپولیستی که پیش از این حوزههایی همچون موارد زیر را هدف قرار داده بود، امروزه پایشان به حوزهٔ توسعهٔ نرمافزار هم باز شده است؛ مثلاً داریم:
- کسب درآمد میلیونی با کاشت قارچ
- کسب درآمد زیاد از خانه از طریق اینترنت
- کسب درآمد از یوتیوب
- کسب درآمد بدون سرمایه
- و ...
حال پرسش اینجاست که «مگر در صنعت نرمافزار چیزی مطلق هم هست؟» به عبارت دیگر، مگر میشود برچسب «پولساز» روی یک زبان زد و بیتوجه به سایر متریکها رفت دنبالش و پولدار شد. در این ارتباط لازم است تا چند نکته را به خوبی بشکافیم تا با دید به نسبت روشنتری بتوانیم پا به این حوزه بگذاریم.
وقتی کسی میخواهد یک زبان برنامهنویسی را پیش از ورود به حوزهٔ کسبوکار انتخاب کند، اِلِمانهای مختلفی هستند که باید به هر یک از آنها وزنی داده و در نهایت محاسبه کند که چه زبانی را و به چه دلیلی انتخاب کند. به طور مثال، اگر کسی از ۱۸ سالگی برای خود هدف قرار داده که در نهایت روزی وارد گوگل شود، مسلماً انتخابهای وی مابین سیپلاسپلاس، جاوااسکریپت، پایتون و یا جاوا خواهد بود (البته الزماً محدود به اینها نیست و درج این زبانها وابسته به گپهایی است که در رادیو فولاستک با دولوپرهای فعال در کمپانی گوگل زدهام.) به عنوان مثالی دیگر، اگر کسی بخواهد وارد حوزهٔ گیم شود، یکی از انتخابهای اصلی وی سیپلاسپلاس خواهد بود و یا اگر کسی بخواهد وارد حوزههای بیگ دیتا، ماشین لرنینگ و ... شود هم پایتون کاندیدای خوبی است.
حال پرسش اینجاست که «اگر کسی بخواهد کسبوکار نوپای خودش را راه بیندازد چهطور؟» که در پاسخ به این سؤال باید گفت که شرایط انتخاب زبان یا به طور کلی اِستک نرمافزاری به مراتب پیچیدهتر از قبل خواهد شد که در این خصوص در مقالهٔ اشتباهات فاحش مهندسی که آیندهٔ استارتاپهای فناورانه را به مخاطره میاندازند نکاتی را برشمردم.
آیا اساساً چون یک زبان در بنچمارکهای استکاورفلو و یا دیگر سایتهای کاریابی به عنوان زبانی پردرآمد انتخاب شده میتوان کورکورانه دست به انتخابش زد یا اینکه متر و معیارهای دیگری نیز وجود دارند که موفقیت یا عدم موفقیت یک کسبوکار نوپا (استارتاپ) را مشخص میسازند! به طور مثال، اهمیت منابع انسانی، تجربهٔ کاربری، ایدهٔ محصول و یا مارکتینگ در موفقیت یک استارتاپ بیشتر است یا انتخاب زبانی که به عنوان پولسازترین زبان در فلان سال انتخاب شده است!
از منظری دیگر هم میتوان این مسئله را نقد کرد که به منظور درک بهتر، یک مثال از دنیای واقعی میزنم. فرض کنید من صاحب یک لامبورگینی شوم. حال پرسش اینجاست که آیا منِ نوعی با مثلاً یک قهرمان فرمول یک که در جادههای اروپا رانندگی میکند شرایط یکسانی داریم؟ پاسخ مسلماً خیر است. در انتخاب زبان برنامهنویسی هم شرایط تا حدودی به همین منوال است؛ به عبارتی، فرض کنیم که زبان سی یکی از پولسازترین زبانهای دنیا است. حال پرسش کلیدی آن است که آیا با فرض اینکه بخواهیم داخل ایران و در یک شرکت ایرانی کار کنیم، بر اساس همین یک دانه متریک میتوان پیش از ورود به حوزهٔ نرمافزار زبان سی را به عنوان زبان اصلی خود انتخاب کرد؟ خب نیاز به توضیح نیست که این زبانِ مادر در توسعهٔ اکثر سیستمعاملها، نرمافزارهای کلیدی سنگین، سیستمهای اِمبدِد و حتی توسعهٔ سایر زبانهای برنامهنویسی کاربرد دارد. اکنون مجدد سؤال مرتبط دیگری میپرسم و آن هم اینکه «آیا چنین بازار کاری در ایران برای دولوپرهای زبان سی وجود دارد؟» حداقل اطلاعات ناقص من میگوید که پاسخ خیر است (که ممکن هم هست کاملاً اشتباه کنم.)
جمعبندی
اصلاً مشکلی با این ندارم که به بنچمارکهای زبانهای برنامهنویسی همواره نیمنگاهی داشته باشیم اما داستان از جایی جدی میشود که کورکورانه فقط و فقط یک بُعد از قضیه را مبنای انتخاب خود قرار دهیم و همچون کسی که برای انتخاب شریک زندگی فقط زیبایی ظاهری را مبنا قرار میدهد، ما هم فقط میزان درآمد دولوپرهای آن زبان را معیار قرار دهیم و اینجاست که اگر در کوتاهمدت به مشکل نخوریم، حداقل در درازمدت با چالشهایی مواجه خواهیم شد.
ما آرزو به دلمان ماند که یک آخوند پیدا کنیم که به جای گیر دادن به «صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَاالضَّالِّينَ»، بگوید که بابا تلفظ درست کلمات فقط یک جنبهٔ قضیه است و شما برای اینکه دعاتون بالا بره چندین و چند معیار دیگر رو هم باید مد نظر قرار دهید که برخی از آنها عبارتند از:
- آیا تیشرتی که به تن کردهای و داری باهاش نماز میخونی از پول حلال به دست آمده؟
- آیا امروز صبح که از خانه بیرون رفتی، دل کسی رو شکستی؟
- آیا در حین خواندن نماز به فکر بیزینسات هم هستی یا تمام تمرکز روی نمازت هست؟
- و دهها سؤال کلیدی دیگر ...
این قضیه در مورد انتخاب اِستک نرمافزاری هم صادق است. مثل همون آخوندی که گیر به «وَلَاالضَّالِّينَ» میدهد، برخی منتورها هم هستند که فقط به شاخص سایت TIOBE گیر میدهند غافل از اینکه چیزهای دیگر همچون کشوری که قصد داریم داخلش دست به کد شویم، اینکه در یک استارتاپ مشغول به کار شویم یا شرکت درست و درمان، نوع ایدهٔ نرمافزاری، کامیونیتی آن زبان (مثلاً پرسش و پاسخهای استکاورفلو)، منابع انسانی مسلط به آن زبان در کشور و ... را نیز باید مبنا قرار دهیم.
حال نوبت به نظرات شما میرسد. آیا با آنچه عرض کردم موافقید یا مخالف و آیا تجربهای در این خصوص دارید که به درد دولوپرهای تازهکار بخورد؟ نظرات، دیدگاهها و تجربیات خود را با من و سایر مخاطبین سکان آکادمی به اشتراک بگذارید.