بأزيد من 200 لغة برمجية في العالم اليوم قد تطرح على نفسك السؤال الأكثر شهرة بين كل المبرمجين او على الأقل المستجدين في مجال البرمجة و هو : ما هي أفضل لغة برمجة ؟، قد تبحث كثيرا في مواقع أجنبية او عربية، قد تطرح سؤالك في مجموعات فسيبوكية، او مواقع مثل Quora او Stackoverflow، و ستحصل على عدد كبير من النتائج و الإختلافات و لن تحصل على إجابة شافية إطلاقا، لأن ذلك السؤال لا يقبل إجابة واحدة، بل إجابات .
فلو كانت لغة برمجية واحدة في العالم هي الأفضل، لما نشأ تعددها، و لما تواجدت تطويرات دائمة للغات البرمجة، إن الهدف من تعدد لغات البرمجة هو خدمة أهداف مختلفة لا نفس الهدف، فبعض اللغات تخصصت في صناعة برمجيات سطح المكتب، و بعضها تخصص في صناعة تطبيقات الويب، و تخصصت الأخرى في صناعة و إبتكار تطبيقات الموبايل، بينما تخصص البعض في الذكاء الإصطناعي و البعض الآخر في عالم البيانات الضخمة Big Data و بعضها تزعم عالم الـ Data Science او علوم البيانات، و بقيتها قد إستغلت فرصة العمل في مجال الروبوتيك Robotics و غيرها، إن السؤال السليم هو : أي تقنية برمجية قوية و جيدة لمشروعي في مجال X ؟ و ليس : ما هي أفضل لغة برمجة .
بتعويض المتغير X بعبارة " علوم البيانات - Data Sciences " سنطرح على أنفسنا سؤال : ما هي أفضل التقنيات و اللغات البرمجية المستخدمة في مجال علوم البيانات ؟ و حتى نعينك على شقائك في البحث و طرح أسئلتك و إستفساراتك، فقد شكلنا لك هذا المقال، مقال على منصة أكوا ويب التي لطالما إعتنت باللغات البرمجية و قامت بشرحها لك و تصنيفها حسب مجالات العمل .
- أول الأشياء أولا : الـ Data Science و الـ Data Scientist :
قبل ان تبدأ اولا بقراءة هذا المقال و الإطلاع على اللغات البرمجية المستخدمة في هذا المجال، توجب علينا توضيح هذا المجال قبل كل شيئ، الـ Data Science او " علم البيانات " و هو بإختصار غير ويكيبيدي ( بعيد عن تعريفات ويكيبيديا ) هو إمكانية إستخراج عدد كبير جدا من البيانات ثم دراسة هذه البيانات و إستخراج معلومات نستطيع الإستفادة منها لاحقا بشتى الأشكال، تعتمد الشركات التقنية الرائدة اليوم على البيانات كجزء أساسي في تحقيق عائدات لشركتها، إذ تقوم مثلا شركة فيسبوك على إنتزاع و إستخراج جميع أنواع المعلومات من المستخدمين من منشورات و صور و رغبات و مشاعر و مكنونات خاصة بهم، أي معلومة تافهة كانت او مفيدة يتم تخزينها و تُسمى بالـ Big Data او البيانات الضخمة و هو مجال من خلاله يتم تجميع البيانات ثم تصنيفها حسب نوعها و العودة لها حين تحتاجها الشركة ( إليك كل ما تحتاج معرفته عن البيانات الضخمة و الـ Big Data )، عموما، بعد تجميع هذه البيانات و أصنافها، يأتي مختص في عالم البيانات او Data Scientist الذي طور نفسه و أجاد اللغات و التقنيات الخاصة بعلم البيانات، ثم يقوم بإستخراج أي نوع من الإحصائيات يحتاجها او تحتاجها الشركة، فإن ارادت الشركة معرفة أفضل أيام الأسبوع بالنسبة للمستخدمين على الفيسبوك ( على سبيل المثال نعلم انه مثال ضعيف ) سيقوم مختص البيانات بدراسة كل تلك البيانات و إستخراج إحصائية تقول ان يوم " السبت " هو اليوم الأفضل في حياة 78% من مستخدمي منصة فيسبوك، بينما " الإثنين " هو الأسوأ بالنسبة لـ 95% من مستخدمي المنصة، لذلك تستطيع لاحقا الفسيبوك الإرتكاز على هذه الإحصائية من أجل إطلاق حملة ما او منتج ما في شركتها لزيادة أرباحها إعتمادا على إحصائيات تم إستخراجها علميا من كم هائل من البيانات التي تم تجميعها .
و ها قد عرفت الآن دور الـ Data Science و دور الـ Data Scientist كذلك، هذا المجال أصبح مطلوبا و بكثرة بين الشركات التقنية، و تتهافت الشركات اليوم على الـ Data Scientist، و لربما تريد تتبيث قدمك في هذا المجال، و نقترح عليك تعلم اللغات التالية لتحقيق ذلك .
- لغة البرمجة بايثون Python :
دعونا نتفق ان البايثون بنت اللعيبة أصبحت من اللغات التي تُدرج نفسها في كل المجالات تقريبا، تريد تصميم برمجيات سطح المكتب ؟ يمكنك إستخدام البايثون، موبايل ؟ مواقع ؟ ذكاء إصطناعي ؟ علوم البيانات ؟ البايثون موجودة لا محالة، ما يميز البايثون هو سهولة كتابتها و قراءة السطر البرمجي الخاص بها كذلك، و إمكانية تطوير برمجيات مختلفة كليا بعدد قليل من الأسطر البرمجية على عكس الجافا مثلا ( التي سنطرحها أيضا في هذا المقال - Spoiler Alert ) التي يستلزمك 10 اسطر برمجية من أجل المناداة على الـ Packages ثم إنشاء الكلاس و كتابة عبارة Hello World، بينما يمكن تنفيذ نفس الأمر في سطر واحد في البايثون .
عودة بنا الى عالم علم البيانات، تستخدم البايثون مجموعة من المكتبات القوية الخاصة بلغة البايثون في هذا المجال على رأسها Pandas و كذلك SciPy، و هما من أشهر المكتبات في البايثون المختصتين في علوم البيانات، إذ تسمح لك هذين المكتبتين بإنشاء Data Visualization بالإعتماد على المعلومات التي تم تجميعها من قبل، كما يمكن كذلك إستخدام مكتبة NumPy الخاصة بالإحصائيات من أجل إستخراج إحصائيات دقيقة بالإعتماد على البيانات السابقة.
البايثون و مكتباتها تُمثل بيئة خصبة لكل Data Scientist مستقبلي يطمح لتمجيد قدراته في هذا المجال .
- الـ SQL و الـ NoSQL :
الـ SQL ليست لغة برمجة في حد ذاتها و إنما Structured Query Language أي لغة إستعلام في الأصل تسمح لنا بإدارة البيانات الموجودة في قواعد البيانات عن طريق مجموعة من الأوامر / إستعلامات او Queries، حين تتعامل مع الـ Data فأنت تلقائيا تتعامل مع قواعد البيانات و الجداول، فتلك البيانات مخزنة و محفوظة في قواعد البيانات، إن كان نوع قواعد البيانات علائقيا او RDBMS، فأنت تلقائيا ستتعامل مع الـ SQL و الإستعلامات لا محالة من أجل جلب تلك البيانات او إحصائياتها او اي شيئ يتعلق بها، بل حتى صناعة برمجيات إحصائية بالإعتماد على تلك البيانات المخزنة سيتطلب منك بعض أوامر الـ SQL رغما عن أنفك .
لكن ماذا لو كان التخزين في قواعد بيانات غير علائقية ؟ فالشركات التقنية مثل الفيسبوك و غيرها لا تعتمد على الـ RDBMS إطلاقا، و ذلك لأنها محدودة في الأصل و بطيئة كذلك، بل تعتمد على قواعد بيانات تعتمد على الـ NoSQL مثل MongoDB، إذ تتمتع أكثر بالمرونة و السرعة و تخزين أفضل لكل أنواع البيانات، و توجب عليك كذلك من طرفك ان تتقن التعامل مع الـ NoSQL و قواعد بياناته و طرق الإستعلام و التخزين التي تعتمد في الغالب على تقنيات مثل JSON و غيرها .
- لغة البرمجة R :
هل أنت أحد المتابعين لصفحتنا على الفيسبوك؟ إن كنت كذلك فقد نشرنا قبل يومين تقريبا منشورا عن لغة البرمجة R، و إن لم تكن متابعا لصفحتنا فقد حان الوقت لمتابعتها من هنا ، لغة البرمجة R من اللغات المتصدرة لقوائم أفضل اللغات البرمجية لسنة 2018، فهي لغة برمجة إحصائية تعتمد على الـ Statistical Programming من أجل إبراز النتائج، تقوم هذه اللغة بإستخراج إحصائيات دقيقة بالأعتماد على بيانات مدخلة، كما يمكنها التنبؤ كذلك ببعض الإحصائيات المستقبلية إن كانت البيانات المتوافرة كافية، يتم إستخدامها بشكل كبير حين يتعلق الأمر بالبيانات الضخمة جدا، او البيانات المعقدة صعبة التفكيك، و تتناسب إضطرادا مع لغة البرمجة بايثون حين يتعلق الأمر بمكنوناتها المخصصة للـ Data Science، عوضت كذلك R بعض التقنيات البرمجية الخاصة بالإحصائيات أيضا مثل Matlab بشكل جزئي و ليس كلي.
عموما، تعتبر لغة البرمجة R مثالا و خيارا قويا من أجل الولوج لعالم الـ Data Science و الغوص فيه .
- لغة البرمجة Java :
بتعددها و إستخداماتها الضخمة في كل المجالات تقريبا، تعتمد الشركات التقنية كذلك على مطوري الجافا في علوم البيانات، تأتي لغة الجافا بعدة مكتبات كذلك تستطيع الإعتماد عليها في تقنيات الـ Machine Learning و الـ Data Science على التوازي من أجل إستخراج اي نوع من البيانات او إحصائيات بالإعتماد على البيانات الموجودة مسبقا، من بين هذه المكتبات يوجد الأشهر و هي Weka، كذلك Massive Online Analysis و لا ننسى كذلك مكتبة MLlib المتوفرة كذلك في كل من Scala و Python، تعتمد هذه المكتبات على خوارزميات قوية جدا في التحليل و التنسيق، قادرة على التعلم ذاتيا و توقع أي نوع من الإحصائيات بناءا على بيانات مسبقة، او استخراج بيانات معينة بين كم هائل من البيانات الضخمة، بتعدديتها و قدراتها المتطورة و مرونتها، الجافا مطلوبة و بكثرة في هذا المجال .
لا ننسى ان الجافا معشوقة الجماهير، و يفضلها العديدون في بناء تطبيقات الموبايل او تطبيقات سطح المكتب، مما زاد شعبيتها و شهرتها بين المستخدمين حول العالم .
- لغة البرمجة Julia :
لغة البرمجة " جوليا - Julia " هي لغة ديناميكية كائنية التوجه، تم إبتكارها في الأساس من أجل التحليل و التعامل مع البيانات الرقمية بشكل خاص، و هما العاملين الأساسيين اللذان نحتاجهما بكثرة حيت يتعلق الأمر بالـ Data Science، بالرغب من قدراتها في هذا المجال، إلا ان إستخدامها لازال شبه مضمحل، فالبايثون و الجافا قد عوضتا الهدف من هذه اللغة في الأساس، لكن ببعض التحديثات في هذه اللغة، يمكننا الحصول على منصة مبنية بواسطتها قادرة على توفير اللازم حين يتعلق الأمر بتحليل البيانات و إستخراج الإحصائيات و التعامل الستاتيستيكي مع الأرقام و الداتا بشكل قياسي، لا يمكن ان ننكر فضل Julia في تطور العديد من الشركات التقنية اليوم التي إستغلتها لصالحها في تجميع البيانات و التعامل معها بهذه اللغة، و لا يمكن ان ننكر انها لغة قوية حقا في هذا المجال، لكن هل ستستطيع الصمود في ظل قريناتها ؟ سؤال لفلاسفة البرمجة !
- تقنيات أخرى مفيدة في مجال الـ Data Science :
اللغات البرمجية ليست كل شيئ حين يتعلق الأمر بالـ Data Science، يوجد أيضا تقنيات و خصائص أخرى يجب ان يتمتع بها الـ Data Scientist الى جانب إتقان مهارات اللغات البرمجيات أعلاه كذلك على رأسها ان يجيد التعامل رياضيا و إحصائيا مع البيانات، أن تكون لديه قدرات في مجال الـ Machine Learning و الـ Data Modeling من أجل إستعراض البيانات بشكل فعال، ان تكون قادرا على حل المشاكل او Problem Solver، ان تجيد التعامل مع تقنيات الشبكات و قواعد البيانات مثل AWS او Microsoft Azur، ان تتمتع بالعديد من الخواص الموجودة في هذا الأنفوجرافيك البسيط الجانبي.و لنسهل عليك خوض غمار تجربة الـ Data Science، نقترح عليك تجربة هذا الكورس التفاعلي من منصة CodeCademy المخصص للـ Data Science .