محرك جافا سكريبت V8
V8 هو اسم محرك جافا سكريبت الذي يُشغّل متصفح جوجل كروم. وهو ما يأخذ كود جافا سكريبت الخاص بنا وينفذه أثناء تصفح الإنترنت باستخدام كروم.
V8 هو محرك جافا سكريبت، أي أنه يقوم بتحليل وتنفيذ كود جافا سكريبت. أما واجهة برمجة التطبيقات DOM وواجهات برمجة التطبيقات الأخرى لمنصة الويب (التي تُشكل معًا بيئة التشغيل) فتُقدّمها المتصفح.
والأمر المثير للاهتمام هو أن محرك جافا سكريبت مستقل عن المتصفح الذي يستضيفه. وقد مكّنت هذه الميزة الرئيسية من ظهور Node.js. تم اختيار V8 ليكون المحرك الذي يُشغّل Node.js في عام 2009، ومع تزايد شعبية Node.js، أصبح V8 المحرك الذي يُشغّل الآن كمية هائلة من كود الخادم المكتوب بلغة جافا سكريبت.
نظام Node.js ضخم، وذلك بفضل V8 الذي يُشغّل أيضًا تطبيقات سطح المكتب، من خلال مشاريع مثل Electron.
محركات جافا سكريبت الأخرى
تحتوي المتصفحات الأخرى على محرك جافا سكريبت خاص بها:
SpiderMonkey
(فايرفوكس)JavaScriptCore
(يُسمى أيضًاNitro
) (سفاري)- كان Edge في الأصل يعتمد على
Chakra
، لكنه أعيد بناؤه مؤخرًا باستخدام Chromium ومحرك V8.
ويل العديد من المحركات الأخرى أيضًا.
جميع هذه المحركات تُنفذ معيار ECMA ES-262, الذي يُسمى أيضًا ECMAScript، وهو المعيار الذي تستخدمه جافا سكريبت.
السعي لتحقيق الأداء
V8 مكتوب بلغة C++، وهو قيد التحسين المستمر. وهو محمول ويعمل على أنظمة Mac و Windows و Linux والعديد من الأنظمة الأخرى.
في هذا التقديم لـ V8، سنتجاهل تفاصيل تنفيذ V8: يمكن العثور عليها على مواقع أكثر موثوقية (مثل الموقع الرسمي لـ V8)، وهي تتغير بمرور الوقت، وغالباً بشكل جذري.
V8 يتطور باستمرار، تمامًا مثل محركات جافا سكريبت الأخرى، لتسريع الويب ونظام Node.js البيئي.
على الويب، هناك سباق لتحقيق الأداء مستمر منذ سنوات، ونحن (كمستخدمين ومطوّرين) نستفيد كثيرًا من هذه المنافسة لأننا نحصل على آلات أسرع وأكثر تحسينًا عامًا بعد عام.
الترجمة
يُعتَبر جافاسكريبت بشكل عام لغة مُفسَّرة، لكن محركات جافاسكريبت الحديثة لم تعد تُفسِّر جافاسكريبت فقط، بل تُرجمها.
حدث هذا منذ عام 2009، عندما أُضيف مُجمِّع جافاسكريبت SpiderMonkey إلى Firefox 3.5، واتبع الجميع هذه الفكرة.
يتم ترجمة جافاسكريبت داخليًا بواسطة V8 باستخدام الترجمة في الوقت المناسب (JIT) لتسريع التنفيذ.
قد يبدو هذا غير بديهي، ولكن منذ إطلاق Google Maps في عام 2004، تطوّر جافاسكريبت من لغة كانت تُنفِّذ عمومًا بضع عشرات من أسطر التعليمات البرمجية إلى تطبيقات كاملة تتضمن آلافًا إلى مئات الآلاف من الأسطر التي تعمل في المتصفح.
يمكن لتطبيقاتنا الآن أن تعمل لساعات داخل متصفح، بدلاً من أن تكون مجرد بعض قواعد التحقق من صحة النماذج أو البرامج النصية البسيطة.
في هذا العالم الجديد، يصبح ترجمة جافاسكريبت منطقية تمامًا لأنه بينما قد يستغرق الأمر بعض الوقت الإضافي لإعداد جافاسكريبت، فبمجرد الانتهاء منه، سيكون أداءه أفضل بكثير من التعليمات البرمجية المُفسَّرة فقط.