تاريخ جافا سكريبت: ECMAScript و TC39 وما بعده

JavaScript هي لغة حية تضيف باستمرار ميزات جديدة. ما أريد القيام به في هذا المنشور هو تقسيم هذه العملية وإظهار الخطوات اللازمة لميزة جديدة للانتقال من فكرة بسيطة إلى جزء من المواصفات الرسمية. للقيام بذلك ، سنحتاج إلى تغطية ثلاثة أشياء: ECMA و ECMAScript و TC39.

لاحظ أنني سجلت أيضًا نسخة فيديو من هذه المقالة ، إذا كنت تفضل مشاهدة ذلك:

دعونا نعود إلى عام 1995. كانت لعبة Heavy Weights الكلاسيكية في المسارح ، وفاز نيكولاس كيج بجائزة الأوسكار ، وبدا مواقع الويب مثل هذا. الآن ، الاحتمالات هي طريقة عرضك لهذا الموقع مع Netscape Navigator.

في ذلك الوقت ، كان Netscape Navigator متصفح الويب الأكثر شعبية بحصة سوقية تبلغ 80٪ تقريبًا. كان مؤسس Netscape ، الشركة التي تقف وراء Netscape Navigator ، هو Mark Andreessen. كانت لديه رؤية لمستقبل الويب وكانت أكثر من مجرد طريقة لمشاركة المستندات وتوزيعها. تصور منصة أكثر ديناميكية مع تفاعل من جانب العميل - نوع من "لغة الغراء" التي كان من السهل استخدامها من قبل المصممين والمطورين.

هذا هو المكان الذي يأتي فيه Brendan Eich إلى الصورة. تم تجنيده من قبل Netscape بهدف تضمين لغة برمجة النظام في Netscape Navigator. ولكن قبل أن يتمكن من البدء ، تعاونت Netscape مع Sun Microsystems لإتاحة لغة البرمجة الجديدة والمقبلة Java في المتصفح. يطرح هذا السؤال الآن ، "إذا كانت Java لغة مناسبة بالفعل ، فلماذا تقدم Brendan لإنشاء لغة أخرى؟".

حسنًا ، إذا تذكرت هدف Netscape ، فقد أرادوا لغة برمجة بسيطة بما يكفي ليستخدمها المصممون والهواة - لم تكن Java كذلك. لذا أصبحت الفكرة أنه يمكن استخدام Java من قبل المحترفين و "Mocha" ، الذي كان الاسم الأولي لـ JavaScript ، سيتم استخدامه من قبل أي شخص آخر.

بسبب هذا التعاون بين اللغات ، قررت Netscape أن Mocha بحاجة إلى تكملة Java ويجب أن يكون لها بناء جملة مماثل نسبيًا. بعد ذلك ، في 10 أيام فقط ، أنشأ Brendan الإصدار الأول من Mocha الذي لا يزال يحتوي على بعض الوظائف من Scheme ، واتجاه كائن SmallTalk ، وبناء جملة Java. في النهاية ، تغير اسم موكا إلى LiveScript ثم تغير LiveScript إلى JavaScript كحيلة تسويقية لركوب ضجة جافا. في هذه المرحلة ، تم تسويق جافا سكريبت كلغة نصية للمتصفح - في متناول كل من الهواة والمصممين بينما كانت جافا الأداة الاحترافية لبناء مكونات ويب غنية.

من المهم الآن فهم سياق حدوث هذه الأحداث. إلى جانب فوز نيكولاس كيج بجائزة الأوسكار ، كانت Microsoft تعمل أيضًا على Internet Explorer. نظرًا لأن جافا سكريبت غيّرت بشكل أساسي تجربة المستخدم على الويب ، إذا كنت متصفحًا منافسًا ، فلا خيار أمامك سوى تنفيذ تطبيق جافا سكريبت الخاص بك نظرًا لأنه لم يتم توحيده بعد. لذلك ، هذا بالضبط ما فعلته Microsoft وأطلقوا عليه اسم JScript.

هذا يؤدي إلى مشكلة مشهورة جدا في تاريخ الإنترنت. ملأ JScript نفس حالة استخدام JavaScript ، لكن تنفيذه كان مختلفًا. هذا يعني أنه لا يمكنك بناء موقع ويب واحد وتوقع أن يعمل على كل من Internet Explorer و Nestscape Navigator. في الواقع ، كان التطبيقان مختلفين جدًا لدرجة أن شعار "أفضل عرض في Netscape" و "أفضل عرض في Internet Explorer" أصبح شائعًا بالنسبة لمعظم الشركات التي لم تستطع تحمل تكلفة التنفيذين.

هذا هو المكان الذي تأتي فيه Ecma إلى الصورة. Ecma International هي "جمعية صناعية تأسست في عام 1961 ، مكرسة لتوحيد أنظمة المعلومات والاتصالات". في نوفمبر من عام 1996 ، قدمت Netscape جافا سكريبت إلى Ecma لوضع مواصفات قياسية.

من خلال القيام بذلك ، أعطى المنفذين الآخرين صوتًا في تطور اللغة ، ومن الناحية المثالية ، سيحافظ على تطبيقات أخرى متسقة عبر المتصفحات. لذلك دعونا نتعمق في كيفية عمل Ecma.

تأتي كل مواصفات جديدة مع معيار ولجنة. في حالة JavaScript ، يكون المعيار هو ECMA-262 واللجنة التي تعمل على معيار ECMA-262 هي TC39. إذا بحثت عن معيار ECMA262 ، فستلاحظ أن مصطلح "JavaScript" لا يُستخدم أبدًا. بدلاً من ذلك ، يستخدمون مصطلح "EcmaScript" للتحدث عن اللغة الرسمية. والسبب في ذلك هو أن أوراكل تمتلك العلامة التجارية لمصطلح "JavaScript" ، لذا لتجنب المشاكل القانونية ، استخدمت Ecma مصطلح EcmaScript بدلاً من ذلك.

في العالم الحقيقي ، عادة ما يتم استخدام ECMAScript للإشارة إلى المعيار الرسمي ، EMCA-262 ، بينما يتم استخدام JavaScript عند التحدث عن اللغة في الممارسة. كما ذكرنا سابقًا ، فإن اللجنة التي تشرف على تطور معيار Ecma262 هي TC39 ، والتي تمثل اللجنة الفنية 39.

يتألف TC39 من "أعضاء" هم عادة بائعي المتصفح والشركات الكبيرة الذين استثمروا بكثافة في الويب مثل Facebook و PayPal. لحضور الاجتماعات ، سيرسل "الأعضاء" (مرة أخرى ، الشركات الكبيرة وبائع المتصفح) "مفوضين" لتمثيل الشركة أو المتصفح المذكور. هؤلاء المندوبون هم المسؤولون عن إنشاء مقترحات اللغة أو الموافقة عليها أو رفضها.

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

يبدأ كل عرض جديد في المرحلة 0. تسمى هذه المرحلة مرحلة Strawman. مقترحات المرحلة 0 هي "الاقتراحات التي من المقرر أن يتم تقديمها إلى اللجنة من قبل بطل TC39 أو ، تم تقديمها إلى اللجنة ولم يتم رفضها بشكل نهائي ، لكنها لم تحقق بعد أي من المعايير للدخول إلى المرحلة 1." لذا فإن الشرط الوحيد لتصبح مقترح المرحلة 0 هو أنه يجب مراجعة الوثيقة في اجتماع TC39. من المهم ملاحظة أن استخدام ميزة المرحلة 0 في قاعدة التعليمات البرمجية الخاصة بك أمر جيد ، ولكن حتى إذا استمرت في أن تصبح جزءًا من المواصفات الرسمية ، فمن المؤكد أنها ستمر ببعض التكرارات قبل ذلك.

المرحلة التالية في نضج مقترح جديد هي المرحلة 1. من أجل التقدم إلى المرحلة 1 ، يجب تحديد "بطل" رسمي يمثل جزءًا من TC39 ويكون مسؤولًا عن الاقتراح. بالإضافة إلى ذلك ، يحتاج الاقتراح إلى وصف المشكلة التي يحلها ، ولديه أمثلة توضيحية للاستخدام ، وواجهة برمجة تطبيقات عالية المستوى ، وتحديد أي مخاوف محتملة وتحديات التنفيذ. من خلال قبول مقترح للمرحلة الأولى ، تشير اللجنة إلى استعدادهم لإنفاق الموارد للنظر في الاقتراح بمزيد من التعمق.

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

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

المرحلة الأخيرة هي المرحلة 4. في هذه المرحلة ، يكون المقترح جاهزًا ليتم تضمينه في المواصفات الرسمية. للوصول إلى المرحلة 4 ، يجب كتابة الاختبارات ، يجب أن يجتاز اثنان من التطبيقات المتوافقة مع المواصفات تلك الاختبارات ، ويجب أن يكون لدى الأعضاء خبرة عملية مهمة مع الميزة الجديدة ، ويجب أن يوقع محرر مواصفات EcmaScript على نص المواصفات. في الأساس بمجرد أن يصل الاقتراح إلى المرحلة 4 ، يكون جاهزًا للتوقف عن كونه اقتراحًا وشق طريقه إلى المواصفات الرسمية. هذا يجلب آخر شيء تحتاج إلى معرفته حول هذه العملية بأكملها وهذا هو جدول إصدار TC39s.

اعتبارًا من عام 2016 ، يتم إصدار إصدار جديد من ECMAScript كل عام مع أي ميزات جاهزة في ذلك الوقت. ما يعنيه ذلك هو أن أي مقترحات للمرحلة الرابعة موجودة عند حدوث إصدار جديد ، سيتم تضمينها في الإصدار لهذا العام. نظرًا لدورة الإصدار السنوية هذه ، يجب أن تكون الميزات الجديدة أكثر سهولة وأسهل في التطبيق.

هذا جزء من دورة tylermcginnis.com "JavaScript الحديثة".