انجمن Stack Overflow از زمان تأسیس در سال ۲۰۰۸، برنامهنویسان بسیاری را از سردرگمی نجات داده است. از آن زمان بهبعد، توسعهدهندگان میلیونها سؤال مختلف در تمام زمینههای برنامهنویسی کردهاند. بااینحال، چه سؤالهایی توسعهدهندگان را وادار میکند تا به انجمن Stack Overflow سر بزنند؟
در این مقاله، ۱۱ زبان از زبانهای برنامهنویسی محبوب را براساس فراوانی برچسبهای موجود در Stack Overflow انتخاب کردهایم که برای کشف شباهتها و تفاوتهای این سؤالها روی آنها مطالعه شده است. قبل از اینکه به این موضوع بپردازیم، اجازه بدهید نکاهی کلی به ۱۱ زبان برنامهنویسی انتخابشده بیندازیم.
ازلحاظ حجم خام سؤالهای مطرحشده، جاوااسکریپت بیشترین تعداد سؤالها را از زمان تأسیس این وبسایت ازآنِ خود کرده است. این امر احتمالا بهدلیل کاربرد فراوان جاوااسکریپت در تعداد زیادی از اپلیکیشنها و سرویسها است. اگر به هر نحوی با اینترنت سروکار دارید، باید حداقل اندکی از جاوااسکریپت سر در بیاورد. جاوااسکریپت در صدر فهرست تعداد سؤالهای مطرحشده قرار دارد؛ اما اگر دادههای موجود را از زمان سپریشده جدا کنیم، متوجه پادشاه جدیدی در این عرصه میشویم.
در سال ۲۰۱۱، مجلهی Harvard Business Review شغل دانشمند داده را جذابترین شغل قرن بیستویکم نامگذاری کرد. ازآنپس، پایتون، یکی از زبانهای برنامهنویسی محبوب برای دانشمندان داده، محبوبیت بیشتری پیدا کرد؛ تاحدیکه در سال ۲۰۱۹، بهعنوان بیشترین زبان برنامهنویسی سؤالشده در Stack Overflow، جایگزین جاوااسکریپت شد.
بنابراین، یا پایتون درحالتبدیل به محبوبترین زبان برنامهنویسی است یا تعداد بیشتری برنامهنویس جدید درمقایسهبا سایر زبانهای برنامهنویسی دارد.
توسعهدهندگان دقیقا چه سؤالهایی میکنند؟ بیشترین فریمورکها، پکیجها، توابع و متدهای سؤالشده کداماند؟ کدامیک از انواع دادهها بیشتر مشکلساز بودهاند؟ میزان تفاوت این مشکلات پرسیدهشده در میان زبانهای مختلف چقدر است؟
برای جمعآوری جواب این سؤالها، کارهای زیر انجام شده است:
۱. هزار سؤال با بیشترین تعداد رأی مثبت برای هریک از ۱۱ زبان برنامهنویسی منتخب از Stack Overflow استخراج شده است.
۲. تعدادی از دادههای مربوطبه پایتون پاکسازی شده است.
۳. تمام این سؤالها به الگوریتم ابرکلمهی جاوااسکریپت داده شده تا دیدی کلی از مشکلاتی بهدست آید که در زبانهای برنامهنویسی مختلف برای توسعهدهندگان رخ میدهد.
نتایج این تحقیق بهشرح زیر است:
جاوااسکریپت ۲۳ ساله و استک اُوِرفِلو ۱۱ ساله است. در این ۱۱ سال، جیکوئری (jquery) بیشترین فریمورک سؤالشدهی جاوااسکریپت بوده است.
پایتون تقریبا ۶ سال از جاوااسکریپت مسنتر است. این زبان را که اولینبار گیدو ونراسوم در سال ۱۹۹۰ بهوجود آورد، به یکی از زبانهای اصلی منتخب دانشمندان داده تبدیل شده است. طبیعتا برخی از سؤالهای مطرحشدهی این زبان به کتابخانههای پردازش داده مرتبط است؛ ازجملهی آنها میتوان به پانداس (Pandas) و دیتافریم (Dataframe) اشاره کرد. درهرصورت، پایتون بهصورت عمومی و در دامنهی وسیعی از فناوریها بهکار برده میشود و این موضوع میتواند دلیل پرسشهای مکرر دربارهی فریمورک توسعهی وب django را توضیح دهد.
شاید دومین زبان برنامهنویسی منتخب دانشمندان داده اندکی درمقایسهبا پایتون متفاوت باشد؛ زیرا تقریبا بهصورت انحصاری درزمینهی علوم داده بهکار میرود. مفاهیم خاص پردازش داده مانند Datafram و Datatable و Matrix برای برنامهنویسان R مشکلساز بهنظر میرسند. پایتون و R هر دو کتابخانههای منحصربهفردی درزمینهی پردازش داده دارند؛ اما وقتی از ترسیم دادهها صحبت میشود، برخی عقیده دارند R دراینزمینه از پایتون برتر است. باتوجهبه این موضوع، کتابخانهی ترسیم دادهی ggplot ازجمله مفهومهای پُرسؤال در زبان برنامهنویسی R است. بنابراین، شاید توسعهدهندگان پایتون کتابخانهی matplotlib را راحتتر بدانند.