Big Data (کلان داده) به طُرق مختلفی زندگی ما را تحتتأثیر خود قرار داده و دستخوش تغییر ساخته است و گذشته از مزایایی که کلان داده دارا است، در عین حال دردسرهای زیادی را هم برای دولوپرها ایجاد کرده است به طوری که اکثر دولوپرها متوجه شدهاند که زبانهای برنامهنویسی قدیمی برای سروکله زدن با اکثر چالشهایی که با آن روبهرو میشوند، مخصوصاً چالشهای جدید، ناکافی هستند!
میتوان گفت که دیتا ساینتیستها و دولوپرها وقتی با مسئلۀ پردازش دیتا مواجه میشوند، گزینههای زیر را در اختیار دارند:
- استفاده از پلتفرمهای مبتنی بر GUI
- استفاده از زبانهایی که اصطلاحاً C-Like هستند (مثل C++ ،C و Java)
- استفاده از زبان R
- و دیگر رویکردها
زبان R برای بیش از ده دهه به عنوان یک زبان برنامهنویسی تخصصی عرض اندام کرده بود اما هیچوقت به اندازهٔ زبان C و زبانهای مطرح دیگر بهبود نیافته و قابلاستفاده نبوده است تا اینکه تغییر و تحولاتی در ساختار این زبان صورت گرفت و به یک انتخاب عالی برای بیگ دیتا تبدیل شد و برخی دولوپرها و شرکتهای نرمافزاری شروع به مهاجرت به سمت آن کردند.
از سال 1978، زبان C و زبانهای برنامهنویسی مشتقشده از آن استانداردهای زبانهای برنامهنویسی را تعیین کردهاند به طوری که C پایه و اساس زبانهایی مانند #C++ ،Java ،C و دیگر زبانهای قدرتمند شیئگرا است. با این حال درست است که زبانهای جدیدی که پایهٔ آنها C است قابلیتهای شیئگرایی قدرتمندی دارند، اما در عین حال محدودیتهایی هم دارند به طوری که مثلاً نمیتوانند همچون برخی زبانهای تخصصیتر مانند R، کوئریهای کلان داده را به خوبی هندل کنند (این زبانها برای اپلیکیشنهایی که نیاز دارند تا دولوپر در زمان معینی چندین گیگابایت دیتا را هندل کند عالی هستند اما در عین حال نمیتوانند کلان داده را به سادگی هندل کنند.)
محدودیتهایی که زبانهای خانوادهٔ C دارند دولوپرها را مجبور کرده تا به دنبال زبانهای مناسبتری باشند که در حال حاضر زبان R یکی از بهترین انتخابهای پیشروی آنها برای پردازش بیگ دیتا میباشد. حال ممکن است این سؤال پیش بیاید که چرا زبان R یکی از بهترین گزینهها است که در ادامه به بررسی این موضوع خواهیم پرداخت.
درآمدی بر زبان R
R تقریباً در سال 1993 به بازار عرضه شد و تا چند سال پیش هم استفاده از این زبان زیاد قابلملاحظه نبود اما در سالهای اخیر این زبان توانسته محبوبیت زیادی کسب کند و دولوپرها به خاطر توانایی این زبان در پردازش بیگ دیتا، توجه زیادی به این زبان کردهاند.
هندل کردن کلان داده در یک پروژه با زبان R از چند سال پیش شروع شد که از آن برای جمعآوری دیتا و رایانش توزیعشده استفاده میشد و این در حالی است که امروزه لایبرریهای این زبان به صورت گسترده بر روی پلتفرمهای بزرگی استفاده میشود. یکی از نویسندگان وبسایت InfoWorld به نام Martin Heller اعتقاد دارد که دلایل مختلفی وجود دارد که زبان آر بهترین انتخاب برای بیگ دیتا است:
پکیجها و فانکشنهایی در آر وجود داره که نه تنها از طریق فایلهای سیاسوی، بلکه میشه به راحتی از هر سورسی دیتا رو لود کرد و میتونید جداول رو کپی/پیست کنید، فایلهای اکسل رو بخونید، اکسل رو به آر کانکت کنید، دیتاهای SAS و SPSS رو فراخونی کنید و به دیتابیسهای مختلفی و همچنین اینترفیسهای رِستفول دسترسی داشته باشید.
در واقع، شما برای ایمپورت کردن دیتا نیازی به یادگیری سینتکس ندارین چرا که ابزار RStudio منویی برای ایمپورت دیتاسِت داره و آیتمهایش به شما کمک میکنن تا دستورات مناسب رو به صورت تعاملی با نگاه کردن به دیتا از یک فایل تکست یا یک یوآرال تولید کنین.
برای روشنتر شدن این مسئله، در ادامه بعضی از این موارد را با جزئیات بیشتری بررسی خواهیم کرد:
- لود دیتا از سورسهای مختلف: قبل از اینکه بیگ دیتا به یک کلمۀ رایج در میان دولوپرها تبدیل شود، اکثر اپلیکیشنها دیتا را تنها از یک سورس جمع میکردند اما امروزه دیگر به این صورت نیست چرا که ظهور فناوریهایی همچون اینترنت اشیاء برخی معادلات را به هم ریخته است! امروزه اکثر پروژهها به دریافت دیتا از چند منبع وابسته هستند (به طور مثال، اپلیکیشنهای فروشگاهی یک مثال قدیمی در این مورد هستند به طوری که این دست اپلیکیشنها اطلاعات مشتری را از دیتابیس خودشان، شبکههای اجتماعی و از دیوایس خود مشتری گردآوری میکنند و در نتیجه شما به یک زبان برنامهنویسی نیازی دارید که بتواند دیتای حجیم جمعآوری شده از تمام این سورسها را پردازش کند.)
- توان سازگاری برنامهنویس: طبیعتاً یادگیری یک سینتکس جدید زمانبر است و زبانهای برنامهنویسی چندمنظوره یادگیری با سرعت بیشتری را میطلبند، مخصوصاً اگر شما روی چیز پیچیدهای مانند بیگ دیتا کار کنید. اما زبان آر یک استثناء است زیرا مادامی که سینتکس پایهای آن را بلد باشید، میتوانید از لایبرریهای آن به راحتی برای پردازش بیگ دیتا استفاده کنید.
- سازگاری با زبانهای دیگر: یکی از مزیتهای زبان برنامهنویسی آر این است که میتوانید آن را همراه و مرتبط با دیگر زبانهای برنامهنویسی مطرح، مانند سیپلاسپلاس، استفاده کنید.
- قابلیت استخراج از پلتفرمهای کلود: اگر دولوپرها سینتکس dplyr را در این زبان یاد بگیرند، میتوانند از آن برای ران کردن کوئریهای بیگ دیتا با پلتفرمهای مختلف کلود از جمله Google BigQuery و Amazon Redshift استفاده کنند.
آیا R آیندۀ بیگ دیتا خواهد بود؟
بیگ دیتا زندگی ما را از جهات مختلفی دستخوش تغییر خواهد ساخت اما به هر حال کمتر کسی از این صحبت میکند که بیگ دیتا زندگی برنامهنویسها را چهطور تغییر خواهد داد؟ در یک کلام، دولوپر جماعت همیشه به دنبال بهترین راهحل است و ایشان متوجه شدهاند که این زبان نسبت به بقیۀ زبانها مطرح فیچرهای بیشتر و بهتری برای کار با کلان داده دارد و در نتیجه احتمال آن زیاد است که در آیندۀ نزدیک زبان R محبوبیت خیلی بیشتری از آنچه در حال حاضر دارد کسب کند.