السلام عليكم،
أستأذنت اﻷستاذ المخضرم كفاح عيسى بكتابة هذه المتابعة لمقالته أفضل توليفة لتقانات تطوير تطبيقات الويب لعام 2010، حيث رغبت بالتوسع في بعض الأمور التي ذكرت فيها وأيضاً التعليق على البعض الآخر.
بداية أوافق تماماً فكرة الابتعاد عن الجافا، بالأحرى الابتعاد عن كافة التعقيدات والاتجاه للأبسط. ميزة الجافا الرئيسية هي الشركات الكبيرة التي تدفع بعجلة تطويرها حالياً، في السابق كانت تمثل الثورة التقنية على السي، أما اليوم مع تخمة لغات البرمجة ووجود عشرات البدائل أصبح من الواجب إعادة الحسابات وتجريب بعض اللغات التي سطع نجمها، خبرتي البرمجية بدأت مع البيزك، الباسكال ثم السي والسي++ والديلفي، بعدها الجافا والبي إتش بي والبايثون. مع هذه المجموعة من اللغات خلصت إلى الآتي:
- لغة البيزك انتهت صلاحيتها بكل بساطة، تعلمتها في الثانوية وفقط.
- لغة الباسكال (بشكل خاص التيربو باسكال) لغة تعليمية رائعة لهذا الغرض، لايوجد فيها تعقيدات البرمجة الغرضية التوجه (الشيئية)، الديلفي هي امتداد للباسكال لدعم البرمجة الغرضية والواجهات الرسومية وكان من المؤلم مشاهدتها وهي تموت ببطىء (بالمناسبة موتها جاء نتيجة سلسلة أزمات مالية حلت بشركة بورلاند وليس بسبب عيب في اللغة)، من اﻹنصاف أن نذكر أن الجافا والسي شارب استمدت العديد من الأفكار منها. بصراحة لغة لايسعني الكلام عنها بأسطر يكفي أن مبتكر التيربو باسكال (أنديرز) وأحد رؤوساء شركة بورلاند التي كانت تقف وراء الديلفي وهو الآن (Lead Architect) للغة السي شارب في مايكروسوفت، المبرمج الآخر حائز على جائزة Turing Award وهي من أكبر الجوائز في عالم البرمجة والكمبيوتر.
- السي لغة رائعة، صعبة عند التعمق بها ولم أجد الفرصة ﻷتابع بها، السي++ تضيف طبقة لابأس بها من التعقيد، أيضاً لاننسى مشكلات مترجم اللغة، فهناك المترجم الخاص بمايكروسوفت ومترجم GCC والاختلافات بينهم لينتهي الأمر باقتراح معايير قياسية لها.
- الجافا لغة ذات إمكانيات ضخمة، أظن أنها ضخامتها وتعقيدها جعل من الصعب مقارنتها مع مرونة باقي اللغات، الشيء الرئيسي الذي يبقيها واقفة على قدميها هو الدعم الكبير لها من IBM وبعض الشركات الآخرى.
- البي إتش بي لغة هوجمت كثيراً ثم أثبتت للجميع أنها لاتقل أهمية عن باقي اللغات الشهيرة، ميزتها الرئيسية التي جعلتني أكمل بها معظم عملي اليومي هي مرونتها العجيبة وقواعدها السلسة البسيطة التي تبدو لمبرمج من لغة متقدمة آخرى على أنها بدائية وهزيلة ولكن بالعكس قوتها تنبع من بساطتها، بالطبع لها سيئاتها وأظن أكبرها دعمها المشتت للترميز العالمي الموحد UTF وأسماء التوابع فيها!! ولكن بالمقابل حسناتها تطغى بشكل كبير على سيئاتها.
- البايثون لغة مازالت صعبة الهضم علي حسب تعبير اﻷخ كفاح، لحد الآن لا أستسيغ فكرة المسافات بتحديد المجالات البرمجية! ربما سأمنحها فرصة ثانية في المستقبل القريب.
لايمكنني الحكم على روبي كوني استخدمتها ﻷسابيع معدودة فقط قبل التركيز بشكل كامل على البي إتش بي، لكنها لغة “شبابية”، حيث تجد معظم الأفكار الجديدة والغريبة تبرمج بها ربما لكونها حديثة وسلسة وتجتذب محبي الماك
أعود للبي إتش بي، فقد أخبرني الأخ خالد الشمعة بأنه هناك توجه كبير لتغيير التوجه القديم في النسخة الجديدة 6 والبدأ ربما بتوجهات جديدة، أيضاً لم أجد للنسخة 5.3 فائدة كبيرة من ناحية دعم البرمجية الغرضية حيث أني أصبحت من المعادين لاستخدامها في كل مكان وزمان وتابع مهما صغر أو كبر! البرمجة الغرضية تضيف طبقة تعقيد كبيرة، لاتستخدمها إلا لحالات خاصة جداً، هذا رأي شخصي نتيجة تجربة طويلة مع البرمجة الغرضية، أيضاً لينوس تورفلاد مبرمج نواة اللينوكس لديه نفس القناعة، على العكس منه يوجد تيار معارض، ويوجد تيار وسط. شخصياً أميل لعدم استخدام البرمجة الغرضية إلا في حالات الضرورة القصوى، أي أميل قليلاً إلى رأي لينوس.
في تتمة حديث الأخ كفاح عن إطار الويب الذي استخدمه، وددت فعلاً أن أجرب إطار الويب يي على الرغم من طرافة اسمه بالنطق خصوصاً باللهجة الشامية حيث يوجد نفس الكلمة بالعامية! وحدثني عنه كثيراً خلال لقاءنا بمسابقة يللا ستارت آب ويك إند. على الطرف الآخر حديثه عن الدروبال أثار مشاعري، نعم لدروبال بعض المساوىء ولكن نصها المصدري من أفضل وأرقى النصوص المصدرية التي قرأتها يوماً، وبالفعل أنصح من يريد أن يتقن لغة البي إتش بي أن يشاهد نصها المصدري، نظام hooks فيها مميز، سلاسة تطويعها لعمل أي شيء كبيرة ولكن تحتاج لبعض الصبر.
بالنسبة لتتمة حديثه عن قواعد البيانات، فأفضل تجربة ماريا فهي نتاج مبرمجي MySQL الأصليين وبالتأكيد لديهم خبرة لاتقدر بثمن. سبب آخر يدعوني لاستخدامها وهو دعم الدروبال 7 لها.
أما نظام التشغيل لدي فهو kubuntu، سهل بسيط ولطيف، لكن عندما تقع في مشكلة تحتاج ربما ليومين لإصلاحها ولكن عند إصلاحها لاتعود أبداً. الطريف في الأمر أن العكس يحدث في الويندوز، يبدأ معك بعد تثبيته بشكل لطيف ثم تتزايد الأخطاء تباعاً لتضطر بعد فترة أن تعيد تثبيته من جديد!
وبيئة التطوير لدي هي المحرر الافتراضي في كوبنتو kate وأحياناً vim، ربما سأجرب Emacs يوماً ما ولم أعد أكترث للمحررات البرمجية المتقدمة IDE مثل النت بينز والإيكلبس.
خلاصة حديثي هو أن توجهي الحالي نحو البساطة قدر المستطاع ﻷن التعقيد يبطيء العمل بدل أن يسرعه بسبب عشرات الميزات التي تحتاج لتفقدها والإضافات والبنى البرمجية المعقدة إلخ إلخ. أيضاً المبرمج لايجب أن يتقيد ببيئة ما أو لغة ما بل يجرب حتى يجد ضالته (ستشعر فوراً بهذا الشعور!).
شكراً كفاح على تحفيزك لي في مقالتك لكتابة هذه التدوينة!