فهرست
در این درس با زبان برنامهنویسی پایتون و برخی دلایل پرکاربرد بودن آن آشنا خواهیم شد و میزان محبوبیت آن را با مراجعه به پلتفرمهای پرمراجعه مورد بررسی قرار خواهیم داد. سپس با مرور یک گزارش تحلیلی رابطه آن را با درآمد سرانه کشورها مورد بررسی قرار میدهیم و خود را برای یادگیری پایتون و به کارگیری علوم داده آماده میکنیم.
پایتون چیست؟
پایتون یک زبان برنامهنویسی متنباز[1]، رایگان، سطحِ بالا[2] و همهمنظوره[3] اما در عین حال ساده و قابل فهم است. به همین دلیل معمولا از آن به عنوان یکی از محبوبترین زبانهای برنامهنویسی در دنیا یاد میشود. در حقیقت همین سادگی باعث شده تا یادگیری پایتون نسبت به بسیاری از زبانهای برنامهنویسی دیگر راحتتر شود و اجتماع کاربران آن گسترش یابد و حتی نوجوانان و کودکان نیز دنبال یادگیری آن باشند.
اگر پایتون یک زبان برنامهنویسی سطح بالا محسوب نمیشد، نمیتوانست تا این اندازه قابل فهم و ساده باشد.
زبان برنامهنویسی سطح بالا
دستوراتی که در زبانهای برنامهنویسی مختلف اجرا میشوند، مراحل میانی گوناگونی را طی میکنند تا به زبان ماشین[4] برسند و در نهایت روی سختافزار کامپیوتر اجرا شوند. این مراحل میانی به وسیلۀ مترجم[5] یا مفسر[6] یا ترکیبی از این دو انجام میشود.
هرچه این مراحل میانی کمتر باشد آن زبان به ماشین نزدیکتر است و برای اجرا روی سختافزار آن آمادگی بیشتری دارد، در نتیجه سریعتر اجرا میشود. زبانهایی مانند Java و Python که در مقایسه با زبانهایی مانند C و Fortran ترجمه و تفسیر بیشتری برای تبدیل شدن به زبان ماشین لازم دارند، اصطلاحاً زبانهای سطح بالاتری محسوب میشوند.
سطحِ انتزاع در این زبانها بالاتر و در نتیجه فهم آنها برای انسان سادهتر است. این ویژگی برنامهنویسان و تحلیلگران داده را تا حد زیادی از پرداختن به الزامات ناشی از ساختار زبان ماشین معاف میکند تا قوای ذهنی خود را هرچه بیشتر در خدمت ایدهپردازی و طراحی راه حل به کار گیرند.
زبانهای سطح بالا در مقایسه با زبانهای سطح پایین کندتر اجرا میشوند اما متن برنامه در آن کوتاهتر و برای انسان قابل فهمتر است. به بیان دیگر، زبان سطح پایین آمادگی بیشتری برای پردازش ماشینی دارد، درحالی که زبان سطح بالا به گونهای طراحی شده تا به زبان انسانی نزدیک شود و برای برنامهنویس قابل فهمتر باشد.
پایتون برای نخستین بار در سال ۱۹۹۱ در دسترس عموم قرار گرفت. نسخه دوم و سوم آن (python 2.0 و python 3.0) در سالهای ۲۰۰۰ و ۲۰۰۸ انتشار یافت و همچنان تحت نظارت مبدع هلندی خود خیدو فان روسوم در بنیاد نرمافزار پایتون به روزرسانی میشود.
فلسفه طراحی پایتون
پارادایمهای مختلف برنامهنویسی در پایتون پشتیبانی میشوند و دست برنامهنویس باز است تا الگوهای مختلف برنامهنویسی مانند الگوی شئگرا[7]، رویهای[8]، تابعی[9] و مانند آنها را به کار بگیرد. اما خود پایتون ساختاری شئگرا دارد[10]. درباره این واژگان در جای دیگری بیشتر صحبت خواهیم کرد. فعلا مهم این است که بدانیم در طراحی پایتون انعطاف زیادی برای برنامهنویسی وجود دارد.
مسئله خوانایی و قابلیت فهم سادۀ متن دستورات پایتون نیز از جمله نکاتی بوده که از ابتدا در فلسفه طراحی پایتون مورد تاکید زیاد قرار گرفته است. این نکات در قالب 20 فرمان گردآوری شد و به ذِنِ پایتون شهرت یافت[11]. برخی از این فرمانها عبارتاند از
- زیبا بهتر از زشت است.
- صریح و بیپرده بهتر از ضمنی و در لفافه است.
- ساده بهتر از پیچیده است.
- پیچیده بهتر از درهمپیچیده است.
- خوانایی موضوعیت دارد و حائز اهمیت است.
این نکات نه تنها در طراحی زبان پایتون لحاظ شدهاند، بلکه رعایت آنها کیفیت برنامههای پایتون ما را نیز ارتقا میدهند. برنامهای که از کیفیت و خوانایی بالاتری برخوردار باشد، قابلیت تغییر و توسعه بیشتری دارد و میتوان آن را برای نگهداری و تکمیل به دیگران سپرد.
کتابخانهها
روشهای زیادی برای دست به دست کردن برنامههای کامپیوتری در میان برنامهنویسان وجود دارد. یکی از متداولترین آنها استفاده از ماژول[12]، بسته نرمافزاری[13] یا کتابخانه[14] است. استفاده از کتابخانه در اجتماع کاربران پایتون بسیار متداول است. افراد با تخصصهای مختلف برنامههای کامپیوتری مورد نیاز خود را توسعه میدهند و مجموعۀ دستورات و توابع تولید شده را در قالب یک برنامه کامپیوتری که به نام کتابخانه شهرت یافته به صورت عمومی منتشر میکنند تا دیگران نیز از آنها استفاده کنند.
سهولت در رد و بدل کردن برنامههای کامپیوتری باعث شده تا اجتماعی قدرتمند و پویا از پایتونزبانان به وجود بیاید و امکاناتِ محاسباتی زیادی در دسترس آنان قرار گیرد. به عنوان مثال اگر شما بخواهید قواعد همبستگی در میان اقلام موجود در فاکتورهای خرید یک فروشگاه را تحلیل کنید، نیازی نیست الگوریتمهای مربوط به آن را از ابتدا در پایتون پیادهسازی کنید. همینطور اگر بخواهید متن کامنتهایی که در یک اپلیکیشن ثبت شده را پردازش و تحلیل کنید، باز هم نیاز ندارید همه چیز را خودتان به وجود بیاورید. کتابخانههای کارآمد و مناسبی وجود دارند که این کار را برای شما انجام میدهند. کافیست آنها را پیدا کنید تا این کار را برای شما انجام دهند. دسترسی به کتابخانههای زیاد در حوزههای مختلف از توسعه نرمافزار گرفته تا علوم داده یکی دیگر از دلایل محبوبیت بالای پایتون است.
تاکنون چندبار به محبوبیت زیاد پایتون اشاره کردیم. این گزاره اگرچه نشاندهندۀ نکته مهمی درباره گرایش غالب در میان برنامهنویسان است، اما محبوبیت بالای یک زبان برنامهنویسی به تنهایی نمیتواند عامل تعیینکننده در انتخاب آن باشد. هر زبانی برای اهداف مشخصی طراحی شده و در انجام مجموعه مشخصی از کارها توانمند است. مثلا زبان SQL برای کار با پایگاههای داده رابطهای به وجود آمده و بسیار در این کار توانمند است. اگر تعداد کاربران یک زبان برنامهنویسی دیگر از SQL بیشتر بود، دلیل نمیشود گزینه بهتری برای کار با پایگاههای داده رابطهای باشد.
جف آتوود همبنیانگذار سابق stack overflow از این تمثیل استفاده میکند تا نشان دهد بسیاری از سوالاتی که طرح میشود مانند این که python بهتر است یا rust، به اندازه همین مقایسه ناملموس و بیفایده هستند. گوریل در جنگل زندگی میکند و کوسه در آب و هر کدام توانمندیهایی در اقلیم خود دارند. این سوال برای کسی مطرح نیست یا اگر هست، به اندازه کافی دقیق نیست تا نظر هیچ متخصصی را برای ارائه پاسخ صحیح به خود جلب کند (+).
آیا پایتون محبوبترین است؟
چنانچه پیشتر گفته شد محبوبیت بالا نمیتواند در انتخاب بهترین تکنولوژی برای توسعه برنامههای کامپیوتری و تحلیل داده تعیینکننده باشد اما چون در اغلب موارد این گونه فعالیتها به صورت گروهی انجام میشوند دسترسی به اجتماعی پرشمار از کاربران موضوعیت پیدا میکند. اگر در یک پروژه توسعه نرمافزار از یک زبان بسیار مناسب و قدرتمند اما با اجتماع کمشمار و اندک استفاده کنید، در صورت از دست دادن هر یک از برنامهنویسهای خود هنگام جایگزین کردن آنها با مشکل مواجه میشوید. به همین دلیل اجازه دهید کمی بیشتر به این سوال فکر کنیم. آیا پایتون محبوبترین زبان برنامهنویسی در دنیاست؟ آیا میتوانیم به صورت روشمند به این سوال پاسخ دهیم؟
برای پاسخ به این سوال باید به نحوی سهم زبانهای مختلف برنامهنویسی از کل بازار برنامهنویسی را تخمین بزنیم و تحولات آن را در سالهای اخیر مورد بررسی قرار دهیم و با یکدیگر مقایسه کنیم. برای اینکه به چنین تصویری از زبانهای برنامهنویسی برسیم میتوانیم از هر یک از روشهای زیر استفاده کنیم:
- آمار جستجوی زبانهای برنامهنویسی در موتورهای جستجو را مورد بررسی قرار دهیم.
- سراغ دادههای متنی در کتابها برویم و ببینیم گرایش به زبانهای برنامهنویسی در طول زمان چگونه تغییر کرده است.
- به پلتفرمهای مدیریت منابع برنامهنویسی مانند github برویم و ببینیم سهم هر یک از زبانها در آن چقدر است.
- به فرومهای عمومی پرسش و پاسخ برنامهنویسان مراجعه کنیم و ببینیم به هر یک از زبانهای برنامهنویسی چقدر پرداخته میشود.
- سراغ آگهیهای شغلی برویم و زبانهای برنامهنویسی مندرج در آنها را مورد تحلیل قرار دهیم.
- بانک مقالات علمی را مورد پردازش قرار دهیم و ابزارهای به کار رفته در آنها را با یکدیگر مقایسه کنیم.
- سراغ دورههای ویویدئوهای آموزشی آنلاین برویم و ببینیم برای کدام زبان منابع آموزشی بیشتری وجود دارد.
هر یک از روشهای فوق محدودیتهای خود را دارد و ما را تنها از بخشی از واقعیت آگاه خواهد کرد. در ادامه سعی میکنیم با به کار گرفتن رویکرد 1، 2، 3 و 4 به پرسش طرح شده پاسخ دهیم.
Google Trends
هیچ برنامهنویسی تمامی دستورات مورد نیاز برای توسعه برنامههای کامپیوتری خود را در حافظه ندارد. برنامهنویسها در هر سطحی که باشند با خیال راحت در کار خود از موتورهای جستجو زیاد استفاده میکنند. به همین دلیل نتایج جستجو درباره زبانهای برنامهنویسی دادههای خوبی برای تحلیل گرایشهای غالب در میان برنامهنویسان به دست میدهد.
موتور جستجوی گوگل محبوبترین ابزار جستجو در میان کاربران اینترنت است. گوگل فراوانی عباراتی که توسط کاربرانش جستجو میشود را در وبسایتی به نام google trends در دسترس عموم قرار میدهد. اگر عبارات java، c#، javascript و sql را در این وبسایت وارد کنیم با چنین منحنیهایی مواجه میشویم. این منحنیها امکان مقایسه محبوبیت این کلیدواژهها در میان کاربران موتور جستجوی گوگل را فراهم میکند.
اگرچه در گذشته java بیشترین سهم را در میان کاربران موتور جستجوی گوگل داشته، اما از اوایل سال 2021 میلادی (1398 شمسی) به این سو سهم جستجوی python بیشتر شده و از سایر زبانهای برنامهنویسیِ یادشده پیشی گرفته است. لازم به ذکر است که در کلمات جستجوشده، زبان C آورده نشده چون ممکن است در متن اصلی لزوما به این منظور استفاده نشده باشد.
Google Books Ngram Viewer
گوگل بانک بزرگی از کتابهای منتشر شده در دنیا دارد و امکان جستجو در آنها را در وبسایتی به نام Google Ngram Viewer فراهم میکند. این سامانه عبارت مورد نظر شما را در این بانک داده جستجو میکند و سهم آن را در پیکرۀ کلی متون در هر سال ارائه میکند. اگر عبارات python، java، javascript، php، sql و html را در این سامانه وارد کنیم، مقایسه امکانپذیر میشود.
در این تصویر نیز غلبه java در میان زبانهای برنامهنویسی در دهه 1990 و 2000 میلادی مشهود است. در نیمه دوم دهه 2000 میلادی زبان php نیز همزمان با توسعه اینترنت توسعه یافت و بیش از پیش به آن پرداخته شد. اما نکته جالب در این مقایسه، روند تغییرات پرداختن به کلیدواژههای یادشده در طول زمان است. هیچ یک از این فناوریها در سالهای اخیر مانند python در کتابهای انگلیسیزبان مورد توجه روزافزون قرار نگرفتهاند. در بقیه موارد فناوریها از نقطه اوج خود عبور کردهاند و نسبت به گذشته کمتر در کتابها به ایشان پرداخته میشود.
شاید این سوال برای شما هم پیش آمده باشد که اگر پایتون در سال ۱۹۹۱ در دسترس برنامهنویسان قرار گرفته، چرا در سالهای قبل هم در کتابها مورد توجه واقع شده است. در پاسخ به این پرسش باید گفت پایتون پیش از آنکه نام یک زبان برنامهنویسی باشد نیز در پیکرۀ زبان انگلیسی حضور داشته است. پایتون نام نوعی از مارهای عظیمالجثه و بدون زهر است که میتوانیم آن را در قالب دو مار زرد و آبی در لوگوی زبان برنامهنویسی پایتون نیز مشاهده کنیم. اما علت انتخاب این نام برای زبان برنامهنویسی به این خانواده از مارها ارتباطی ندارد. خیدو دنبال نامی منحصر به فرد و اندکی مرموز برای محصولی که تولید کرده بود میگشت و در نهایت آن را از برنامه تلویزیونی مورد علاقهاش Monty Python’s Flying Circus یک طنز تلویزیونی بریتانیانی شناختهشده در دهه ۷۰ میلادی برمیگزیند تا سرخوشی و شوخطبعی علاوه بر طراح در میان کاربران نیز رواج داشته باشد و کدنویسی تا آنجا که ممکن است تبدیل به عملی سنگین و طاقتفرسا نشود.
Github
وقتی میخواهیم چیزی به وجود بیاوریم که از اجزای گوناگون تشکیل شده، به روشهایی برای مدیریت اجزای تشکیلدهنده و نسخههای مختلف آن نیاز داریم تا با پایبندی به آن از ازهمگسیختن کارها و ناتمام ماندنشان جلوگیری کنیم. وقتی به وجود آوردن، نیازمند کار گروهی باشد نیاز به چنین روشهایی بیشتر و بیشتر میشود. برنامهنویسی نمونه قابل توجهی از نیاز به پایبندی به چنین روشهایی است. این نیاز در اجتماع برنامهنویسان به گونهای بوده که ابزارهای زیادی برای آن به وجود آمده است.
یکی از محبوبترین ابزارهای مدیریت منابع و نسخههای برنامه در میان برنامهنویسان git است. gihub نام وبسایتِ میزبانیِ کد مرتبط با این پروژه است و میتوان از آن به عنوان بزرگترین بانک برنامههای کامپیوتری در دنیا نام برد. در نتیجه بررسی دادههای آن نیز میتواند در فهم تحولات مرتبط با به کارگیری زبانهای برنامهنویسی راهگشا باشد. دادههای فعالیت باز و قابل رصد در پروژهای به نام githut مورد تحلیل قرار گرفته و نتایج آن گزارش شده است.
شرکت نرمافزاری Tiobe با تجمیع اطلاعاتی که از موتورهای جستجو درباره محوبیت زبانهای برنامهنویسی به دست میآید و تلفیق آن فراوانی منابع آموزشی و پیمانکاران توسعه نرمافزار و همینطور نظر برنامهنویسان باسابقه، کمیّتی را به نام TIOBE Programming Community Index محاسبه میکند و نتایج آن را به صورت ماهانه منتشر میکند. اگر به تحولات بازار برنامهنویسی علاقهمند شدید، میتوانید به این شاخص نیز مراجعه کنید.
Stack Overflow
یکی از پرمراجعهترین پلتفرمهای پرسش و پاسخ در میان برنامهنویسان، فُرومی به نام stack overflow است[15]. تمامی تحلیلگران داده و توسعهدهندگان برنامههای کامپیوتری معمولا یک صفحه باز از این وبسایت روی مرورگرهای خود دارند. به همین دلیل بخش قابل توجهی از ترافیک مرتبط با برنامهنویسی در اینترنت به همین وبسایت ختم میشود درنتیجه میتوان از تحلیل آن نیز برای فهم آنچه در اکوسیستم برنامهنویسان میگذرد نیز سود برد.
تمامی سوالاتی که در این فروم انتشار مییابند، باید با کلیدواژههایی از پیشتعیینشده دستهبندی شوند تا پاسخدهندگان با سهولت بیشتری سوالات مورد نظر خود را پیدا کنند. به همین دلیل آمادگی زیادی برای تحلیلهای متنوع در این داده وجود دارد. stack overflow بخشی به نام Stack Overflow Trends دارد که در آن روندهای مرتبط با کلیدواژههایی که در سوالات بازتاب یافته گزارش میشود.
رشد پایتون در پرسشهایی که در میان کاربران stack overflow مطرح شده نیز چشمگیر بوده است. اگرچه این رشد تقریبا در 2 سال گذشته متوقف شده اما پایتون با 17% بیشتر سهم از پرسشهای ماهانه فروم را به خود اختصاص داده است. در این تصویر نیز کاهش سهم Java و همینطور #C در سالهای اخیر مشهود است.
پایتون و درآمد سرانه کشورها
فرض کنید نکاتی که در پاسخ به پرسشی که درباره محبوبیت پایتون مطرح شد بیش از اندازه کلی است و کارمان را راه نمیاندازد. برای ارائه پاسخی که ظرائف بیشتری را شامل شود، لازم است زبانی مثل پایتون را یاد بگیریم تا بتوانیم با استفاده از آن در دادهها غور کنیم و به جزئیات مورد نظر خود نزدیک شویم. اگر به جای استفاده از داشبوردها و پلتفرمهای آماده، خودمان بتوانیم دادهها را تحلیل کنیم، حتما میتوانیم حرفهای ارزشمندتری از آنها استخراج کنیم. برای اینکه ببینیم تحلیل داده چقدر میتواند ما را جلو ببرد بیایید آن را روی همین پرسش آزمایش کنیم و یکی از تحلیلهای انجامشده را با هم مرور کنیم.
دیوید رابینسون در چند یادداشت و مقاله در سال 2017 به تحلیل دادههای stack overflow پرداخته و نکات جالبی را در آنها گزارش کرده است. او در مقالهای با عنوان «رشد شگفتانگیز پایتون» به گرایش فزاینده اجتماع برنامهنویسان به پایتون اشاره میکند، اما در عین حال با ایجاد ارتباط بین دادههای مربوط به گرایشهای برنامهنویسان و وضعیت اقتصادی کشورها روی یک مشاهده اقتصادی جالب توجه دست میگذارد و به تحلیل خود عمق میبخشد.
آیپی بازدیدکنندگان وبسایت stack overflow نشان میدهد هر یک از آنها از کدام کشور به سایت مراجعه کرده است. این تمایز کمک میکند تا بتوانیم گرایش به پایتون را به تفکیک کشورها مورد بررسی قرار دهیم. نخستین نکتهای که از این تفکیک به دست میآید این است که پایتون در تمامی کشورها بیشترین سهم را به خود اختصاص نداده است. در کشورهای پردرآمد پایتون بیشترین سهم را دارد اما در سایر کشورها هنوز به این جایگاه نرسیده است.
رابینسون با استفاده از دادههای درآمد سرانه کشورها در بانک جهانی سعی کرده بین رفتار برنامهنویسان و وضعیت اقتصادی کشورها ارتباط برقرار کند که در بسیاری موارد نیز نتایج آن معنادار و درخور توجه است.
او مقالهای در با عنوان «داستان دو صنعت: تفاوت زبانهای برنامهنویسی در کشورهای ثروتمند و در حال توسعه» نشان داده که همبستگی بین درآمد سرانه کشورها و سهم بازدید برای برخی زبانها مانند R و Python مثبت و برای برخی زبانها مانند php و android منفی است. به بیان دیگر سهم استفاده از زبانهایی مثل R و Python با افزایش درآمد کشورها بیشتر شده در حالیکه سهم استفاده از برخی از زبانها مانند php و android با افزایش درآمد کشورها کمتر شده است.
یکی از سوالاتی که معمولا در مواجهه با نتایج تحلیل داده برای افراد پیش میآید این است که تحلیلگر از کجا فهمید باید چنین نموداری بکشد؟
مهمترین عاملی که به ذهن تحلیلگر شکل میدهد زنجیرۀ سوالاتی است که با طرح آنها حول موضوع اصلی سراغ دادهها میرود. این سوالات بسته به اطلاعاتی که در هر موضوع داریم متفاوت دارد. با این حال، نکات دیگری هم هست که توجه به آنها نیز در جهتدهی به طراحی تحلیل و مصورسازی بیتاثیر نیست.
به عنوان نمونه در این بررسی، رابینسون از دو ترفند برای ایجاد تغییر در متغیرهای خود سود برده است. اختلاف درآمد سرانه در کشورها بسیار زیاد است. تعدادی از کشورها هستند که درآمد سرانه آنها دهها برابر بیشتر از درآمد سرانه کشورهای فقیرتر است. این اندازه اختلاف بررسی را با دشوارهای زیادی روبرو میکند. به همین دلیل تحلیلگر به جای درآمد سرانه کشورها، لگاریتم آن را در تحلیل وارد کرده تا اختلاف مقادیر از چند واحد بیشتر نشود و در کار تحلیل اخلال ایجاد نکند.
ترفند دوم روی متغیر تعداد بازدید اجرا شده است (محور عمودی). ترافیک بازدید کشورها در وبسایت stack overflow نیز اختلاف زیادی با یکدیگر دارد. مثلا آمریکا نزدیک 25% و هند نزدیک به 15% از کل ترافیک بازدید را به خود اختصاص دادهاند، در حالیکه جایگاه بعدی متعلق به کشورهایی است که کمتر از 5% از کل ترافیک سهم دارند. این تفاوت سبب میشود تا مقایسه ترافیک یک تکنولوژی خاص مانند پایتون در کشورها به راحتی امکانپذیر نباشد. در اینجا تحلیلگر برای مقایسهپذیر کردن تعداد بازدید در کشورها، تعداد آن را در هر یک از زبانهای برنامهنویسی بر تعداد کل بازدیدهای آن کشور تقسیم کرده و اصطلاحا آن را نسبت به اندازه کل ترافیک در کشورها نرمال کرده و تاثیر آن را در تحلیل از بین برده است. سهم ترافیک یک تکنولوژی خاص از کل بازدیدهای مربوط به یک کشور، عددی بین 0 و 1 است و به راحتی میتوان آن را با موارد مشابه دیگر مقایسه کرد.
مقایسهپذیر کردن موجودیتهایی که به مقایسهشان علاقهمند هستیم، یکی از چیزهایی است که معمولا نقش قابل توجهی در تحلیل داده ایفا میکند.
رابینسون سپس با محاسبه نسبت سهم ترافیک تکنولوژیهای گوناگون در کشورهای پردرآمد به سایر کشورها تصویری جامعتر از تفاوتهای موجود در کشورهای ثروتمند و کشورهای در حال توسعه ارائه میکند. او با ترسیم یک نمودار پراکندگی از کلیدواژهها شامل سهم کلی ترافیک کلیدواژه در محور افقی و میزان تفاوت در کشورهای ثروتمند و غیرثروتمند امکان بررسی جایگاه تکنولوژیهای مختلف را فراهم کرده است.
نخستین نکتهای که میتوان از تحلیل بیرون کشید تفاوت کشورهای ثروتمند و سایر کشورها، در استفاده از تکنولوژیهای مرتبط با علوم داده از جمله پایتون است. سهم python و برخی از مهمترین کتابخانههای مرتبط با کار با داده در آن مانند numpy، pandas و matplotlib به صورت قابل توجهی در کشورهای ثروتمند بیشتر است. در این دوره آموزشی با هر سه کتابخانه آشنا خواهیم شد و با آن کار خواهیم کرد. این تنها مربوط به پایتون نیست. در مورد R نیز به عنوان یکی دیگر از ابزارهای اصلی تحلیل داده و برخی از کتابخانههای مهم آن مانند ggplot2 و همینطور در مورد excel و matlab نیز به عنوان دیگر ابزارهای کار با داده الگوی مشابهی به چشم میخورد (تمامی این موارد با اختلافی قابل توجه بالاتر از خطچین قرمز قرار گرفتهاند). رابینسون شکاف درآمدی در استفاده از ابزارهای علوم داده را با نقش آنها در توسعه علم و پژوهش و سهم بیشترشان در اقتصاد کشورهای ثروتمند مرتبط میداند[16].
برقراری رابطه علّی میان سهم ابزارهای علوم داده مانند پایتون از کل سبد برنامهنویسی و ثروت کشورها به راحتی امکانپذیر نیست، اما تاثیر متقابل آنها بر یکدیگر نیز چندان دور از ذهن نیست. هر چه کشوری ثروتمندتر باشد سهم پژوهشهای مبتنی بر داده در اقتصاد آن بیشتر میشود، از طرف دیگر فعالیت بیشتر علوم داده نیز میتواند به ارتقای بهرهوری، توسعه علم، نوآوری و تولید ثروت منجر شود.
خلاصه
در این درس با پایتون به عنوان یک زبان برنامهنویسی همهمنظوره و سطح بالا آشنا شدیم. سادگی در فهم و خوانایی بالا از ابتدا در طراحی پایتون موضوعیت داشته و این حتما در یادگیری به ما کمک خواهد کرد. پایتون اجتماعی فعال و قدرتمند از کاربران دارد. به همین دلیل از نظر مستندات، ابزار و کتابخانه بسیار غنی است. به همین خاطر، هر زمان که برای برطرف کردن نیاز خود عبارتی را در اینترنت جستجو کنید، هر چقدر هم نیازتان خاص یا جزئی باشد باز هم یه احتمال زیاد پاسخ مناسبی برایش پیدا میکنید. در خلال بررسی محبوبیت پایتون با اهمیت اتخاذ روش در کار برنامهنویسی و مدیریت فایلها و git ابزار رایج آن آشنا شدیم. علاوه بر این، با وبسایتهایی مانند stack overflow آشنا شدیم و دیدیم هنگام برنامهنویسی تنها نیستیم. سپس یک مسئله تحلیل داده و برخی پیچ و خمهای فنی آن را مرور کردیم تا ببینیم با یادگیری پایتون و کتابخانههای کار با داده در آن چه کارهایی میتوانیم انجام دهیم. در همین بررسی متوجه جایگاه متمایز پایتون و کتابخانههای مرتبط با علوم داده مانند numpy، pandasو matplotlib در کشورها شدیم.
در درس بعد خواهیم دید چگونه میتوانیم پایتون را به سادهترین شکل نصب کنیم و با واسطهایی مانند Jupiter Notebook و Spyder با آن کار کنیم.
ارجاع و پانویس
[1] open-source
[2] high-level programming language
[3] general-purpose
[4] machine language
[5] compiler
[6] interpreter
[7] object-oriented programming
[8] procedural programming
[9] functional programming
[11] the Python way (+) the Zen of Python (+)
[12] module
[13] software package
[14] library
[15] منظور از فروم جایی برای پرسش و پاسخ عمومی حول موضوعات مشخص است.
[16] git اگرچه دستوراتی مشابه یک زبان برنامهنویسی برای خودش دارد، اما زبان برنامهنویسی به حساب نمیآید. git ابزاری برای سازمان بخشیدن به فعالیت برنامهنویسی و توسعه نرمافزار است. علاوه بر موارد یاد شده در متن، سهم متمایز git هم در کشورهای ثروتمند با سایر کشورها در خور توجه است.