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