ايه هو ال Nodejs:
ناس كتير من المبرمجين بتسمع في الفتره الاخيره عن nodejs واخد اهتمام من معظم المبرمجين في مجال web development وكمان اعطي تقل كبيييير جدا لل JavaScript هتقولي اييييه ياااعم المبالغه دي ! طب تعالي نفهم ليه قولت كدا.
من المعروف بلغة ال JavaScript هي لغة الClient Side بمعنى انها لغة تعمل بجانب المستخدم وليس في السيرفر ولكن بعد تطوير المهندس Ryan Dahl لل Node الذي يعمل بمحرك جوجلل V8 والعديد من الlibraries الاخرى اصبح الامر اكثر تعقيدا عن الاول و تحول Node في السيرفر كمثل الPHP بمعنى اخر الNode.js اصبح بيئة عمل Functionality حركية و ديناميكية بشكل تام بإمكانك التعامل مع قواعد البيانات وما الى ذلك من خلاله بكل سهوله.
إستخدامات Node.js:
يستخدم ال Nodejs لبرمجة تطبيقات الويب بالتحديد و المواقع بشكل عام يعتمد في عمله على ال events او حدث (حاجه انت عايز تعملها في الموقع ) لذلك اي شي بيتم على السيرفر يقوم بإطلاق non-blocking event
كل كونكشن جديد fires event ومعلومات مرسله من فورم fires event وطلب بيانات من قاعدة البيانات من قبل المستخدم fires event وهكذا
يعني ان الموقع او التطبيق لا يمكن ان يتاخر بتنفيذ مناسبة event حتى لو دخل علي ال website (الموقع) او استخدمه آلاف المستخدمين في نفس الوقت لان بيئة عمل ال Node js برمج ليكون Non-Blocking بذلك الأوامر يتم تنفيذها بالتوازي.
بخلاف الPHP اللي هي لغة block until completion اي ان الاوامر لايتم تنفيذها الا بتنفيذ ما سبق من اوامر وهذا هو الفرق الاكبر مابين PHP & Node.js وهذا هو سبب تميز node وسبب السرعه الرهيبه في تنفيذ الاوامر.
مميزات Node.js:
من مميزات Node.js سرعة الآداة مع المحافظة على الفاعلية فسرعتها في إرسال الرسائل البريدية هي 10 أضعاف سرعة PHP مع عدد أقل من العمليات الغير ناجحة.
من مميزاتها أيضا أنك تستدعي المكتبات التي تعمل عليها في الوقت الذي تريد وهوالأمر الذي يفضي إلى أفضل استغلال للموارد.
سرعة Node.js هي نتيجة لسرعة المحرك الذي تستخدمه الذي يعتبر نواتها وتقوم Node.js بمعالجة النص المصدري سطر كود بسطر كود من خلال خيط واحد على عكس ما يحدث في PHP
مثال:
المعنى أنه لو زار 1000 شخص موقع بيعمل على Node.js فسيتم خدمتهم بالتالي المشكله أنه لو أضطر شخص ما لإنتظار عملية ما مدة دقيقة فيجب على الكل الانتظار حتى تنتهي تلك العملية إلا أنه يكمن تفادي هذا من خلال بنية الجافا سكريبت التي تمكن من استدعاء دالة ما (أو مع صياغتها) عند الانتهاء من عملية ما والمرور للعملية الموالية ككل تمكن Node.js من بناء تطبيقات كبيرة، أحيانا بسهولة، إلا أن بنية الجافا سكريبت الشاذة تجعل الأمر محبط
يجدر بالذكر أن Node.js تعمل على نواة معالج واحدة، كما أن يجب تنشيط الملف بعد برمجته ليتحول إلى Thread (هبقا اتكلم عنه بالتفصيييل بس ادام شويا) مستعد للرد على أي طلب داخل الوب في النهاية يمكن القول أن Node.js ليست تلك الوسيلة بعد التي يمكنها التعامل مع مختلف المتطلبات وهذا من أسباب سرعتها إلا أنه لا يمكن لوم أحد على ذلك ما دامت لم تتجاوز الإصدار 1.0 بعد إلا أنها يمكنها تقديم حلول سحرية للأنشطة التي تتطلب تبادل بيانات بين مختلف الزوار في الوقت الحقيقي (Real-Time).