الدرس الخامس: هل لغة جافا سكريبت هي لغة client-side أم server side؟
في تدوينة اليوم أجيبكم على السؤال المتكرر بكثرة
هل لغة جافا سكريبت تعتبر لغة برمجة من طرف العميل client-side أم من طرف الخادم server side ؟
بداية ما هي لغة جافا سكريبت؟
هي لغة برمجة مفسرة عالية المستوى وهي تعتبر من اللغات القوية والشائعة الاستخدام للويب ، حيث يتيح دمج JavaScript مع HTML للمطورين إنشاء صفحات ويب ديناميكية وتفاعلية.
كي أجيب على هذا السؤال دعني أحكي لك الحكاية من البداية..
في بداية الأمر تمت كتابة JavaScript كي يتم تفسيرها من قبل المتصفح ولهذا السبب تم اعتبار لغة جافا سكريبت كلغة من طرف العميل (المتصفح هو العميل) وهي مدمجة في جميع المتصفحات الرئيسية.
ظهرت لغة JavaScript كلغة برمجة من جانب الخادم تساعد على تطوير صفحات ويب تفاعلية.
كنت تحتاج إلى محرك جافا سكريبت لتشغيل كود جافا سكريبت، حيث كانت المتصفحات تدعم محرك جافا سكريبت فقط، وهذا هو السبب في استخدام جافا سكريبت في البداية على الويب فقط، ولهذا السبب تم اعتبارها مجرد لغة عميل يتم تنفيذها بواسطة المتصفحات.
بعد ذلك تم استخدام JavaScript لتطوير تطبيقات أخرى غير التطبيقات القائمة على المستعرض من جانب العميل وتم توفير محركات جافا سكريبت تعمل مع أنواع أخرى من التطبيقات مثل أطر عمل الويب وقواعد البيانات.
حيث تم إيجاد تقنية جديدة هي إطار العمل Node.JS تعمل على الخادم وتم إيجاد قواعد بيانات MongoDB وهي قواعد بيانات تسمح لكتابة استعلامات في Node.js.
الفكرة التي أدت إلى إيجاد JavaScript من جانب الخادم في شكل تقنية Node.JS هي أنه يمكن حل مشكلة الحظر دون الحاجة إلى سلاسل رسائل من خلال استغلال البنية القائمة على الأحداث لوقت تشغيل JavaScript كما كانت موجودة بالفعل في المتصفح.
وبالتالي اليوم يمكن استخدام جافا سكريبت من طرف الخادم ومن طرف العميل على حد سواء . فقد باتت جافا سكريبت اليوم لغة البرمجة النصية الأساسية للتطبيقات وصفحات الويب. ويمكننا استخدامها لكل من أطر عمل الواجهة الأمامية مثل TezJS و React والخلفية مع إطارات العمل مثل Node.Js و Deno.