نود.جي إس

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
نود.جي إس
صورة معبرة عن نود.جي إس

المطور الأصلي ريان دال
المطورون مطورو Node.js
الإصدار المستقر 6.2.0
حالة التطوير نشط
لغة البرمجة سي، سي++، جافاسكربت
نظام التشغيل ماك أو إس إكس، لينكس, سولاريس, فري بي إس دي, أوبن بي إس دي, ويندوز ويب أو إس
نوع نظام برامج
الرخصة رخصة إم إي تي
موقع الويب nodejs.org

Node.js هو نظام برامج مصمم لكتابة تطبيقات إنترنت قابلة للتوسع كخوادم الويب.[1] تم اختياره بواسطة InfoWorld لجائزة تقنية العام في 2012.[2]

أنشئت Node.js على يد ريان دال ابتداءً في عام 2009، وقامت برعاية نموها Joyent، مشغله.[3][4] يتألف Node.js من في 8 التابع لجوجل مع العديد من المكتبات المدمجة. وأخذت بعض مواصفات مشروع CommonJS.[5]

تكتب برامج node.js بلغة الجافاسكربت، باستخدام نمط حدثّي التوجه، إدخال وإخراج غير متزامنين للحد من النفقات وتحقيق أكبر قدر من قابلية التوسع.[6] وعلى عكس أغلب برامج الجافاسكريبت فهي لا تشتغل على متصفح الويب، ولكن عوضا عن ذلك فيتم تشغيلها من طرف الخادم.

أمثلة[عدل]

تطبيق كامل لبرنامج "أهلا بالعالم" كخادم ويب:

var http = require('http');

http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);

console.log('Server running at http://localhost:8000/');

خادم ميفاق ضبط الإرسال ينصت لبورت 7000 ويرد بـ'hello' عند الاتصال:

var net = require('net');

net.createServer(function (stream) {
    stream.write('hello\r\n');

    stream.on('end', function () {
        stream.end('goodbye\r\n');
    });

    stream.pipe(stream);
}).listen(7000);

مميزات Node.js[عدل]

من مميزات Node.js سرعة الآداة مع المحافظة على الفاعلية، فسرعتها في إرسال الرسائل البريدية هي 10 أضعاف سرعة بي إتش بي، مع عدد أقل من العمليات الغير ناجحة، من مميزاتها أيضا أنك تستدعي المكتبات التي تعمل عليها في الوقت الذي تريد، الأمر الذي يفضي إلى أفضل استغلال للموارد.

سرعة Node.js هي نتيجة لسرعة المحرك الذي تستخدمه الذي يعتبر نواتها، تقوم Node.js بمعالجة النص المصدري سطرا سطرا، من خلال خيط واحد على عكس ما يحدث في PHP مثلا، المعنى أنه لو زار 1000 شخص موقعا يعمل على Node.js فسيتم خدمتهم بالتتالي، المشكل أنه لو أضطر شخص ما لإنتظار عملية ما مدة دقيقة فيجب على الكل الانتظار حتى تنتهي تلك العملية، إلا أنه يكمن تفادي هذا من خلال بنية الجافاسكرب التي تمكن من استدعاء دالة ما (أو مع صياغتها) عند الانتهاء من عملية ما والمرور للعملية الموالية، ككل تمكن Node.js من بناء تطبيقات كبيرة، أحيانا بسهولة، إلا أن بنية الجافاسكريبت الشاذة تجعل الأمر محبط، يجدر بالذكر أن Node.js تعمل على نواة معالج واحدة، كما أن يجب تنشيط الملف بعد برمجته ليتحول إلى Thread مستعد للرد على أي طلب داخل الوب، في النهاية يمكن القول أن Node.js ليست تلك الوسيلة بعد التي يمكنها التعامل مع مختلف المتطلبات -و هذا من أسباب سرعتها- إلا أنه لا يمكن لوم أحد على ذلك ما دامت لم تتجاوز الإصدار 1.0 بعد، إلا أنها يمكنها تقديم حلول سحرية للأنشطة التي تتطلب تبادل بيانات بين مختلف الزوار في الوقت الحقيقي (Real-Time).

ريان دال
ريان دال

مجتمع[عدل]

Node.js لديه مجتمع مطورين متمركزين بقائمتين بريديتين،، nodejs و nodejs-dev, وقناة آي آر سي #node.js على فرينود. يجتمع المجتمع في NodeConf، مؤتمر مطورين سنوي يركز على Node.js.[7]

لغات أخرى[عدل]

تمت كتابت بيئات مشابهة في لغات برمجة أخرى تشمل:

انظر أيضا[عدل]

مراجع[عدل]

  1. ^ Wait, What's Node.js Good for Again?, By Klint Finley, January 25, 2011, ReadWriteHack
  2. ^ "Node.js Selected by InfoWorld for 2012 Technology of the Year Award". MarketWatch. January 11, 2012. اطلع عليه بتاريخ January 26, 2012. 
  3. ^ Why Everyone Is Talking About Node, By Jolie O'Dell, March 10, 2011, Mashable
  4. ^ Alex Handy (2011-06-24). "Node.js pushes JavaScript to the server-side". SDTimes. اطلع عليه بتاريخ 2011-09-04. 
  5. ^ Implementations/node.js - CommonJS Spec Wiki
  6. ^ Cade Metz (1st March 2011). "The Node Ahead: JavaScript leaps from browser into future". The Register. 
  7. ^ NodeConf Schedule Announced, By Klint Finley, April 7, 2011, ReadWriteHack

وصلات خارجية[عدل]