تاريخ جافا سكريبت

0 الأسهم
0
0
0
0

مقدمة

جافا سكريبت لغة برمجة تُعدّ إحدى اللغات الرئيسية الثلاث المستخدمة في تطوير مواقع الويب، إلى جانب HTML وCSS. بينما تُضفي HTML وCSS بنيةً وأسلوبًا لموقع الويب، تُتيح لك جافا سكريبت إضافة وظائف وسلوكيات إلى موقعك، مما يُتيح للزوار التفاعل معه بطرق إبداعية مُتنوعة.

المتصفح الأول

أُطلق متصفح Mosaic، أول متصفح ويب شائع بواجهة مستخدم رسومية، عام ١٩٩٣. كان هذا المتصفح متاحًا لغير المتخصصين، ولعب دورًا بارزًا في النمو السريع لشبكة الويب العالمية في بداياتها. ثم أسس المطورون الأصليون لموزايك شركة Netscape، التي أصدرت متصفحًا أكثر تطورًا يُدعى Netscape Navigator عام ١٩٩٤. وسرعان ما أصبح هذا المتصفح الأكثر استخدامًا.

خلال تلك السنوات التكوينية للويب، كانت صفحات الويب ثابتة فقط، تفتقر إلى القدرة على التفاعل ديناميكيًا بمجرد تحميل الصفحة في المتصفح. في ظل ازدهار مجال تطوير الويب، برزت رغبة في إزالة هذا القيد، لذا قررت شركة نتسكيب عام ١٩٩٥ إضافة لغة برمجة إلى متصفحها نافيجيتور. ولتحقيق هذا الهدف، اتبعت الشركة مسارين: الشراكة مع صن مايكروسيستمز لتضمين لغة برمجة جافا، والاستعانة بريندان آيش لتضمين لغة سكيم.

سرعان ما قررت إدارة نتسكيب أن الخيار الأمثل لإيخ هو ابتكار لغة جديدة، ببنية نحوية مشابهة لجافا وأقل تشابهًا مع سكيم أو غيرها من لغات البرمجة الحالية. على الرغم من أن اللغة الجديدة ومترجمها كانا يُطلق عليهما في البداية اسم لايف سكريبت كجزء من إصدار تجريبي في سبتمبر 1995، إلا أنه تم تغيير الاسم إلى جافا سكريبت في الإصدار الرسمي في ديسمبر.

أثار اختيار اسم جافا سكريبت لبسًا، إذ يوحي بأنه مرتبط ارتباطًا مباشرًا بجافا. في ذلك الوقت، كانت طفرة الإنترنت قد بدأت، وكانت جافا لغة جديدة شائعة، لذا اعتبرتُ اسم جافا سكريبت حيلة تسويقية من نتسكيب. لكن هدف التصميم الأصلي كان في الواقع "لغة عامة" منفصلة تمامًا، أو "لمساعدة غير المبرمجين على إنشاء مواقع ويب ديناميكية وتفاعلية". بالطبع، لم يعد هذا هو الحال مع ظهور بيئات تشغيل جافا سكريبت مستقلة، مثل أداة تطوير الويب LiveWire Pro من نتسكيب، وAjax، وServerJS، وasm.js، وnode.js.

تمت الموافقة عليه من قبل مايكروسوفت

طرحت مايكروسوفت متصفح إنترنت إكسبلورر عام ١٩٩٥، مما أدى إلى حرب متصفحات مع نتسكيب. أما على صعيد جافا سكريبت، فقد أجرت مايكروسوفت هندسة عكسية لمترجم نافيجيتور لإنشاء مترجمها الخاص المسمى JScript.

أُطلقت جافا سكريبت لأول مرة عام ١٩٩٦، مع دعمها الأولي لإضافات CSS وHTML. اختلف كلٌّ من هذه التطبيقات اختلافًا كبيرًا عن نظيراتها في متصفح Navigator. صعّبت هذه الاختلافات على المطورين جعل مواقعهم الإلكترونية تعمل بكفاءة في كلا المتصفحين، مما أدى إلى انتشار استخدام شعاري "الأفضل عرضًا في Netscape" و"الأفضل عرضًا في Internet Explorer" لعدة سنوات.

ظهور JScript

في نوفمبر 1996، قدّمت شركة Netscape لغة JavaScript إلى Ecma International كنقطة انطلاق لمواصفات قياسية يُمكن لجميع مُصنّعي المتصفحات الالتزام بها. وقد أدى ذلك إلى النشر الرسمي لأول مواصفات لغة ECMAScript في يونيو 1997.

استمرت عملية وضع المعايير لعدة سنوات، مع إصدار ECMAScript 2 في يونيو 1998 وECMAScript 3 في ديسمبر 1999. وبدأ العمل على ECMAScript 4 في عام 2000.

في غضون ذلك، تزايدت سيطرة مايكروسوفت على سوق المتصفحات. وبحلول أوائل العقد الأول من القرن الحادي والعشرين، بلغت حصة إنترنت إكسبلورر في السوق 95%. هذا يعني أن JScript أصبح المعيار الفعلي للبرمجة النصية من جانب العميل على الويب.

شاركت مايكروسوفت في البداية في عملية وضع المعايير وطبقت بعض المقترحات بلغة JScript الخاصة بها، لكنها توقفت في النهاية عن المشاركة في عمل Ecma. وبالتالي، تم إيقاف ECMAScript 4.

النمو والتوحيد القياسي

خلال فترة هيمنة إنترنت إكسبلورر في أوائل الألفية الثانية، ركد تطوير واجهات المستخدم الأمامية. بدأ هذا التغيير عام ٢٠٠٤، عندما أصدرت شركة موزيلا، خليفة نتسكيب، متصفح فايرفوكس. لاقى فايرفوكس استحسانًا كبيرًا من الكثيرين، واستحوذ على حصة سوقية كبيرة من إنترنت إكسبلورر.

في عام ٢٠٠٥، انضمت موزيلا إلى منظمة ECMA الدولية، وبدأ العمل على معيار ECMAScript لـ XML (E4X). دفع ذلك موزيلا إلى التعاون مع ماكروميديا (التي استحوذت عليها أدوبي سيستمز لاحقًا) لتطبيق E4X في لغة ActionScript 3 الخاصة بها، والتي كانت مبنية على مسودة ECMAScript 4. كان الهدف هو توحيد ActionScript 3 ليكون ECMAScript 4 الجديد. ولتحقيق ذلك، أصدرت أدوبي سيستمز تطبيق Tamarin كمشروع مفتوح المصدر. ومع ذلك، كان Tamarin وActionScript 3 مختلفين تمامًا عن البرمجة النصية القياسية من جانب العميل، وبدون تعاون مايكروسوفت، لم يُكتب لـ ECMAScript 4 أن يُبصر النور.

في غضون ذلك، شهد مجتمع المصادر المفتوحة تطورات بالغة الأهمية، غير مرتبطة بعمل ECMA. في عام 2005، نشر جيسي جيمس غاريت ورقةً بيضاء صاغ فيها مصطلح Ajax، ووصف مجموعةً من التقنيات، تعتمد على JavaScript كعمود فقري، لإنشاء تطبيقات ويب يُمكن تحميل البيانات فيها في الخلفية دون الحاجة إلى إعادة تحميل الصفحة بالكامل. وقد أشعل هذا نهضة JavaScript، بقيادة مكتبات المصادر المفتوحة والمجتمعات التي نشأت حولها. وتم إنشاء العديد من المكتبات الجديدة، بما في ذلك jQuery وPrototype وDojo Toolkit وMooTools.

طرحت جوجل متصفح كروم عام ٢٠٠٨ بمحرك جافا سكريبت V8، الذي كان أسرع من منافسيه. وكان الابتكار الرئيسي هو التجميع الفوري (JIT)، ما دفع مطوري المتصفحات الآخرين إلى إعادة بناء محركاتهم لتتوافق مع JIT.

في يوليو 2008، اجتمعت هذه الأطراف المتفرقة في مؤتمر بأوسلو. أدى ذلك إلى اتفاق نهائي في أوائل عام 2009 لدمج جميع الأعمال ذات الصلة والمضي قدمًا في تطوير اللغة. وكانت النتيجة معيار ECMAScript 5، الذي نُشر في ديسمبر 2009.

بلوغ سن البلوغ

استمر العمل الطموح على اللغة لعدة سنوات، وبلغ ذروته مع إصدار ECMAScript 6 في عام 2015، مع مجموعة كبيرة من الإضافات والإصلاحات الرسمية.

أدى إنشاء نود.جي إس (Node.js) عام ٢٠٠٩ على يد رايان دال إلى زيادة ملحوظة في استخدام جافا سكريبت خارج متصفحات الويب. يجمع نود بين محرك V8، وحلقة أحداث، وواجهات برمجة تطبيقات الإدخال/الإخراج، مما أدى إلى نظام تشغيل جافا سكريبت متكامل. واعتبارًا من عام ٢٠١٨، استخدم ملايين المطورين نود، واحتوت حزمة npm على أكبر عدد من الوحدات مقارنةً بأي حزمة مُدارة أخرى في العالم.

تُدار مسودة مواصفات ECMAScript الآن بشكل مفتوح على GitHub، وتُصدر الإصدارات من خلال لقطات سنوية منتظمة. تُراجع التعديلات المحتملة على اللغة من خلال عملية اقتراح شاملة. والآن، بدلاً من أرقام الإصدارات، يُراجع المطورون حالة الميزات القادمة بشكل فردي.

يضم نظام جافا سكريبت الحالي العديد من المكتبات وأطر العمل، وممارسات برمجة راسخة، واستخدامًا واسعًا لجافا سكريبت خارج نطاق متصفحات الويب. بالإضافة إلى ذلك، مع ازدياد استخدام تطبيقات الصفحة الواحدة ومواقع الويب الأخرى التي تعتمد بشكل كبير على جافا سكريبت، طُوّرت العديد من برامج التحويل للمساعدة في عملية التطوير.

العلامة التجارية

“"جافا سكريبت" علامة تجارية لشركة أوراكل في الولايات المتحدة. صدرت هذه العلامة التجارية في الأصل لشركة صن مايكروسيستمز في 6 مايو 1997، ثم انتقلت إلى أوراكل عند استحواذها على صن عام 2009.

استخدام جانب مستخدم الموقع

JavaScript هي لغة البرمجة النصية السائدة من جانب العميل على الويب، وتستخدمها 98% من جميع مواقع الويب (منتصف عام 2022). تُدمج النصوص البرمجية في مستندات HTML أو تُستخدم داخلها، وتتفاعل مع DOM.

تحتوي جميع متصفحات الويب الرئيسية على محرك JavaScript مدمج يقوم بتنفيذ التعليمات البرمجية على جهاز المستخدم.

أمثلة على السلوك النصي
  • تحميل محتوى جديد على صفحة ويب دون الحاجة إلى إعادة تحميلها، عبر Ajax أو WebSocket. على سبيل المثال، يمكن لمستخدمي مواقع التواصل الاجتماعي إرسال واستقبال الرسائل دون مغادرة الصفحة الحالية.
  • رسوم متحركة لصفحات الويب، مثل ظهور الكائنات واختفاءها، وتغيير حجمها، وتحريكها.
  • العب ألعاب المتصفح.
  • التحكم في تشغيل الوسائط المتدفقة.
  • إنشاء إعلانات منبثقة أو مربعات تنبيه.
  • التحقق من صحة قيم الإدخال لنموذج الويب قبل إرسال البيانات إلى خادم الويب.
  • تسجيل معلومات حول سلوك المستخدم وإرسالها إلى الخادم. يمكن لمالك الموقع الإلكتروني استخدام هذه البيانات للتحليلات، وتتبُّع الإعلانات، والتخصيص.
  • إعادة توجيه المستخدم إلى صفحة أخرى.
  • تخزين واسترجاع البيانات على جهاز المستخدم، عبر معايير التخزين أو IndexedDB.

مكتبات الويب والأطر

بحلول عام 2012، استخدم أكثر من 80% من مواقع الويب مكتبة JavaScript أو إطار عمل ويب تابع لجهة خارجية لكتابة البرامج النصية على جانب العميل.

رد فعل

React (المعروفة أيضًا باسم React.js أو ReactJS) هي مكتبة جافا سكريبت أمامية مجانية ومفتوحة المصدر[41][42] لبناء واجهات مستخدم قائمة على المكونات. تُدار هذه المكتبة بواسطة Meta (المعروفة سابقًا باسم Facebook) ومجتمع من المطورين والشركات.

يمكن استخدام React لتطوير تطبيقات صفحة واحدة، أو تطبيقات جوال، أو تطبيقات مُعرَّفة عبر الخادم باستخدام أطر عمل مثل Next.js. ولأن React يُعنى فقط بواجهة المستخدم ومكونات العرض في DOM، فإن تطبيقات React غالبًا ما تعتمد على المكتبات للتوجيه ووظائف أخرى من جهة العميل. ومن أهم مزايا React أنه يُعيد عرض أجزاء الصفحة التي تغيّرت فقط، مُجنِّبًا العرض غير الضروري لعناصر DOM غير المتغيّرة.

زاوية

Angular (يُشار إليه أيضًا باسم "Angular 2+")[48] هو إطار عمل مجاني ومفتوح المصدر لتطبيقات الويب، قائم على TypeScript، بصفحة واحدة، بقيادة فريق Angular في Google ومجتمع من الأفراد والشركات. Angular هو إعادة كتابة كاملة من قِبل نفس الفريق الذي ابتكر AngularJS.

جيكويري

في عام ٢٠١٢، كانت jQuery مكتبة الواجهة الأمامية الأكثر شيوعًا، حيث استخدمتها أكثر من ٧٥٪ من مواقع الويب. ورغم أنها لا تزال مستخدمة على نطاق واسع، إلا أن مكتبات وأطر عمل أحدث تجاوزت شعبيتها.

فانيليا JS

أسماء أطر العمل مثل "Vanilla JS" هي مجرد اسم آخر لجافا سكريبت التقليدية. صُممت هذه الأطر خصيصًا لمواقع الويب التي لا تستخدم أي مكتبات أو أطر عمل على الإطلاق، بل تعتمد كليًا على وظائف جافا سكريبت القياسية.

استخدامات أخرى

لقد توسّع استخدام جافا سكريبت ليتجاوز حدود متصفحات الويب. فأصبحت محركات جافا سكريبت الآن مُدمجة في مجموعة متنوعة من أنظمة البرمجيات الأخرى، سواءً لنشر مواقع الويب من جانب الخادم أو للتطبيقات غير المرتبطة بالمتصفحات.

كانت المحاولات الأولى لتشجيع استخدام جافا سكريبت من جانب الخادم هي Netscape Enterprise Server وMicrosoft Internet Information Services، إلا أنهما كانتا محدودتين. بدأ استخدام جافا سكريبت من جانب الخادم بالنمو في أواخر العقد الأول من القرن الحادي والعشرين مع ظهور Node.js وأساليب أخرى.

استُخدمت Electron وCordova وReact Native وأطر عمل تطبيقات أخرى لإنشاء العديد من التطبيقات التي تُطبّق سلوكياتها بلغة JavaScript. تشمل التطبيقات الأخرى غير المتصفحات دعم Adobe Acrobat لبرمجة مستندات PD، وإضافات GNOME Shell المكتوبة بلغة JavaScript.

ظهرت JavaScript مؤخرًا في بعض الأنظمة المضمنة، وعادةً ما تستخدم Node.js.

بيئة التنفيذ

تعتمد جافا سكريبت عادةً على بيئة تشغيل (مثل متصفح ويب) لتوفير الكائنات والأساليب التي تتفاعل بها البرامج النصية مع البيئة (مثل DOM لصفحة ويب). هذه البيئات أحادية السلسلة. كما تعتمد جافا سكريبت على بيئة التشغيل لتوفير إمكانية تضمين/استيراد البرامج النصية (مثل عناصر <script>). HTML) را فراهم کند. این به خودی خود یک ویژگی زبان نیست، اما در اکثر پیاده سازی های جاوا اسکریپت رایج است. جاوا اسکریپت پیام های یک صف را در یک زمان پردازش می کند. جاوا اسکریپت یک تابع مرتبط با هر پیام جدید را فراخوانی می کند و یک فریم پشته تماس با آرگومان های تابع و متغیرهای محلی ایجاد می کند. پشته تماس بر اساس نیازهای تابع کوچک شده و رشد می کند. هنگامی که پشته تماس پس از تکمیل تابع خالی است، جاوا اسکریپت به پیام بعدی در صف ادامه می‌دهد. این حلقه رویداد نامیده می شود که به عنوان “اجرا تا تکمیل” توصیف می شود زیرا هر پیام قبل از در نظر گرفتن پیام بعدی به طور کامل پردازش می شود. با این حال، مدل همزمانی زبان، حلقه رویداد را غیر مسدودکننده توصیف می‌کند: ورودی/خروجی برنامه با استفاده از رویدادها و توابع پاسخ به تماس انجام می‌شود. این بدان معناست که، برای مثال، جاوا اسکریپت می‌تواند یک کلیک ماوس را در حالی که منتظر یک پرس و جو پایگاه داده برای بازگرداندن اطلاعات است، پردازش کند.

نتيجة

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

[المجموع: 1   متوسط: 5/5]
اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً

تينسور فلو

TensorFlow هي مكتبة للتعلم الآلي والتعلم العميق نشرتها Google و…

قصة لعبة God of War: Ragnarok

تركز القصة على كراتوس، إله الحرب، وابنه المراهق، أتريوس، الذين يواجهون صراع راجناروك القادم...

ما هو Three.js؟

مقدمة يقوم Three.js بالعديد من الأشياء وقد يكون من الصعب بعض الشيء كيفية العمل معه...