ما هي لغة البرمجة؟
هي مجموعة من التعليمات التي يمكن استخدامها للتفاعل مع الحاسوب والتحكم فيه، تُستخدم هذه اللغات لتصميم مواقع الويب وإنشاء التطبيقات وتطوير أنظمة التشغيل والتحكم في المركبات الفضائية وتحليل البيانات.
أول محاولة برمجة في العالم
تم تطوير لغة البرمجة الأولى في عام 1843 عندما عملت آدا أوجستا بايرون المعروفة باسم آدا لوفليس وتشارلز باباج على المحرك التحليلي، الذي كان حاسوباً ميكانيكياً بدائياً، وكتبت آدا لوفليس خوارزمية المحرك التحليلي، وهو أول برنامج حاسوبي لحساب أرقام برنولي.
فئات لغات البرمجة
تنقسم لغات البرمجة إلى خمس فئات رئيسية، مع الأخذ بعين الاعتبار أن بعض اللغات يصنّف في أكثر من فئة:
- لغات البرمجة الإجرائية: تتبع اللغة الإجرائية سلسلة من البيانات أو الأوامر من أجل تحقيق الهدف، تسمى كل سلسلة من الخطوات إجراء، وسيكون للبرنامج المكتوب بإحدى هذه اللغات إجراء واحد أو أكثر داخله. ومن الأمثلة الشائعة عليها لغة باسكال، سي وبيسيك.
- لغات البرمجة الوظيفية: تركّز اللغات الوظيفية على ناتج الدوال الرياضية، وتؤدي كل وظيفة قابلة لإعادة الاستخدام من الشيفرة البرمجية مهمة محددة وتعيد نتيجة. ومن الأمثلة الشائعة عليها لغة سكالا وإيرلانغ وهاسكل.
- لغات البرمجة غرضية التوجه: يكون البرنامج كمجموعة من الكائنات تتكون من البيانات والبرامج، والمعروفة باسم السمات والطرق. يمكن إعادة استخدام الكائنات في برنامج أو في برامج أخرى، من أمثلتها لغة سي بلس بلس وجافا وبايثون.
- لغات البرمجة النصية: يستخدمها المبرمجون لأتمتة المهام المتكررة، أو إدارة محتوى الويب الديناميكي، أو دعم العمليات في التطبيقات، من أمثلتها جافا سكريبت وبيرل وروبي.
- لغات البرمجة المنطقية: تعبّر عن سلسلة من الحقائق والقواعد لتوجيه الحاسوب حول كيفية اتخاذ القرارات، وتشمل بعض الأمثلة عليها برولوغ وداتا لوغ وألما زيرو.
كيف تختار لغة البرمجة لمشروع ما؟
يعد اختيار لغة البرمجة المناسبة للمشروع أو التطبيق من الجوانب المهمة والتي تحدد نجاح أو فشل المشروع، ولكن توجد عدة تساؤلات تساعدك على اختيار اللغة الأنسب:
- هل تتمتع لغة البرمجة بالدعم المجتمعي المناسب وهل ستعمل على المدى الطويل؟
- ما نوع المشروع: تطبيق ويب أمْ تطبيق هاتف محمول أمْ من المنصات المتقاطعة؟
- ما الذي يفضّله العملاء؟
- هل هناك أي متطلبات محددة لمكتبات أو أدوات أو ميزات للغة البرمجة؟
- هل المطورون ذوو الخبرة متاحون لتطوير لغة البرمجة المختارة؟
- هل هناك اعتبارات أمنية في التطبيق أو حاجة لإدخال بيانات حساسة؟
- هل تتطلب ذاكرة تخزين كبيرة؟
بعد التفكير بهذه الأسئلة يمكن استنباط مجموعة اللغات الأنسب لتطوير المشروع، وبعدها يمكن المفاضلة بينها على أساس مزاياها وفوائدها للعمل.