بالنسبة لدولتي فإن أكثر المواقع الألكترونية الخاصة بالوزارات تستخدم ASP.NET اكثر من PHP ....
الان أتسأل ما السبب ؟ وهل كل الحكومات تتبع نفس النهج ؟؟
معذرة لكل مطوري ASP.NET وPHP... مواقع الحكومات دومًا تكون متخلفة وضعيفة من ناحية تصميم وبنية الخادم (backend)، وكذلك من ناحية الواجهة (frontend)، واللغات المستخدمة لبناء هذه المواقع تحقق هذا التخلف بامتياز!
لن تجد مبرمجين جيدين يبنون مواقع لخدمات حكومية (إلا من رحم ربي)، وعندما تجد، فإنهم غالبًا يكونون مقيدين بقيود تفرضها طبيعة الاستضافة والبنية التحتية والكلفة المادية التي توفرها الجهة المسؤولة لهم، والنتيجة دومًا مواقع كمواقع التسعينيات وأداء بطيء ومنظر مؤذ للعين!
لو كان الأمر لي، لبنيت كل المواقع الحكومية التي تستخدم قواعد بيانات وخادمًا بـ Node.js وExpress وMongoDB، لكن أعرف أن هذه الأفكار تبدو مثالية جدًا!
"مواقع الحكومات دومًا تكون متخلفة وضعيفة من ناحية تصميم وبنية الخادم (backend)، وكذلك من ناحية الواجهة (frontend).. لن تجد مبرمجين جيدين يبنون مواقع لخدمات حكومية (إلا من رحم ربي)، وعندما تجد، فإنهم غالبًا يكونون مقيدين بقيود تفرضها طبيعة الاستضافة والبنية التحتية والكلفة المادية التي توفرها الجهة المسؤولة لهم، والنتيجة دومًا مواقع كمواقع التسعينيات وأداء بطيء ومنظر مؤذ للعين"
كلام سليم معظمهم لم يتزحزحوا منذ التسعينات.
نقطة القوة في Node.js قدرتها على التوسع بشكل ممتاز (scalability) واتباع نمط غير مُعيق في الدخل والخرج (Non-blocking I/O) الأمر الذي يجعلها قادرة على تلقي ملايين الطلبات نظريًا على الرغم من كونها أحادية الخيط (single-threaded) وهو الأمر الذي يُعفي الخادم من إنشاء عدة خيوط تستهلك حجمًا أكبر من الذاكرة. نقطة ضعف Node.js أنها لا تستطيع تحمل طلبات تتطلب عمليات حسابية كبيرة وتلبيتها في وقت معقول كاللغات الأخرى، لأن العمليات الحسابية تُعيق المعالج (CPU-blocking) وNode.js أحادية الخيط كما ذكرنا. باختصار عند الحاجة لخادم يتلقى طلبات كثيرة في وقت واحد، ولا تتطلب الكثير من العمليات الحسابية التي قد تعيق المعالج، فإن Node.js خيار ممتاز، خصوصًا إذا كانت قاعدة البيانات تتبع نفس الفلسفة (Non-blocking, asynchronous) وهو ما تلبيه MongoDB. أضف إلى ذلك أن التعامل مع لغة واحدة على كل من الخادم والواجهة يُسهل العمل ويتيح بتعديلات بسيطة نقل أجزاء من الخدمة من الخادم للواجهة والعكس، وكذلك تتعامل JavaScript مع نقل البيانات بشكل طبيعي بصيغة JSON دون الحاجة للتحويلات الزائدة كما في لغات أخرى. أما Express فهو ببساطة الخادم الأكثر شهرة على Node.js، وهو يتبنى فكرة الوسائط (middleware) التي تجعل تطوير الخادم في غاية السهولة.
التعليقات