آیا زبان R نسل بعدی زبان‌های برنامه‌نویسی برای بیگ دیتا است؟

آیا زبان R نسل بعدی زبان‌های برنامه‌نویسی برای بیگ دیتا است؟

حوزۀ بیگ دیتا به طرق مختلفی زندگی مارا تحت‌تأثیر خود قرار داده و دستخوش تغییر ساخته است؛ از طرفی، دولوپرها هم دریافته‌اند که زبان برنامه‌نویسی R در بین بقیۀ زبان‌ها، فیچرهای بیشتر و بهتری برای کار در حوزۀ بیگ دیتا دارا است. گذشته از مزایایی که بیگ دیتا دارد، درعین‌حال دردسرهای زیادی را هم برای دولوپرها ایجاد کرده است به‌طوری‌که اکثر دولوپرها متوجه شده‌اند که زبان‌های برنامه‌نویسی قدیمی برای سروکله زدن با اکثر چالش‌هایی که آن‌ها با آن روبه‌رو می‌شوند -مخصوصاً چالش‌های جدید- ناکافی هستند.

دیتا ساینتیست‌ها و دولوپرها وقتی با مسئلۀ پردازش دیتا مواجه می‌شوند، گزینه‌های زیر را در اختیار دارند:
- استفاده از پلتفرم‌های مبتنی بر GUI (رابط گرافیکی کاربری)
- استفاده از زبان‌هایی که اصطلاحاً C-Like هستند مثل C++ ،C و Java
- استفاده از زبان R

زبان R برای مدت 25 سال یک زبان برنامه‌نویسی محبوب بوده است، اما هیچ‌وقت به اندازهٔ زبان C و زبان‌های دیگر بهبود نیافته و قابل‌استفاده نبوده است؛ اما از زمانی که زبان R بهبود یافت و به یک انتخاب عالی برای بیگ دیتا تبدیل شد، زمان مهاجرت دولوپرها به سمت زبان آر فرا رسید.

Oliver Bracht یکی از بلاگرهای زبان R، پستی نوشت که در آن دربارۀ متخصصانی نوشته بود که در مورد مزایای R بحث کرده بودند؛ او نوشته بود که این متخصصین به این مورد اشاره کرده‌اند که زبان R نسبت به زبان‌های دیگر حجم دیتای بزرگتری را می‌تواند هندل کند.

Jan Wijffels در صحبت خود در کنفرانس useR، سه بخش‌بندی از دیتا را باتوجه به سایز آن پیشنهاد داده است؛ به‌عنوان یک قانون کلی، دیتاستی که تا 1 میلیون داده را شامل ‌شود به‌راحتی می‌تواند توسط زبان استاندارد R پردازش شود؛ دیتاستی که بین 1 میلیون تا 1 میلیارد داده را شامل می‌شود هم می‌تواند توسط R پردازش شود اما کمی تلاش بیشتری را می‌طلبد و دیتاستی که بیش از 1 میلیارد داده دارد، باید توسط الگوریتم‌های MapReduce آنالیز شود؛ این الگوریتم‌ها هم می‌توانند در R طراحی شوند و توسط رابط‌هایی با Hadoop و امثال آن پردازش شوند.

حال در ادامه به پلتفرم‌هایی که دیتاساینتیست‌ها می‌توانند از آن‌ها استفاده کنند نگاهی می‌اندازیم.

پلتفرم‌های توسعۀ مبتنی بر رابط کاربری
پلتفرم‌های زیادی برای توسعهٔ نرم‌افزار وجود دارند که مبتنی بر GUI هستند که اکثر آن‌ها کاملاً یوزر‌فرندلی هستند اما این پلتفرم‌ها به‌قدر کافی قوی نیستند تا بتوانند پروژه‌های بیگ دیتا را هندل کنند.

از آنجایی که بیگ دیتا در آیندۀ نزدیک در اولویت خواهد بود، این پلتفرم‌ها رفته‌رفته محبوبیت خود را از دست می‌دهند و دولوپرها درعوض باید به زبان‌های برنامه‌نویسی قدیمی تسلط یابند.

زبان C در چه جاهایی به کمک دیتا ساینتیست‌ها خواهد آمد؟
از سال 1978، زبان C و زبان‌های برنامه‌نویسی مشتق‌شده از آن استانداردهای زبان‌های برنامه‌نویسی را تعیین کرده‌اند؛ C پایه و اساس زبان‌هایی مانند #C++ ،Java ،C و دیگر زبان‌های قدرتمند شئ‌گرا است.

با این‌حال درست است که زبان‌های جدیدی که بیس آن‌ها C است قابلیت‌های شئ‌گرایی قدرتمندی دارند، اما درعین‌حال محدودیت‌هایی هم دارند؛ مثلاً آن‌ها نمی‌توانند مانند بعضی زبان‌ها (مانند زبان R) کوئری‌های بیگ دیتا را هندل کنند.

این زبان‌ها برای اپلیکیشن‌هایی که نیاز دارند تا دولوپر در زمان معینی چندین گیگابایت دیتا را هندل کند عالی هستند اما درعین‌حال این زبان‌ها نمی‌توانند بیگ دیتا را به‌سادگی‌ هندل کنند (البته ++C می‌تواند برای بعضی پروژه‌های بیگ دیتا استفاده شود).

محدودیت‌هایی که خانوادهٔ C دارد، دولوپرها را مجبور کرده است تا به‌دنبال زبان‌های مناسب‌تری باشند که درحال‌حاضر زبان R بهترین انتخاب دولوپرها برای پردازش بیگ دیتا می‌باشد. حال ممکن است این سؤال پیش بیاید که چرا زبان R بهترین گزینه است که در ادامه به بررسی این موضوع خواهیم پرداخت.

R زبان بهتری برای پردازش بیگ دیتا است
زبان برنامه‌نویسی R تقریباً از سال 1993 به بازار عرضه شده است؛ تا چندسال پیش، استفاده از این زبان زیاد قابل‌ملاحظه نبود اما در این چند سال اخیر این زبان توانسته محبوبیت زیادی کسب کند و دولوپرها به‌خاطر توانایی این زبان در پردازش بیگ دیتا، توجه زیادی به این زبان کرده‌اند.

هندل کردن بیگ دیتا در یک پروژه با زبان R از چند سال پیش شروع شد که از آن برای جمع‌آوری دیتا (Data profiling) و رایانش توزیع‌شده (Distributed Computing) استفاده می‌شد؛ امروزه لایبرری‌های این زبان به‌صورت گسترده بر روی پلتفرم‌های بزرگی استفاده می‌شود و البته در سیستم‌‌های کوچکتر و حتی در لپ‌تاپ‌های شخصی هم به خوبی کار می‌کنند.

یکی از نویسندگان وب‌سایت InfoWorld به‌نام Martin Heller اعتقاد دارد که دلایل مختلفی وجود دارد که زبان R بهترین انتخاب برای بیگ دیتا است:

پکیج‌ها و فانکشن‌هایی در R وجود داره که نه‌تنها فایل‌های CSV، بلکه می‌شه به‌راحتی از هر سورس مناسبی دیتا لود کرد. ورای کاراکترهای جداکننده به‌جز کاما که با دستور ()read.table هندل می‌شه، شما می‌تونید جداول دیتا را کپی‌پیست کنید، فایل‌های اکسل رو بخونید، اکسل رو به R مرتبط کنید، دیتاهای SAS و SPSS رو فراخونی کنید و به دیتابیس‌های مختلفی و همچنین اینترفیس‌های RESTful دسترسی داشته باشید؛ درواقع، شما برای ایمپورت کردن دیتا نیازی به یادگیری سینتکس ندارین چراکه ابزار RStudio منویی برای ایمپورت دیتاست دارد و آیتم‌های آن به شما کمک می‌کنن تا دستورات مناسب رو به‌صورت تعاملی با نگاه کردن به دیتا از یک فایل تکست یا یک یوآر‌ال تولید کنین و گزینهٔ تبدیل مناسب رو براساس چیزی که می‌بینید تنظیم کنید.

برای روشن‌تر شدن این مسئله، در ادامه بعضی از این موارد را با جزئیات بیشتری بررسی خواهیم کرد:

لود دیتا از سورس‌های مختلف
قبل از این‌که بیگ دیتا به یک کلمۀ آشنا تبدیل شود، اکثر اپلیکیشن‌ها دیتا را تنها از یک سورس جمع می‌کردند اما امروزه دیگر به این صورت نیست؛ تولد IoT (اینترنت اشیاء) از بیگ دیتا منجر شد. امروزه اکثر پروژه‌ها به دریافت دیتا از چند منبع وابسته هستند (به‌طور مثال، اپلیکیشن‌های فروشگاهی یک مثال قدیمی در این مورد هستند). این دست اپلیکیشن‌ها اطلاعات مشتری را از دیتابیس خودشان، شبکه‌های اجتماعی و از دیوایس خود مشتری گردآوری می‌کنند و درنتیجه شما به یک زبان برنامه‌نویسی نیازی دارید که بتواند دیتای جمع‌آوری شده از تمام این سورس‌ها را پردازش کند.

توان سازگاری برنامه‌نویس
طبیعتاً یادگیری یک سینتکس جدید زمان‌بر است؛ متأسفانه، زبان‌های برنامه‌نویسی چندمنظوره، یادگیری با سرعت بیشتری را می‌طلبند، مخصوصاً اگر شما روی چیز پیچیده‌ای مانند بیگ دیتا کار کنید. اما زبان R یک استثناء است، زیرا مادامی‌که شما دستورات پایه‌ای آن را بلد باشید، می‌توانید از لایبرری‌های آن به‌راحتی برای پردازش بیگ دیتا استفاده کنید.

سازگاری با زبان‌های دیگر 
یکی مزیت‌های زبان برنامه‌نویسی R این است که شما می‌توانید آن‌را همراه و مرتبط با دیگر زبان‌های مهم مانند ++C استفاده کنید.

قابلیت استخراج از پلتفرم‌های کلود
اگر دولوپرها سینتکس dplyr را در R یاد بگیرند، می‌توانند از آن برای ران کردن کوئری‌های بیگ دیتا با پلتفرم‌های مختلف کلود از جمله Google BigQuery و Amazon Redshift استفاده کنند.

سازگاری هرچه بیشتر شرکت‌های هاستینگ با R 
از آنجایی که R تبدیل به زبان استاندارد برای بیگ دیتا شده است، شرکت‌های هاستینگ درحال استفاده از این فرصت هستند که از آن جمله می‌توان به Host.AG، VPS.AG و TrueHoster اشاره کرد (شرکت‌های هاستینگ دیگر هم به احتمال زیاد درحال سازگاری هرچه بیشتر با R هستند).

آیا R آیندۀ بیگ دیتا خواهد بود؟

بیگ دیتا زندگی ما را از جهات مختلفی دستخوش تغییر خواهد ساخت اما به‌هرحال کمتر کسی از این صحبت می‌کند که بیگ دیتا زندگی برنامه‌نویس‌ها را چه‌طور تغییر خواهد داد؟ در یک کلام، دولوپر جماعت همیشه به‌دنبال بهترین راه‌حل است؛ آن‌ها متوجه شدند که R نسبت به بقیۀ زبان‌ها فیچرهای بیشتر و بهتری برای بیگ دیتا دارد و درنتیجه احتمال آن زیاد است که در آیندۀ نزدیک زبان R محبوبیت خیلی بیشتری از آنچه درحال‌حاضر دارد کسب کند.

نظر شما در مورد تأثیرات بیگ دیتا در زندگی روزمرهٔ انسان‌ها چیست؟ در چه بخش‌هایی از زندگی شخصی و اجتماعی و صنعت می‌توان از بیگ دیتا استفاده کرد؟ همچنین اگر تجربۀ خاصی درمورد کار با زبان R در پروژ‌ه‌های بیگ دیتا دارید، می‌توانید در بخش نظرات آن‌را با ما و سایر کاربران سکان مطرح کنید. 

منبع


هادی فاخریان