بقلم:
نوره الـموسـى
LinkedIn: Norah AlMousa
اللغات البرمجية
- Hello World! -
كثيرًا ما يتبادر لأذهاننا، ألا تكفي لغة برمجية واحدة؟ لماذا هناك لغات برمجية متعددة؟
بدايةً
اختلاف لغات العالم البشرية، نجد لغة تتشابه أحرفها وتكون سهلة للتعلم وبالجانب الآخر، لغة تتشعّب حروفها وتمتد لتكون صعبة نسبيًا كالعربية، والصينية ولكل من هذه اللغات ناطقيها.
لكن.. كيف يتواصل البشر أجمع فيما بينهم؟
على سبيل المثال، لا يستطيع الشخص استخدام اللغة العربية في اسبانيا، لكن يستطيع استخدام اللغة الإنجليزية!
الأمر ذاته ينطبق على اللغات البرمجية،
تتعدد اللغات البرمجية كما الحال في اللغات البشرية فلكل لغة استخدامها وخصائصها التي تميزها عن غيرها من اللغات، بذلك نرى أن هنالك لغة موحدة يتواصل بها جميع ناطقي هذه اللغات، فماذا عن لغاتنا البرمجية؟
ما هي اللغة البرمجية؟
هي رموز صممت لإيصال التعليمات إلى جهاز الحاسب وتستخدم بشكل رئيسي للتحكم في أداء الجهاز والتعبير عن الخوارزميات، وفي الوقت الحاضر ظهرت لنا العديد من اللغات البرمجية المختلفة.
تنقسم اللغات البرمجية من حيث النماذج إلى:
أمرية (Imperative)
تعريفية (declarative)
كما أنها تنقسم من حيث المستويات إلى:
لغات عالية المستوى
(High-level language)
لغات منخفضة المستوى
(Low-level language)
فما هي هذه المستويات؟
اللغات العالية المستوى: هي لغات أقرب إلى فهم الإنسان والمبرمج بحيث يمكنه فهمها بسهولة بالإضافة إلى تفسيرها (interpret) أو ترجمتها (Compile).
اللغات المنخفضة المستوى: هي لغة أقرب إلى فهم الآلة مقارنةً بالبشر، وتكون أعلى كفاءة للذاكرة وتنقسم إلى لغتين:
(Assembly Language) | لغة التجميع
(Machine Language) | لغة الآلة
أنواع اللغات البرمجية
- عالية المستوى -
تختلف اللغات البرمجية كما ذكرنا سابقًا، حسب طبيعة عملها وخصائصها والهدف المراد منها وحسب مستخدمها الخاص.
سنتعرف على أبرز اللغات البرمجية التالية:
لغة C:
تعتبر لغة إجرائية - عالية المستوى - على الرغم من عمرها الكبير إلا أنّها واحدة من أكثر اللغات شعبية واستخدامًا نسبةً إلى مستوى تعقيدها وصعوبتها.
تستخدم بالعديد من المجالات المختلفة، كبرمجة تطبيقات النظام مثل أنظمة التشغيل المختلفة بالاضافة إلى الألعاب والرسومات والتطبيقات المعقدة حسابيًا.
مثال بسيط للكود البرمجيّ:
لغة Java:
تعتبر لغة متعددة المنصات - عالية المستوى - ومن أقوى مميزاتها أنها مصممة لتكون قابلة للتنفيذ على جميع أنواع الأجهزة كمقولة “write once, run anywhere“
اضافةً إلى أنها واحدة من أقوى اللغات استخدامًا، وتعتبر خيار أولي جيّد للتعلم البرمجي.
تستخدم للعديد من الأعمال نسبةً لمميزاتها، كبرمجة تطبيقات الويب وتطبيقات الجوال ومن الأمثلة على ذلك نظام تشغيل اندرويد الخاص بقوقل, يستخدم لغة جافا كاللغة الأم له.
مثال بسيط للكود البرمجي:
لغة Python:
تعتبر البايثون لغة برمجية - عالية المستوى - ومن أكثر اللغات شعبية لوقتنا الحاليّ، من مميزاتها عملها على أنواع أنظمة التشغيل المختلفة وتلاحمها مع اللغات البرمجية الأخرى كلغة C | C++ | Java وسهولة تعلمها، وتطورها السريع ومناسبتها لحديثي عهد البرمجة.
تستخدم لغة البايثون في العديد من المجالات العامّة نسبةً لمدى تنوعها مثل بناء تطبيقات سطح المكتب وتطبيقات الويب والألعاب والسكريبتات(scripting language) واختصاصًا مثل الذكاء الاصطناعي - AI- وتعلم الآلة - machine learning -
مثال بسيط للكود البرمجي:
لغة JavaScript:
تعتبر لغة برمجية - عالية المستوى - مفسّرة (interpreted) ومتحركة (Dynamic)؛ وتشكل أحد الأسس التي ترتكز عليها صفحات الويب (إضافةً إلى HTML و CSS) بالإضافة إلى أنها (client-side scripting language) أي لغة من جانب العميل.
تستخدم لإنشاء صفحات ويب تفاعلية، وتطبيقات ويب بما في ذلك الألعاب؛ وهي مستعملة من غالبية المواقع، وتدعمها جميع المتصفحات دون الحاجة إلى إضافات خارجية.
مثال بسيط للكود البرمجي:
لغة PHP:
تعتبر لغة برمجية - عالية المستوى - مفتوحة المصدر وترمز إلى“hypertext pre processor” كما أنها تصنف في عالم الويب تحديدًا بأنها أحد الأسس التي ترتكز عليها صفحات الويب (إضافةً إلى HTML و CSS) بجانب لغة JavaScript. بالإضافة إلى أنها تعتبر لغة برمجة من جانب الخادم (server-side scripting language) على عكس JavaScript.
تستخدم لعدة ميزات:
تعتبر من أسهل اللغات البرمجية والأفضل لدي مطوّري الويب وتتوافق مع العديدة من الأنظمة، كما أنها توفر نوع من الحماية و الأمان في الاستخدام .
إلي جانب هذه المميزات، تتميز أيضا بالسرعة الكبيرة في إنشاء البرامج وتدعم كذلك قواعد البيانات المختلفة وتستخدم لإنشاء صفحات الويب التفاعلية المتغيرة.مثال بسيط للكود البرمجي:
لغة SQL:
تعتبر لغة برمجية - عالية المستوى - وهي اختصار لعبارة “Structured Query Language” (أي لغة الاستعلام المنظمة)،
تكمن أهميتها بأنها تستطيع معالجة و تخزين بيانات المستخدمين في مكان واحد و بكل سهولة يسمى(قاعدة بيانات)، ومن أهم مميزاتها الوصول إلى تلك البيانات بشكل سريع جدًا.
تستخدم لإجراء عمليات على قواعد البيانات، كإضافة أو حذف أو حتى تحديث البيانات من قاعدة البيانات، أو إلى تعديل بُنية قاعدة البيانات بحد ذاتها. كذلك تحديد أنواع البيانات التي يتم تخزينها بدقة أو وضع شروط محددة عليها وعدم تكرار هذه البيانات.
مثال بسيط للكود البرمجي:
لغة Ruby:
تعتبر لغة برمجية - عالية المستوى - ومفتوحة المصدر، تدعم لغة روبي أنماط برمجة (programming paradigms) متعددة، من ضمنها البرمجة الوظيفية (functional programming) والبرمجة الأمرية (imperative programming). ومن مميزاتها أنها تملك نظام أنواع ديناميكي، وإدارة تلقائية للذاكرة.
تستخدم روبي في:
بناء البرامج المكتبية، تطبيقات الويب، خوادم الويب، أدوات النظام وفي قواعد البيانات.
فيمكن استعمال روبي لأداء الكثير من الأشياء على سبيل المثال لا الحصر.
مثال بسيط للكود البرمجي:
"هناك نوعان فقط من لغات البرمجة: لغات يشتكي منها الناس ولغات لا أحد يستعملها !"
C++ بيارن ستروستروب | مخترع لغة
اختيار اللغة المناسبة
كيف يمكنني أن اختار اللغة البرمجية المناسبة لي؟
يوضح النموذج التالي طريقة اختيارك بناء على عدة أسئلة مهمة عن هدفك من تعلم اللغة:
مشروع أو شركة كبيرة؟
لغة مرنة؟
تطوير المواقع؟
تطوير تطبيقات الجوال؟
مسيرة اللغات
كيف تصل اللغة؟ صممت جميع اللغات كوسيط للتواصل مع الحاسب. فكما ذكرنا بالتعريف،
هي رموز توصل التعليمات لجهاز الحاسب.
لذلك يمكن اعتبارها كوسيط ما بين الإنسان والحاسب.
وكما ذكرنا باختلاف مستوياتها:
الإنسان يستطيع فهم واستخدام مختلف لغات البرمجة
جهاز الحاسب يستطيع فهم 0 أو 1 فقط
فحتى تصل التعليمات لجهاز الحاسب،
يتم ترجمة اللغات العالية إلى لغات منخفضة المستوى
ترجمة لغة عالية المستوى
(High-Level Programming Language) إلى لغة التجميع (Assembly Language)
ترجمة لغة التجميع (Assembly Language) إلى لغة الآلة (Machine Language)
الإحصائيات
هناك اختلاف كبير بين اللغات المفضلة لدى المبرمجين، البعض يفضل لغته الأم والبعض الآخر يتعمق في لغة أخرى حتى يجد ما يفضله.
مصادر لتعلم اللغات البرمجية
تعد المصادر التالية من أفضل المصادر التقنيّة العربية لتعلم اللغات البرمجية.
برمج
برمج هي منصة تفاعلية باللغة العربية لتعلم البرمجة، بطريقة عملية مبسطة ولجميع المستويات وتهدف إلى تنمية مهارات البرمجة في العالم العربي، وتطوير جيل جديد من المبرمجين العرب.
تقدم منصة برمج عدة دورات مجانية لعدة لغات:
C# | C++ | C | JAVA | SWIFT | PYTHON
تقدم كذلك معسكرات تدريبية مدفوعة:
كمطور Full-stack للويب، برمجة تطبيقات الاندرويد، برمجة PHP
هرمش
هو موقع تعليمي مجاني يهتم بعلوم الكمبيوتر و يقدم إليك المعرفة بشكل مبسّط و مفصّل, و هو المكان المناسب لأي شخص يطمح بأن يصبح مبرمجًا محترفًا و مبدعًا في العالم الرقمي.
يقدم محتوى تعليمي لبعض اللغات مثل: JAVA | Python | C++ | SQL | HTML
بالاضافة لتقديمه بعض الدورات في تطوير التطبيقات أو تطوير المواقع.
Code For Girls
هي منظمة تهدف إلى تمكين الفتيات في مجال التقنية وتعليمهم البرمجة التي تمكنهم من جعل الخيال حقيقة، وتهدف لتشجيع الفتيات على حل مشكلات حقيقية باستخدام التقنية.
تقدم عدة معسكرات تدريبية:
برمجة تطبيقات الجوال (ايفون) | برمجة تطبيقات الجوال (اندرويد) | تصميم المواقع الإلكترونية | برمجة تطبيقات انترنت الأشياء (اردوينو) | مبادئ البرمجة بلغة البايثون.
موسوعة حسوب
تهدف موسوعة حسوب لتوفير توثيق عربي كامل وعالي الجودة، وتسعى لتطوير العالم العربي عن طريق توفير حلول تساعد الشباب العرب على العمل والتطوّر.
تقدم موسوعة حسوب شرح وافي ومرجع قوي للعديد من اللغات البرمجية المختلفة كما أنها مدعّمة بالأمثلة وتقنيات تطوير الويب والجوال.
CODE
هي منظمة غير ربحية تهدف إلى تمكين الأطفال وتعليمهم البرمجة بطرق ممتعة وحديثة بالاضافة إلى ترجمتها بمختلف اللغات البشرية
تقدم عدة دورات مختلفة بحسب الفئة العمرية، يمثل بعضًا منها:
فئة ما قبل المدارس | فئة المدارس الابتدائية | فئة المدارس الإعدادية | فئة المدارس الثانوية