نود.جي إس

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

المطور الأصلي ريان دال
المطورون مطورو Node.js
الإصدار الأول
الإصدار المستقر 0.6.11 / 2012-02-17؛ منذ 1158 يومًا
إصدار تجريبي 0.7.5 / 2012-02-23؛ منذ 1152 يومًا
لغة البرمجة سي++، جافاسكربت
نظام تشغيل ماك أو إس إكس، لينكس, سولاريس, فري بي ‌إس ‌دي, أوبن بي إس دي, ويندوز ويب أو إس
المنصة أو إس عشرة، ‏جنو/لينكس، ‏سولاريس، ‏فري بي ‌إس ‌دي، ‏أوبن بي إس دي، ‏ويب أو إس، ‏مايكروسوفت ويندوز
الرخصة رخصة إم إي تي
موقع الويب nodejs.org

Node.js هو نظام برامج مصمم لكتابة تطبيقات إنترنت قابلة للتوسع، لاسيما خوادم الويب.[1] تكتب البرامج بالجافاسكربت، باستخدام نمط حدثّي التوجه، إدخال وإخراج غير متزامنين للحد من النفقات وتحقيق أكبر قدر من قابلية التوسع.[2] يتألف Node.js من V8 (محرك جافا سكربت) التابع لجوجل مع العديد من المكتبات المدمجة. أنشئت Node.js على يد ريان دال ابتداءً في عام 2009، وقامت برعاية نموها Joyent، مشغله.[3][4]

بيئات مشابهة كتبت في لغات برمجة أخرى تشمل توستيد لبايثون، بيئة بيرل الكائنية لبيرل، libevent للسي وEventMachine لروبي. بخلاف معظم برامج جافاسكربت، لا يتم تشغيلها في متصفح الويכب، ولكن عوضا عن ذلك هي برامج جافا سكربت بطرف الخادم. وتنقذ Node.js بعض مواصفات CommonJS [5]‎.

تم اختيار Node.js بواسطة InfoWorld لجائزة تقنية العام في 2012.[6]

أمثلة[عدل]

تطبيق كامل لأهلا بالعالم كخادم HTTP في Node.js:

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 سرعة الآداة بالتوازي مع الفاعلية، فسرعتها مثلا في إرسال رسائل بريد تضاعف PHP حوالي 10 مرات، مع عدد أقل من العمليات الغير ناجحة، من مميزاتها أيضا أنك تستدعي المكتبات التي تعمل عليها في الوقت الذي تريد، الأمر الذي يفضي إلى أفضل استغلال للموارد، سرعة Node.js نتيجة لسرعة المحرك V8 الخاص بكروم، وهو نفس الجزء المسؤول عن معالجة الجافاسكريبت داخل كروم، الذي أصبح حاليا نواة Node.js، تقوم Node.js بمعالجة النص المصدري سطرا سطرا، من خلال Thread واحد عكس PHP وغيره، المعنى أنه لو زار 1000 شخص موقعا يعمل على Node.js فسيتم خدمتهم بالتتالي، المشكل أنه لو أضطر شخص ما لإنتظار عملية ما مدة دقيقة فيجب على الكل الانتظار حتى تنتهي تلك العملية، إلا أنه يكمن تفادي هذا من خلال بنية Javascript التي تمكن من استدعاء دالة ما (أو مع صياغتها) عند الانتهاء من عملية ما والمرور للعملية الموالية، ككل تمكن Node.js من بناء تطبيقات كبيرة، أحيانا بسهولة، إلا أن بنية Javascript الشاذة قليلا تجعل الأمر محبط، يجدر الذكر أن 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. ^ Cade Metz (1st March 2011). "The Node Ahead: JavaScript leaps from browser into future". The Register. 
  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. ^ "Node.js Selected by InfoWorld for 2012 Technology of the Year Award". MarketWatch. January 11, 2012. اطلع عليه بتاريخ January 26, 2012. 
  7. ^ NodeConf Schedule Announced, By Klint Finley, April 7, 2011, ReadWriteHack

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