نود.جي إس

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
Node.js
Node.js logo.svg
معلومات عامة
نوع
نظام التشغيل
النموذج المصدري
المطورون
موقع الويب
nodejs.org[2] (الإنجليزية) عدل القيمة على Wikidata
معلومات تقنية
لغة البرمجة
التوثيق
الإصدار الأول
الإصدار الأخير
المستودع
الرخصة
التسلسل
تأثر بـ

نود.جي إس (بالإنجليزية: نود.جي إس)‏ هو محرك الجافاسكريبت runtime (بالوقت الفعلي)، مفتوح المصدر ومُصمم لكتابة تطبيقات متعددة المنصات (cross-platform)، وكذلك تطبيقات سهلة التوسع كخوادم الويب.[10] تم اختياره بواسطة InfoWorld لجائزة تقنية العام في 2012.[11] يسمح نود.جي إس للمبرمجين بكتابة برمجيات بلغة جافاسكربت تعمل خارج مُتصفح الويب، ويقوم NodeJS بترجمتها إلى لغة تفهمها الآلة من خلال مُحرك جافاسكربت V8 المصمم من طرف جوجل، والمستخدم في متصفح كروم وتستخدمه باقي المتصفحات المبنية على نواة كروميوم، هذا يمكن المبرمجين من برمجة العديد من الأمور باستخدام لغة جافاسكربت وجعلها تعمل خارج المتصفح، كبرمجة الواجهة الخلفية للمواقع (back-end)، برمجة سكربت يعمل على سطر الآوامر، وكذلك برمجة تطبيقات بواجهات رُسومية باستخدام تقنيات مثل آلكترون (Electron).

أُنشئ نود.جي إس على يد ريان دال ابتداءً في عام 2009، وقامت برعاية نموها Joyent، مشغله.[12][13] يتألف نود.جي إس من في 8 التابع لجوجل مع العديد من المكتبات المدمجة. وأخذت بعض مواصفات مشروع CommonJS.[14]

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

أمثلة[عدل]

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

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);

مميزات نود.جي إس[عدل]

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

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

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

المجتمع[عدل]

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

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

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

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

مراجع[عدل]

  1. أ ب ت مذكور في: دليل البرمجيات الحرة. دليل البرمجيات الحرة: node.js. الوصول: 8 أغسطس 2021.
  2. أ ب الوصول: 8 يناير 2017. وصلة مرجع: https://api.github.com/repos/nodejs/node.
  3. ^ "The node Open Source Project on Open Hub: Languages Page"، أهلوه، اطلع عليه بتاريخ 18 أكتوبر 2018. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= (مساعدة)
  4. ^ "node-v0.x-archive on GitHub".
  5. ^ الوصول: 2 سبتمبر 2016.
  6. أ ب "Release 2022-07-26, Version 18.7.0 (Current), @danielleadams"، 26 يوليو 2022، اطلع عليه بتاريخ 29 يوليو 2022. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= و|date= (مساعدة)
  7. ^ الوصول: 7 أكتوبر 2016.
  8. ^ "node/LICENSE at master · nodejs/node · GitHub"، اطلع عليه بتاريخ 27 نوفمبر 2020. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= (مساعدة)
  9. ^ English Wikipedia community، "ويكيبيديا الإنجليزية" (باللغة الإنجليزية).
  10. ^ Wait, What's Node.js Good for Again?, By Klint Finley, January 25, 2011, ReadWriteHack نسخة محفوظة 14 أكتوبر 2012 على موقع واي باك مشين.[وصلة مكسورة]
  11. ^ "Node.js Selected by InfoWorld for 2012 Technology of the Year Award"، MarketWatch، 11 يناير 2012، مؤرشف من الأصل في 05 مارس 2012، اطلع عليه بتاريخ 26 يناير 2012.
  12. ^ Why Everyone Is Talking About Node, By Jolie O'Dell, March 10, 2011, Mashable نسخة محفوظة 02 أغسطس 2017 على موقع واي باك مشين.
  13. ^ Alex Handy (24 يونيو 2011)، "Node.js pushes JavaScript to the server-side"، SDTimes، مؤرشف من الأصل في 1 يونيو 2013، اطلع عليه بتاريخ 04 سبتمبر 2011.
  14. ^ Implementations/node.js - CommonJS Spec Wiki نسخة محفوظة 30 أغسطس 2017 على موقع واي باك مشين.
  15. ^ Cade Metz (1st March 2011)، "The Node Ahead: JavaScript leaps from browser into future"، The Register، مؤرشف من الأصل في 6 نوفمبر 2018. {{استشهاد بخبر}}: تحقق من التاريخ في: |تاريخ= (مساعدة)، غير مسموح بالترميز المائل أو الغامق في: |ناشر= (مساعدة)
  16. ^ NodeConf Schedule Announced, By Klint Finley, April 7, 2011, ReadWriteHack نسخة محفوظة 17 سبتمبر 2012 على موقع واي باك مشين.[وصلة مكسورة]

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