پایتون، R یا SAS؟ کدام بهتر است؟
مقایسه بین نرمافزارهای R و SAS احتمالا بزرگترین موضوع بحثی بوده است که تحلیلگران صنعتی در آن شرکت کردهاند. همچنین نرمافزار پایتون (Python) یکی از زبانهای برنامهنویسی با رشد چشمگیر بوده و تا به اینجا مسیر بسیار زیادی را طی کرده است. البته قصد ما از بررسی این موضوع تنها ایجاد هیجان نیست. هدف ما در کنار هیجان، یادگیری و دانشاندوزی است. البته این سوال یکی از مهمترین و رایجترین سوالهای کاربران است.
از مقایسه سامسونگ با اپل و اچتیسی (HTC) در گوشیهای هوشمند، آیاواس (iOS) با اندروید و ویندوز در سیستم عاملهای متداول تا مقایسه نامزدهای رقابتهای مختلف و انتخاب بهترین کاپیتان برای تیم فوتبال، نکات بسیار جالبی به دست میآید. اگر اهل بحث و دانستن باشید به راحتی با طرح یک سوال برای مقایسه دو موضوع مرتبط میتوانید در جمع ولولهای به پا کنید. زیبایی این عمل در آنست که هر کس با سطح دانش بیشتری از اتاق خارج میشود. میخواهیم در اینجا چنین کاری انجام دهیم.
آیا به اندازه کافی درباره این موضوع بحث نشده است؟
احتمالا بله! با اینحال به دلایل زیر هنوز نیاز به مباحثه در این باره وجود دارد.
- صنعت بسیار پویاست. مقایسهای که دو سال پیش انجام شده است ممکن است امروز بیفایده باشد.
- غالبا در مطالب گذشته پایتون غایب بوده است. در نتیجه بهتر است در مورد آن صحبت شود.
- در این مطلب علاوه بر مقایسهها و صحبت در مورد تمایلات جهانی استفاده از این نرمافزارها، برخی اطلاعات خاص در رابطه با صنعت تحلیلی هند ( Indian analytics industry) با سطح تکامل متفاوت ارائه خواهد شد.
تاریخچه
در ادامه توضیح مختصری در رابطه با هر کدام از زبانهای برنامهنویسی ارائه میشود.
- SAS: رهبر بلامنازع فضای تحلیل تجاری در جهان بوده است. این نرمافزار توابع متعدد آماری را در اختیار کاربر قرار میدهد. واسطه گرافیکی کاربری (Graphical user interface) مناسب برای یادگیری سریع و پشتیبانی فنی بینظیر، این نرمافزار را بیهمتا کرده است. با اینجال SAS همیشه گرانٰترین انتخاب است و همیشه به بهروزترین توابع تحلیلی مسلح نیست.
- R: رقیب متن باز (Open source) SAS است که به صورت سنتی در تحقیقهای علمی مورد استفاده قرار میگیرد. به دلیل ماهیت متن باز این نرمافزار، آخرین فناوریها سریعا بهروزرسانی میشوند. مطالب آموزشی بسیاری در موردRوجود دارد و یک گزینه ارزانقیمت است.
- پایتون: به عنوان یک نرمافزار متن باز، اسفاده از پایتون به طرز چشمگیری رشد داشته است. ای نرمافزار به کتابخانههای «numpy، scipy و matplotlib » دسترسی دارد و هر تابعی برای مدلسازی یا عملیات تحلیل نیاز دارید در آن پیدا میشود. از زمان معرفی پانداز (pandas)، پایتون در زمینهی عملگرهایی که برپایه دادههای ساختاری هستند، بسیار قوی ظاهر شده است.
موارد مورد مقایسه
در این مطلب موارد زیر بررسی میشوند.
- دسترسی / قیمت
- سهولت یادگیری
- قابلیت هندلینگ دادهها (Data handling capabilities)
- قابلیتهای گرافیکی
- توسعهی ابزارها
- فرصتهای شغلی
- پشتیبانی خدمات مشتری و جامعه
- پشتیبانی یادگیری عمیق (Deep Learning Suppor)
این مطلب از دیدگاه یک تحلیلگر نوشته شده است. لذا اگر میخواهید محصولی برای شرکت خود تهیه کنید، ممکن است در این مقاله به جواب کامل نرسید. با اینحال این اطلاعات برای شما مفید خواهد بود. در هر بخش به هر کدام از موارد برای مقایسه بهتر، نمرهای بین یک (کمترین) تا پنچ (بالاترین) داده میشود.
البته وزن اهمیت هرکدام از موارد بالا بسته به هدف شما از استفاده از زبان برنامهنویسی ممکن است متفاوت باشد.
۱. دسترسی / قیمت
SAS یک نرمافزار تجاری است. این نرمافزار هنوز از دسترس بسیاری از حرفهایها خارج است. با اینحال SAS بزرگترین سهم را از بازار تجاری بخش خصوصی به خود اختصاص داده است. در نتیجه تنها در صورتی که در شرکتی مشغول به کار باشید که از این زبان استفاده میکند، احتمالا توان خرید آن را نداشته باشید. البته SAS یک قالب رایگاه برای استفاده در تحقیقات دانشگاهی ارائه داده است که به هر حال محدودیتهایی دارد. R و پایتون اما کاملا رایگان هستند!
نمره هرکدام در این بخش به شکل زیر است:
SAS | R | Python |
۳ | ۵ | ۵ |
۲. سهولت یادگیری
یادگیری SAS بسیار ساده است و گزینههای سادهای (PROC SQL) برای کاربران آشنا به اس.کیو.ال (SQL) در آن وجود دارد. ویدئوهای آموزشی بسیاری برای یادگیری SAS در وبسایتهای متعدد اینترنتی همراه با مطالب نوشتاری مناسب موجود است. بسیاری از این کلیپهای آموزشی دارای تاییدیه SAS هستند اما دوباره باید برای دریافت آنها پول پرداخت کنید.
R در بین این سه زبان مجهز به عمیقترین منحنی یادگیری است ولی باید برای استفاده از آن کاملا به کدنویسی مسلط باشید. R در واقغ یک نرمافزار سطح پایین است و لذا برای اجرای پروسههای ساده باید کدهای بلند بنویسید.
پایتون در عوض در جهان برنامهنویسی به سادگی شهرت دارد. این موضوع برای تحلیل دادهها در این نرمافزار نیز صادق است. با این حال این زبان، واسطه گرافیکی کاربری رایجی در جهان تا به حال معرفی نکرده است. البته اگر جزوههای پایتون (Python notebooks) رواج بیشتری پیدا کنند، امکانات جذابی در سندسازی و به اشتراک گذاری در اختیار کاربران قرار میدهند.
نمره هرکدام از نرمافزارها در این بخش به شکل زیر است:
SAS | R | Python |
۴.۵ | ۲.۵ | ۳.۵ |
۳. قابلیت هندلینگ دادهها (Data handling capabilities)
تا همین چند سال پیش این قابلیت یکی از نقاط درخشان نرمافزار SAS بود. از آنجا که R تمام محاسبات را در حافظه رم (RAM) انجام میدهد لذا به اندازه رم یک دستگاه ۳۲بیت توانایی محاسبات داشت. البته دیگر این مشکل حل شده است. تمام نرمافزارها در حال حاضر قابلیت هندلینگ داده مناسبی همراه با گزینهی محاسبات موازی (parallel computations) ارائه مینمایند. به همین دلیل در این بخش تفاوت چندانی دیده نمیشود.
نمرات این قسمت به شکل زیر است:
SAS | R | Python |
۴ | ۴ | ۴ |
۴. قابلیتهای گرافیکی
SAS قابلیت گرافیکی مناسبی ندارد. با اینحال میتوان با آن سر کرد. هر گونه تغییر قالبها بسیار سخت است و نیاز به فهم جزپیات بسته گراف SAS (SAS Graph package) دارد.
R و پایتون هر دو امکانات گرافیکی بسیار پیشرفتهای دارند. بستههای متعدد پیشرفته گرافیکی برای این دو زبان پیشرفته ارائه شده است. با معرفی پلاتلی (Plotly) در هر دو زبان، و سیبورن (Seaborn) در پایتون این قابلیتها بیشتر هم شده اند. ایجاد قالبهای دلخواه هیچگاه سادهتر نبوده است.
نمره هرکدام در این بخش به شکل زیر است:
SAS | R | Python |
۳ | ۴.۵ | ۴.۵ |
۵. توسعهی ابزارها
در تمام این نرمافزارها همهی توابع اولیه و مورد نیاز موجود است. البته این قابلیت در صورتی اهمیت دارد که در حال کار با آخرین فناوریها و الگوریتمها باشید.
به علت ماهیت متن باز R و پایتون، تمام قابلیتها به سرعت به آنها اضافه میشود. از آنجا که از R در تحقیقات دانشگاهی استفاده میشده، به روز رسانیها در این محیط سریع است. از سوی دیگر، SAS قابلیتهای خود را در نسخههای جدید اضافه میکند. به دلیل اینکه SAS قبل از ازائه نسخه جدید، آن را بررسی میکند امکان خطا مانند دو زبان دیگر در آن کمتر است.
نمره هرکدام از نرمافزارها در این بخش به شکل زیر است:
SAS | R | Python |
۴ | ۴.۵ | ۴.۵ |
۶. فرصتهای شغلی
SAS هنوز در جهان پیشتاز موقعیتهای شغلی است. بیشتر شرکتهای بزرگ هنوز با SAS کار میکنند. با اینحال پایتون و R برای استارتآپها و شرکتهای نوپا که دنبال صرفهجویی در هزینهها هستند مناسب است. حتی تعداد موقعیتهای شغلی برای این دو نرمافزار روز به روز پیشتر میشود. در ادامه نمودار پیشرفت فرصتهای شغلی در محیط SAS، R و پایتون را میبینید. این روند برای پایتون بسیار به R شبیه است.
نمرات این قسمت به شکل زیر است:
SAS | R | Python |
۴ | ۴.۵ | ۴.۵ |
۷. پشتیبانی خدمات مشتری و جامعه
پایتون و R بزرگترین جامعه آنلاین کاربران را دراختیار دارند اما پشتیبانی خدمات مشتری ارائه نمیکنند. در نتیجه اگر با مشکل برخوردید، باید مشکل را خودتان حل کنید. با اینحال از دوستانتان در سراسر جهان میتوانید کمک بگیرید.
از سوی دیگر SAS خدمات مشتری بسیار قویای همراه با یک جامعه از کاربران آنلاین در اختیار دارد. لذا اگر با مشکلی مواجه شدید، به راحتی میتوانید با آنها تماس بگیرید.
نمره هرکدام در این بخش به شکل زیر است:
SAS | R | Python |
۴ | ۳.۵ | ۳.۵ |
۸. پشتیبانی یادگیری عمیق (Deep Learning Suppor)
یادگیری عمیق در SAS هنوز در مراحل اولیه قرار دارد و نیاز به پیشرفت بیشتری احSAS میشود. از سوی دیگر پایتون در این حوزه بسیار پیشرفته است و بستههای متعددی مانند تنسورفلو (Tensorflow) و کراس (Keras) ارائه کرده است. R به تازگیها در این مسیر قدم برداشته است. بستههای کراس و کراسآر برای این نرمافزار موجود است که مشابه بستههای پایتون مورد استفاده قرار میگیرد.
نمرات این قسمت به شکل زیر است:
SAS | R | Python |
۲ | ۳ | ۴.۵ |
نکات قابل توجه دیگر
نکات دیگری به قرار زیر قابل توجه هستند.
- از پایتون به صورت گسترده برای توسعه وب استفاده میشود. در نتیجه اگر در یک کسب و کار آنلاین مشغول به کار هستید، استفاده از پایتون برای توسعه وب و ابزار تحلیل در کنار یکدیگر بسیار مفید خواهد بود.
- SAS قابلیت بسیار مناسبی در توسعه زیرساختارهای نقطه به نقطه (end to end infrastructure) شامل تحلیلهای گرافیکی، انبارهای داده، کیفیت داده، گزارش و تحلیل از خود نشان داده است. با اینحال R نیز در این مسیر شروع به تقویت خود نموده است که البته تا رسیدن به قابلیتهای SAS راه درازی دارد.
نتیجهگیری
امروزه واضح است که کفه ترازو در حال سنگینتر شدن به نفع پایتون است. البته عاقلانه نیست با توجه به روح پویای صنعت به سادگی روی این نرمافزار قمار کنیم. شما میتوانید بر حسب موقعیت شغلی خود به هر کدام از موارد بالا وزندهی کنید و زبان مناسب خود را انتخاب نمایید. برخی از سناریوهای محتمل در ادامه آمده است.
- اگر به تازگی میخواهید وارد صنعت تحلیل شوید بهتر است ابتدا سراغ نرمافزار SAS بروید. چراکه به سادگی آن را یاد میگیرید و موقعیتهای شغلی بسیاری در مقابل شما است.
- اگر مدتی است در این حوزه فعالید، زمان آن رسیده است که یک ابزار جدید را امتحان کنید.
- کاربران حرفهای لازم دارند حداقل به دو نرمافزار مسلط باشند تا فرصتهای جدید احتمالی را از دست ندهند.
- اگر میخواهید یک استارتآپ داشته باشید، پایتون و R بهترین گزینهاند.
به طور کلی سازمانهایی که نیاز به پشتیبانی فنی و آموزشی مستمر و مطمئن دارند، SAS را انتخاب میکنند. البته انتخاب محققان و تحلیلگران R است چراکه در محاسبات سنگین بسیار مفید است. در واقع از ابتدا قرار بوده R بار محاسبات سنگین را از دوش سیستم شما بردارد. پایتون هم بهترین انتخاب این روزها برای شروع یک استارتآپ است زیرا طبیعت بسیار شفاف و جامعه کاربران بسیار گستردهای در اختیار دارد. برای یادگیری عمیق هم، پایتون کاملا مناسب است.
امتیاز نهایی به شکل زیر است.
مورد | SAS | R | Python |
دسترسی / قیمت | ۳ | ۵ | ۵ |
سهولت یادگیری | ۴.۵ | ۲.۵ | ۳.۵ |
قابلیت هندلینگ دادهها | ۴ | ۴ | ۴ |
قابلیتهای گرافیکی | ۳ | ۴.۵ | ۴.۵ |
توسعهی ابزارها | ۴ | ۴.۵ | ۴.۵ |
فرصتهای شغلی | ۴ | ۴.۵ | ۴.۵ |
پشتیبانی خدمات مشتری | ۴ | ۳.۵ | ۳.۵ |
پشتیبانی یادگیری عمیق | ۲ | ۳ | ۴.۵ |
جمع امتیازها | ۲۸.۵ | ۳۱.۵ | ۳۴ |