آیا شاخصهای بررسی محبوبترین زبانهای برنامه نویسی، نتایج درستی ارائه میدهند
معمولا متخصصان نرمافزار، برای اطلاع از محبوبترین زبانهای برنامهنویسی، به سراغ نمودارهای معتبر TIOBE میروند. از طریق این نمودارها، میتوانند متوجه شوند که محبوبترین زبانهای برنامه نویسی در جهان کدام موارد هستند.
نمودارهای معتبر و مفید TIOBE و اطلاعات ارائهشده در مورد محبوبیت زبانهای برنامهنویسی در این نمودارها، نشان میدهد که در طول زمان، و از زمانهای پیشتر، زبانهای برنامهنویسی جاوا و زبان برنامهنویسی C، پادشاهان زبانهای برنامهنویسی و محبوبترین زبانها بودهاند.
اما لحظهای صبر کنید و خیلی سریع نتیجهگیری نکنید. نمودارها و شاخصهای ارائهشدهی PYPL، بهعنوان رقیب نمودارهای TIOBE، نتایج دیگری را نشان میدهد. براساس نمودارهای PYPL، زبانهای برنامهنویسی Python و Java، جزو محبوبترین زبانهای برنامهنویسی و در اصل پادشاهان اصلی زبانهای برنامهنویسی هستند. براساس نمودارهای PYPL، زبان C، که بهشکل شگفتانگیزی با زبان برنامهنویسی C ++ توسعه یافته است، از محبوبیت کمتری برخوردار است و در قسمتهای پایینتر فهرست رتبهبندی محبوبیت زبانهای برنامهنویسی قرار دارد. شاید برای شما هم این سوال پیش بیاید؛ واقعا کدام نتایج درست هستند و کدام نمودار، اطلاعات درستی را ارائه میدهد؟
یکی از موضوعات مهمی که باید به آن توجه داشته باشیم آن است که هر کدام از نمودارها، برای انتخاب محبوبترین زبانهای برنامه نویسی، شاخصها و مولفههای متفاوتی را در نظر میگیرند. البته، یکی از نقاط مشترک در متدولوژی هر دو نمودار این است که عملکرد هر دو در اندازهگیری کثرت زبانهای برنامهنویسی بحثبرانگیز است. TIOBE، کمیت جستجوهای انجامشده در موتور جستجو را بهعنوان مقیاسی برای سنجش درنظر میگیرد. در حالیکه PYPL، به فراوانی جستجوها، و اینکه چند وقت یکبار جستجو شدهاند، اهمیت نشان میدهد و آن را در سنجش خود مورد توجه قرار میدهد.
باید بگوییم که هر دو شاخص اندازهگیری، مولفههای خوبی را برای سنجش در نظر نمیگیرند. بیشک باتوجه به در دسترس بودن منابع آنلاین، میزان جستجو در موتورهای جستجو، نمیتواند بهعنوان یکی از شاخصهای مهم درنظر گرفته شود و روشی قدیمی بهحساب میآید. ممکن است همچنان میلیونها صفحهی وب در مورد یک زبان محبوب ولی قدیمی و شاید مرده، اطلاعاتی را ارائه دهند؛ همانطور که سایتهای زامبی (سایتهایی که به دلایلی، موفق به بهروزرسانی محتوای خود نمیشوند) بسیاری وجود دارد و یا پستهای بلاگهایی که سالها خوانده نشدهاند.
میزان فراوانی جستجوی محتوای آموزشی بهعنوان شاخصی مهم برای محبوبیت یک زبان برنامهنویسی، معیار درستی محسوب نمیشود. زبانهای برنامهنویسی در محیطهای آموزشی، بهوفور به دانشجویان تدریس میشود، و لذا میزان فراوانی جستجوها برای فایلهای آموزشی شاخص درستی برای ارزیابی نیست، و میتواند اطلاعات بسیار متناقضی ارائه بدهد. این مقیاس اندازهگیری، در اصل شاخص معنیداری نیست که بتوان واقعا، میزان محبوبیت زبانهای برنامهنویسی را از روی آن مشخص کرد. در نهایت نمیتوان با این اطلاعات معلوم کرد که کدام زبانهای برنامهنویسی واقعا توسط فراگیران زبانهای برنامهنویسی در عمل مورد استفاده قرار میگیرند.
هنگامی که با دقت بیشتری به اعداد توجه کنید، با مسائل عجیبتری نیز مواجه خواهید شد. با توجه به نمودارهای TIOBE، زبان برنامهنویسی C، در عرض ۵ ماه، از کمترین امتیاز خود، به جایگاه زبان برنامهنویسی سال (Programming Language Of The Year) رسید. بهنظر میرسد که زبان C در سیستمهای نهفته (امبدد)، دوباره ظهور کرده است. اما، علت بروز چنین نتایجی در اندازهگیریها، میتواند مربوط به روشهای ناقص و مصنوعی سنجش باشد.
بیشترین آمار متناقض، مربوط به زبانهای برنامهنویسی Objective-C و Swift است، که برای نوشتن اپلیکیشنهای محلی در سیستم عامل iOS بهکار برده میشوند. بهنظر میرسد که در مجموع، اخیرا محبوبیت زبانهای برنامهنویسی برای پلتفرمهای چندسکویی (cross-platform) مانند Xamarin و React Native کاهش یافته است. اپل در حدود چهار سال، به سمت استفاده از زبان برنامهنویسی Swift متمایل بود، و بهنظر میرسد زبان برنامهنویسی فوقالعادهای است. با این حال، زبان Objective-C هنوز بسیار محبوبتر است و بهصورت گستردهای مورد استفاده قرار میگیرد. وقتی نگاهی به افرادی میاندازیم که با اپلیکیشنهای IOS/tvOS/watchOS سروکار دارند یا با بسیاری از توسعهدهندگان iOS صحبت میکنیم؛ متوجه میشویم بعید است که برنامهنویسی، از زبان Objective-C به زبان Swift تغییر وضعیت نداده باشند.
اما همهی این حکایتها و قصهها، نمیتوانند جای آمار و دادهها را بگیرند. اگر میبینیم که شاخصهای سنجش محبوبیت، نتایجی متفاوت با تجارب شخصی برنامهنویسان اراده میدهند، میتوانیم اینطور نتیجهگیری کنیم که تعصبات شخصی و سوگیریهای فردی هم میتواند باعث ارائهی نتایج نادرست شود. البته یک مقیاس اندازهگیری دیگری نیز برای سنجش محبوبیت زبانهای برنامهنویسی وجود دارد. اگر به گزارش سالانهی GitHub در مورد ۱۵ زبان برنامهنویسی محبوب در پلتفرم توجه کنید؛ متوجه میشوید که نتایج این گزارش، به نتایج ارائهشده توسط تجربهی فردی برنامهنویسان بازار بسیار نزدیک است، و با نتایج ارائهشده از نمودارهای TIOBE و PYPL تفاوتهایی دارد.
طبق گزارش GitHub، در سالهای ۲۰۱۶ و ۲۰۱۷، محبوبترین زبان برنامهنویسی در جهان، با فاصله قابل توجهی از بقیهی زبانها، زبان Javascript بوده است. پایتون در مقام دوم، جاوا در مقام سوم و Ruby در مقام چهارم نمودار قرار دارند. این نتایج، در مقایسه با نمودار TIOBE، تفاوت فاحشی را نشان میدهد. در نمودار TIOBE، ابتدا زبانهای برنامهنویسی جاوا و C محبوبترین زبانها معرفی شدند؛ و سپس با فاصلهی زیاد پایتون و C ++ قرار دارند، جاوا اسکریپت در رتبهی هشتم ایستاده است. همچنین با توجه به نمودارهای PYPL، محبوبیت زبانهای برنامهنویسی بهترتیب بدین صورت گزارش شده است: پایتون، جاوا در ابتدای نمودار و با فاصلهی زیاد، جاوا اسکریپت و PHP قرار دارند.
روشن است که آمار و ارقام گیتهاب، نمایانگر کل این حوزه نیست؛ اندازهی نمونه بسیار بزرگ است و تنها به پروژه های متن باز میپردازد. اما بهنظر میرسد که GitHub، تنها سیستم سنجشی است که زبان Swift را محبوبتر از Objective-C میداند. همین مساله باعث میشود که نتایج آن متقاعدکننده بهنظر برسد؛ اما باز هم بهدلیل متن باز بودن آن، نتایج ارائهشدهی از طریق این سیستم را نمیتوان قطعی در نظر گرفت.
آمار ارائهشده، بسیار مهم هستند. فراتر از بحث کنجکاوی و سرگرمکننده بودن آنها، اطلاعات مهمی را در اختیار قرار میدهند. با اینکه موضوع محبوبیت زبانهای برنامهنویسی، در کل موضوعی چندان مهم و خاص نیست، ولی بیاهمیت هم نیست. بررسی محبوبیت زبانهای برنامهنویسی، تعیین میکنند که چه زبانهایی بیشتر مورد توجه قرار دارند. این موضوع برای افرادی که تمایل دارند زبان برنامهنویسی را دنبال کنند، اهمیت پیدا میکند و در نتیجه افرادی که وارد حوزههای آموزش زبانهای برنامهنویسی میشوند، میتوانند زبانی را آموزش ببینند که محبوبتر است و میتواند زمینهی اشتغال را برای آنها فراهم کند. بنابراین وقتی سه روش مختلف، نتایج متفاوتی را ارائه میدهند، شرایط زیاد جالب نیست و کمی ناراحتکننده بهنظر میرسد.