السلام عليكم و رحمة الله
كان من المفترض أن يكون هذا الموضوع تكلمة للمفاضلة بين لغات البرمجة و لكنى عن طريق الخطأ جعلته موضوعاً قائماً بذاته ، لذا سأكمل كل المناقشات التى تخص المفاضلة بين لغات البرمجة فى الموضوع الأول لا هنا...و هذا للتنبيه. .
أكمل اليوم شرح عناصر المفاضلة بين لغات البرمجة من وجهة نظرى، و عنصر اليوم هو عنصر الأمن...
***************************
الأمن:
و ليس المقصود بالأمن هنا الحماية ضد البرمجيات الضارة باختلاف أنواعها من
فيروسات و برمجيات تجسس و أحصنة طروادة، بل المقصود به وجود رقابة من مصمم
اللغة على المكونات التى تضم للغة بحيث يضمن كونها غير قابلة لأن تكون
مصدراً للأخطاء أو القلاقل فى البرامج التى تستخدم فيها، و كذا ضم المكونات
التى تساعد المبرمج على التغلب على الأخطاء التى تظهر أثناء عمل البرنامج
مثل معالجة الاستثناءات.
أى أن الناحية الأمنية فى اللغة تتكون على الأقل من عنصرى تلافى المكونات
السيئة و ضم المكونات المفيدة، و على هذا فيمكننا أن نرى أن عنصر الأمن يصب
فى ناحية عنصر البساطة و الاستقرار، حيث يضع معايير تحد من الأعداد التى
يتم قبول ضمها إلى اللغة من المكونات البرمجية فيحافظ على كون اللغة فى
الحد الأقصى المقبول لها من الحجم النحوى على الأقل، كما يضمن أن القواعد
التى ضمت إليها هى بالفعل أجدر القواعد بالضم.
و يمكننا أن نضع الأمن اللغوى بتوسع و شمول فى ثلاث عناصر هى:
1. وجود مكونات تسهل العمليات كثيرة الاستخدام و التى قد يخطئ فيها
المستخدم إذا ما كانت تتطلب كثيراً من الجهد نظراً لكثرة تكرارها، و
بالتالى فإن تسهيل العملية على المبرمج بتوفير المكونات الجاهزة فى لغة
البرمجة التى تقوم بالعملية كاملة بالنيابة عنه لا يخدم فقط الناحية
الإنتاجية فى العملية البرمجية بل يخدم بشكل أساسى عملية تفادى الأخطاء
البرمجية.
2. استبعاد المكونات أو التعبيرات البرمجية التى تسبب البلبة و الارتباك و
من ثم الأخطاء البرمجية بكل أنواعها من أخطاء نحوية و أخطاء زمن تشغيل و
أغلاط منطقية، و مهما جادل المجادلون فى فائدة مثل تلك المكونات أو
التعبيرات فيجب أن يوقنوا أنه يمكن الاستغناء عنها، لأنها نتاج فكر بشرى
وجدها حلاً لما واجهه من مشاكل و ليست تنزيلاً من السماء يجب قبوله كما هو،
و يمكن بالقليل من التفكير أو حتى بالكثير منه إبتكار مكونات أو أساليب
جديدة تغنى عن تلك المكونات و التعبيرات المربكة.
3. وجود المكونات التى مهمتها الأساسية معالجة الأخطاء الناتجة مثل معالجات
الاستثناءات فى الـ(java) و الـ(C#) و كثير من اللغات الأخرى، و هذه
المكونات تجعل عملية البرمجة متعة حقيقية لأنها تقرب الأمر من التفكير
العالى للبشر إلى أقصى الحدود، فبدلاً من البحث اليدوى عن كل الاستثناءات
المتوقع حدوثها و كتابة الأحداث اللازمة لمعالجتها أصبح لدينا تلك الصياغة
التى يمكننا بها ببساطة تحديد الإجراء المناسب لكل نوع من أنواع
الاستثناءات.