زبان برنامهنویسی پایتون (Python) بهتر است یا زبان آر (R)؟ آیا پایتون شباهتی هم با زبان برنامهنویسی R دارد؟ این دو چه تفاوتهایی باهم دارند؟ برای اینکه به سوال اول جواب دهیم، باید این دو زبان برنامهنویسی را بایکدیگر مقایسه کنیم.
مقایسهی زبانهای مختلف برنامهنویسی بحث جدیدی نیست. هر زبان برنامهنویسی ویژگیها، نقاط قوت و ضعف خاص خودش را دارد. هر زبانی برای هر کاری مناسب نیست. برنامهنویس و توسعهدهنده باید زبان برنامهنویسی کاری را که میخواهد انجام دهد پیدا کند. این انتخاب در موفقیتآمیزبودن یا نبودن پروژههای برنامهنویس و توسعهدهنده بسیار مهم است. مقایسه دو زبان برنامهنویسی وقتی مهمتر میشود که هر دو زبان برای انجامدادن پروژه خاصی، مثل تحلیل داده، کاربردی هستند.
اگر برنامهنویس تازهکار نباشد و بخواهد علاوهبر زبانهای برنامهنویسی که میداند و با آنها کار کرده است، زبان جدیدی یاد بگیرد؛ بازهم باید ازمیان زبانها یکی را انتخاب کند. زبانهای برنامهنویسی کم نیستند. اتفاقا این زبانها فهرست بلندبالایی دارند. همهی این دلایل، مقایسه زبانهای برنامهنویسی باهم را مهم میکند. این نوشته به مقایسهی دو زبان برنامهنویسی بسیار مهم و پرکاربرد (Python vs R) اختصاص دارد.
آنچه در این نوشته خواهیم داشت
مقایسه پایتون و آر (Python vs R)
شاید مقایسه پایتون و هیچ زبان دیگری اینقدر مهم نباشد. پایتون و R دو رقیب بسیار سرسخت هستند چون هر دو زبان برنامه نویسی در تحلیل داده کاربرد دارند. درواقع، در پروژههای Data Science (علم داده یا دادهها) از پایتون و آر میشود استفاده کرد. البته پایتون فقط بهخاطر قدرتی که در تحلیل دادهها دارد زبان برنامهنویسی پرطرفداری نیست. پایتون نقشی تعیینکننده در تاریخ هوش مصنوعی و یادگیری ماشین نیز داشته است.
زبان برنامه نویسی R در دانشگاه و بهدست استادان دانشگاه خلق شده است. اولین نسخهی R را دو استاد دانشکده آمار دانشگاه اوکلند نیوزیلند (Robert Gentleman and Ross Ihaka، که با R & R نیز شناخته میشوند) نوشتند. اما از سال ۱۹۹۷ بهبعد علاوهبر آن دو استاد، تیمی با دهها متخصص (R Core Team) از سراسر جهان ارتقای این زبان را برعهده گرفتند. (برای آشناشدن با تیم R و همچنین نسخههای مختلف آن سایت رسمی آر، r-project.org، را بخوانید.)
اگر بخواهم زبان برنامهنویسی R را خیلی خلاصه تعریف کنم، باید بگویم که R محیط و زبانی است که متخصصان علم آمار برای محاسبات آماری (Statistical Computing) نوشتهاند. تنها کار آر جمعآوری و تحلیل آمار نیست. R برای ساختن نمودارهای آماری و نمایش دادهها (Statistical Graphics) نیز کاربرد دارد. پس زبان برنامه نویسی R زبانی کاملا تخصصی برای حوزهای کاملا تخصصی و مشخص است. (قطعهکد زیر نمونهای از کدهای R است.)
x <- 1:10 # Creates sample data ifelse(x<5 | x>8, x, 0) [1] 1 2 3 4 0 0 0 0 9 1
زبان برنامهنویسی پایتون زبانی سطح بالا، شیگرا، فانکشنال و تفسیری است. پایتون زبانی پویا، با کدهای بسیار خوانا و همچنین کاربردهای متفاوت است. پایتون ممکن است حتی زبان برنامهنویسی بکاند یک سایت باشد. پایتون را یک برنامهنویس (Guido van Rossum) در سال ۱۹۸۹ ساخت.
تفاوت های پایتون و R
حالا که با تعریف پایتون و R آشنا شدیم، نوبت میرسد به مقایسهی آنها. اصل در مقایسه این است که شباهت و تفاوتها گفته شود. اما در مقایسهی دو زبان برنامهنویسی پایتون و R مشکلی وجود دارد: این دو زبان درواقع شباهتی بایکدیگر ندارند جزاینکه هردو برای تحلیل داده و محاسبات آماری استفاده میشوند و هردو این قدرت را دارند که حجم زیادی از داده را تحلیل کنند. پس در مقایسهی پایتون و R بحث اصلی دربارهی تفاوتهای این دو زبان، مخصوصا برای تحلیل دادهها و محاسبات آماری است.
- فکر میکنم اساسیترین تفاوت مشخص است. پایتون واقعا یک زبان برنامهنویسی همهکاره است. فرقی نمیکند برنامهنویس بخواهد الگوریتم یادگیری ماشین بنویسد یا سایت توسعه دهد، پایتون با قدرت و سرعت و انعطافپذیری بالا همهی این کارها را انجام میدهد. اما R فقط و فقط برای محاسبات آماری، آنهم از نوع آکادمیک و بسیار پیچیدهی آن، مناسب است.
- کسانیکه از پایتون استفاده میکنند برنامهنویسان و توسعهدهندگان هستند درحالیکه R را دانشگاهیان، دانشمندان و متخصصان تحقیقوتوسعه (R&D) بهکار میبرند.
- تفاوت سوم که شاید بشود گفت نتیجهی تفاوت دوم است این است که پایتون محبوب ترین زبان درمیان برنامهنویسان و توسعهدهندگان است و R درجایگاه ۱۱ام قرار دارد. دلیل دیگری هم برای این تفاوت چشمگیر وجود دارد: R برای یادگیری زبان سختتر و پیچیدهتری است.
- حالاکه به تفاوت در محبوبیت این دو زبان برنامه نویسی اشاره شد، بگذارید تفاوت در دستمزد برنامهنویسان پایتون و R را هم بگویم. جالب است که دستمزد برنامهنویسان R اندکی از پایتون بیشتر است. دستمزد برنامه نویس پایتون درحدود ۱۰۰هزار دلار (سالانه) است. درحالیکه برنامهنویس R چیزی نزدیک به ۱۱۸هزار دلار در سال دستمزد میگیرد.
- تعداد برنامهنویسان R که زبان پایتون را یاد میگیرند (درواقع به پایتون مهاجرت میکنند) بیشتراز برنامهنویسان پایتون است که زبان R را یاد میگیرند.
- زبان برنامهنویسی R کدادیتور (IDE) مخصوصبه خود را دارد: RStudio. اما برای کدنویسی با پایتون میشود از کدادیتورهای مختلفی استفاده کرد.
برای پروژههای دیتا ساینس (علم داده) پایتون بهتر است یا R؟
آیا گمان کردید تفاوتها تمام شدند؟ خیر! تازه رسیدیم به تفاوتهای اصلی پایتون و R. همانطور که اشاره کردم، این دو زبان برای اجرای پروژههایی خیلی تخصصی و نه توسعهی سایت و اپلیکیشن رقیب یکدیگر هستند. اگر امکانات این دو زبان برای اجرای پروژههای تحلیل داده، آمارها و بصریسازی نتایج تحلیل بایکدیگر مقایسه نشود، پاسخی قاطع به این سوال که پایتون بهتر است یا R نمیتوان داد.
اساسا مقایسه میان پایتون و آر با این هدف انجام میشود که بهترین زبان برنامهنویسی برای جمعآوری داده (Data Collection)، تحلیل داده (Data Exploration)، مدلسازی داده (Data Modeling) و بصریسازی داده (Data Visualization) مشخص شود.
- در جمعآوری داده مهمترین تفاوت میان R و پایتون این است که زبان پایتون این قدرت را دارد که تقریبا از هر منبعی داده بگیرد، حتی از وبسایتها. اما زبان R با دادههایی که از وب گرفته میشود سازگار نیست. باید آن دادهها را به فرمتهای (CSV, Excel, and text files) سازگار با R تبدیل کرد.
- زبان برنامهنویسی R پکیجهای (کتابخانهها) بسیار زیادی دارد، چیزی بیشاز ۱۲هزار پکیج. این یعنی تقریبا کتابخانهای برای هر تحلیل و مدلسازی که برنامهنویس بخواهد انجام دهد موجود است. R با این ویژگی برای انجامدادن تحلیلهای آماری بسیار تخصصی مناسب میشود. کتابخانهی اصلی پایتون برای تحلیل و بررسی دادهها Pandas و کتابخانههای اصلی آن برای مدلسازی داده Numpy و SciPy است.
- شاید بشود گفت که مهمترین تفاوت پایتون و R در امکانات و ابزارهایی است که برای بصریسازی داده و نتایج تحلیل دارند. همانطور که گفته شد، R را دانشگاهیان و متخصصین آمار ساختند. آنها بهخوبی میدانستند که نمایشدادن آمارها و نتیجهی تحلیلها بخشیاز تحلیل است و اگر بهخوبی انجام نشود، انگار تحلیلی انجام نشده است. بههمیندلیل، R را بهگونهای ساختند که از نتایج تحلیلها خروجیهای شفاف، جامع، زیبا و متنوع (بصریسازی داده) بگیرد. البته پایتون هم برای بصریسازی داده کتابخانههایی دارد. تصویر زیر یکیاز صدها نموداری است که میشود از زبان R بهعنوان خروجی تحلیل گرفت. (برای دیدن نمونههای بیشتر از نمودارها و چارتهایی که میشود با R ساخت به r-graph-gallery.com مراجعه کنید.)
جمعبندی و نتیجهگیری
۱. هنوز پاسخ سوال اصلی این مقاله، پایتون بهتر است یا R، داده نشده است. علاوهبر بررسیهایی که انجام شد، بخشی از پاسخ را هدف شما از یادگیری زبان برنامهنویسی پایتون یا R مشخص میکند.
۲. اگر شما میخواهید وارد دنیای طراحی و توسعهی وب و اپلیکیشن شوید یا به هوش مصنوعی و یادگیری ماشین علاقهمند هستید و همچنین علاقهای هم به تحلیل داده دارید و فکر میکنید شاید روزی پروژهی دیتا ساینس داشته باشید، قطعا باید بروید دنبال دوره آموزشی پایتون.
۳. اگر علاقهی شما آمار محض است یا علم داده یا اگر در حوزهای کار میکنید که همه در آن از زبان برنامهنویسی R استفاده میکنند و قصد ندارید کار دیگری مثل توسعه اپلیکیشن یا نوشتن الگوریتمهای ماشین لرنینگ انجام دهید، R زبانی است که باید یاد بگیرید.
برای نوشتن این مقایسه از منابع زیر کمک گرفته شده است:
۱. guru99.com
۲. medium.com