هناك العديد من الأشياء التي يتوجب عليك معرفتها من أجل اختيار أي لغة برمجية أكثر ملائمة قبل البدئ في مجال علوم البيانات . هذا المجال الذي أصبح مؤخرا ذائع الصيت بين أوساط المبرمجين و المهتمين بمفاهيم من قبيل التعلم العميق Deep Learning و الذكاء الإصطناعي Artificial intelligence و تعلم الآلة Machine Learning .. سنناقش اليوم كل ما يربطه مع لغة R و Python و سنرى أي لغة يجب أن تستخدم في هذا الشأن، محددين بذلك نوعية هذا الاستخدام حسب الوضع أو المشكلة المعينة .

تعتبر لغة Python و R من اللغات الشهيرة المستخدمة في مجال علوم البيانات ، وبسبب شعبية هاتين اللغتين فإن تحديد أي لغة مناسبة لهذا المجال سيكون أمرا مربكا وذلك من أجل بدئ مسيرة مهنية موفقة بغض النظر عن أن مصادر تعلم مثل هذه المجالات في دولنا العربية لازالت محدودة أو فقيرة بعض الشيئ .. ولذلك سنحاول قدر المستطاع أن نوضح في هذا المقال أهم الفروق و الاختلافات و كذلك جوانب الاستخدام لكل من لغتي Python و R اللتين تشكلان المكون الرئيسي لمجال علوم البينات . لذلك دعونا نبدأ من دون مقدمات طويلة مع المفاهيم الأساسية والاستدلالية .

إن منهجية علوم البيانات تعمل على تشكيل الطريقة التي تدير بها الشركات أعمالها ، و سيؤدي الابتعاد عن الذكاء الاصطناعي و تعلم الآلة إلى فشل تلك الشركات دون أدنى شك . السؤال الكبير هو : أي أداة / لغة يجب أن تستخدمها ؟ هناك العديد من الأدوات في السوق ، من بينها لغات مثل R و Python ، و تعلم واحدة من هذه اللغات يتطلب منك فقط استثمار بعض الوقت في سبيل إتقانها.

تعتبر R لغة برمجية تم تطويرها في عام 1993 من قبل خبراء معتمدين في مجالات الإحصائيات و علوم البيانات لغرض استخدامها في التحليل الإحصائي الرسومي ( الغرافيكي ) و بشكل عام تستخدم لغة آر في الحوسبة الإحصائية . حيث توفر هذه اللغة واجهات رسومية عالية الجودة و تحتوي أيضا على مكتبات شائعة والتي تساعد المبرمجين في الأجزاء التحليلية.

على الجانب الآخر ، Python لغة غنية عن التعريف ، فهي بسيطة ، سهلة ، عالية المستوى و تنتهج أسلوب البرمجة كائنية التوجه في بنية عملها . تستخدم بايثون لعدة أغراض سواء تطوير تطبيقات الويب أو هندسة البرمجيات ، فقد تم تطويرها من قبل أمهر المبرمجين الذين عملوا على جعلها لغة قوية تحظى بمكانتها في قلوب عشاق الأكواد وعن جدارة أيضا !

و تستخدم Python على نطاق واسع في التطبيقات المعتمدة على واجهة المستخدم الرسومية GUI مثل الألعاب أو تصميم الغرافيك وكذا تطبيقات الويب .

إذاً ، يمكننا القول باختصار أن R لغة برمجة محددة الوظيفة مطورة من قبل علماء الإحصاء ، و بذلك فهي تمنحنا ميزة كونها متخصصة في مجال معين . في حين غالبا ما يتم الإشادة بـ Python على أنها لغة عامة الاستخدام مع سهولة في الفهم و التعلم .

  • دعونا نبدأ من العامل الأول وهي سرعة اللغة :

عندما يتعلق الأمر بالسرعة ، فإن Python أسرع من R في بعض المميزات بينما تأتي R بعدها في مميزات أخرى . ولذلك فإن كل منهما له قدراته الخاصة فيما يتعلق بالسرعة . 

دعونا نمر الى النقطة الأخرى ، وهي طريقة كتابة الكود أو Syntax

سنناقش في هذه المرحلة الطريقة التي يتم بها الإعلان عن المتغيرات و أنواع البيانات وقدرة معالجة البيانات و غيرها .

بداية مع طريقة الإعلان عن المتغيرات ، كمثال سنأخذ متغير من نوع String مثلا ، تستخدم R في هذا الصدد طريقة مشابهة لتلك التي توجد في لغة البرمجة S ، وهي لغة شبيهة بقريبتها R وكلتاهما تستخدمان في الأغراض الإحصائية غير أنها - S - قديمة بعض الشيئ - 1976 .

تستخدم R علامة السهم Arrow Sign ( -> ) لتهيئة المتغير وهي نفس الطريقة التي تستعملها لغة S . و يمكن استعمال هذه الأسهم من اليمين إلى اليسار أو من اليسار إلى اليمين لإسناد القيم الى اسم المتغير ، بينما تستخدم Python علامة الإسناد ( = ) لضبط المتغيرات كباقي أغلب لغات البرمجة الأخرى .

يعتقد مطوروا لغة R في الأساس أنه من الأفضل تحديد اتجاه أداة الإسناد نحو قيمة المتغير على شكل سهم بدلا من مجرد استخدام رمز يساوي ( = ) حيث يربك هذا بالفعل أي مبرمج مبتدئ حول أي متغير تم إسناده . 

النقطة التالية وهي قدرة معاجة البيانات والمكتبات البرمجية الشائعة في كل من R و Python . 

في الصورة أعلاه توجد سطور برمجية من لغتي R و Python ، و بعد تشغيل هذا الكود ، ستحصل على نفس النتائج في كلا الحالتين ، لو قمت بفحص الكود هنا ، فإنه يظهر كيف أن النظام البيئي في ما يخص برمجة و تصميم البيانات للغة R يوفر العديد من الحزم الصغيرة مثل GGally والتي تعد من أكثر المكتبات استخداما في هذه اللغة .. بينما في البايثون تعد ال matplotlib هي المكتبة الرئيسية المتداولة بين مبرمجي لغة Python و التي تستعمل على نطاق واسع في برمجة الواجهات جنبا الى جنب مع مكتبة Seaborn .

تتشابه نتائج الرسم البياني بين R و Python ، و استنادًا إلى هذه النتائج فإنه يمكننا استنتاج أن R بها العديد من الحزم التي تدعم عدة طرق مختلفة لإنجاز المهام ، بينما يوجد طريقة واحدة لعمل شيئ ما في Python . رائع ، لنمر الى المسألة التالية وهي واجهات الغرافيك ..

كما سبق و ناقشنا ، R تم إنشاءها أساسا للتحليل الإحصائي ، ولحكم تخصصها في التعامل مع مختلف أنواع البيانات، لذلك تحتوي R على العديد من المكتبات المخصصة لتصميم و تخطيط البيانات ، هذا ما جعل هذه اللغة غنية بالرسوم و المخططات البيانية عالية الجودة ، عكس لغة Python التي تفتقر لهذه القدرات بسبب أن الغرض منها لم يكن موجها للتحليل الإحصائي منذ البداية . النقص الذي واجهته البايثون خلال مراحلها المبكرة في مكتبات تحليل البيانات الإحصائية كان يعتبر مشكلة ، و لحسن الحظ أنها تحسنت بشكل جيد مؤخرا .

ماذا عن التعلم العميق Deep Learning ؟ 

التعلم العميق هو مجال بحث جديد يتناول إيجاد نظريات وخوارزميات تتيح للآلة أن تتعلم بنفسها عن طريق محاكاة الخلايا العصبية في جسم الإنسان، وكما قد يعلم بعضكم ، تقريبًا غالبية الشركات ( الأجنبية على وجه التحديد ) تعمل على الذكاء الاصطناعي Artificial Intelligence ، و التعلم العميق هو الجزء الرئيسي في الذكاء الإصطناعي .

وحين يتعلق الأمر بالتعلم العميق ، فإن Python تعتلي الواجهة ثم تليها لغة R حيث أن البايثون توفر العديد و العديد من الميزات في مجال التعلم العميق ، بينما R مازالت ضيفا جديدا عليه .

لمتابعة المقال كاملا: