Published on

📚 رحلة عبر الزمن: تاريخ جافاسكربت بإيجاز وتطورها

Authors

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

لكن مع انتشار ونمو الإنترنت، نمى إحتياج أيضا لشيء يقوم بإضفاء حياه إلى هذه المواقع الساكنة، شيء يشعرك أن المواقع التي أمامك قابلة للتفاعل (حية) فعلا، وليست مجرد شيء جامد وساكن.

🌄 ولوج جافاسكربت ، اللغة التي أحدثت ثورة للمواقع

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

هنا.. سنعطي نبذة بسيطة عن هذه اللغة وكيف شكلت الويب كما نعرفه اليوم، وقصة تطويرها "خلال 10 أيام فقط" !

🌐 عصر ما قبل الجافاسكربت

صور من مواقع في التسعينات

صورة من موقع قديم
صورة من موقع قديم
صورة من موقع قديم

في عصر ما قبل الجافاسكربت، المواقع كانت معتمدة بشكل كبير على لغات السيرفر مثل بيرل، بي اتش بي وغيرهم التي تقوم بمعالجة الطلب، وترجع صفحة جديدة بمحتوى جديد.

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

بمعنى أن كل ما أراد المستخدم أن يتفاعل مع الصفحة - والطريقة الوحيدة أصلا أن يتفاعل هي عن طريق الروابط والفورمات - هذا التفاعل سيصل إلى السيرفر وسيضطر السيرفر إلى معالجته وإرجاع صفحة جديدة، والمحصلة تفاعل وتجربة محدودة وبطيئة.

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

⚔ صراع المتصفحات (Netscape vs Explorer)

في بداية التسعينيات نيتسكيب كان يٌلقب بــ"متصفح الشعب" ، فهو أول من قام بتقديم متصفح المواقع الرسومي لعامة الناس، وبشكل سريع ومبهر حصل على شهرة واسعة جدا والناس كانت منبهرة من سهولة تصفح البحر المعلوماتي بسهولة

صورة من متصفح نيتسكيب

مايكروسوفت مع الشهرة التي حققها متصفح نيتسكيب رأت سوقا لأجل أن تطور متصفحها الخاص "Internet Explorer (IE)"، فطوّرته بالفعل وضمنته مع نظام تشغيلها (ويندوز)، وهذه الحركة بطبيعة الحال قدمت لهم أفضلية قوية على نظيرهم، نظرا لأن ويندوز أنذاك كان مهيمنا، بمعنى أن متصفح انترنت اكسبلور سيكون مضمنا مع النظام بشكل جاهز على ملايين الكمبيوترات.

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

ولكن هيهات بالنسبة لنيتسكيب، فهيمنة ويندوز لمن تكن بالشيء الهين، علمت نيتسكيب أن ما تقوم بفعله ليس كافيا، تحتاج لأن تقوم بحل جذري، حل مبتكر!

☕ ولوج موكا (Mocha) - لاحقا جافاسكربت -

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

براندون في عملية تطوير زوبعية أخذت فقط عشرة أيام قام بعرض "Mocha" ثم تم إطلاقها كـ"Livescript"، لاحقا تم تغيير مسماها إلى "جافاسكربت 💛" لأجل سبب بسيط جدا ألا وهو الركوب في موجة جافا التي كانت في أمدها في ذلك الوقت

عملية تسمية جافاسكربت

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

على الرغم من وقت التطوير القصير العجيب، جافا سكربت (مفتوحة المصدر) تم إطلاقها رسميا في إصدار نيتسكيب القادم نيتسكيب 2.0

رد مايكروسوفت، ونسخ جافاسكربت المختلفة

وكما هي طبيعة جافاسكربت، سببت فوضى من أول يوم 😁

بعد إطلاق متصفح نيتسكيب 2.0 - والذي يحتوي على جافاسكربت - أحست مايكرسوفت أنها متأخرة.. وفي 1996 كرد، قامت بإطلاق نسختها الخاصة من جافاسكربت وتدعى (JScript)، وتم إطلاقها مع انترنت اكسبلور الإصدار الثالث - في عام 2011 تم إيقافها مع متصفح IE 9 -.

ولكن مايكروسوفت لم تكن الوحيدة التي قامت بإطلاق نسختها الخاصة من جافاسكربت

مايكروسوفت ومتصفحات أخرى قامو بعمل نسخهم الخاصة كذلك (مع اخلاف المسميات والقواعد) وأطلقوها في متصفحاتهم الخاصة. وهذه سببت "صداع" للمطورين، فالكود الذي يعمل في متصفح لم يعمل في متصفح أخر، واستمر الوضع هكذا لفترة

Ecmascript

قررت نيتسكيب القيام بعمل بطولي، قامت بالذهاب إلى European Computer Manufacturers Association (ECMA)، لتوحيد جافاسكربت وإعتماد معايير لضمان إدارة ودعم أفضل للغة، وبالفعل أٌعتمد المعيار وأٌطلق ECMAScript، وجافاسكربت أصبحت تتبع هذا المعيار على الرغم من أن براندون لا يحب مسمى ECMASCRIPT 😂

وقلت عمل بطولي، لأن لولا هذا العمل لأصبح تطوير المواقع مثل تطوير تطبيقات الجوال النيتف، تبرمج لمتصفح كروم ثم تبرمج مرة أخرة لمتصفح فايرفوكس

وبإختصار ECMAScript هي جافاسكربت لكن بدون بيئة مشغلة، بمعنى بدون API إضافي من المتصفح ونود ودينو والخ...

هيمنة جافاسكربت

من الجدير بالإنتباه أن جافاسكربت لم تكن هي الحل الوحيد كما ذكرنا في المقدمة، كان يوجد أيضا Flash, Java applets, وغيرهم

Adobe flash

ولكن تم إسقاطهم أو إيقاف الدعم عنهم لمشاكل عدة منها مشاكل أمنية، ومشاكل في الأداء، وأيضا صعود HTML5, وبالطبع جافاسكربت

تطور جافاسكربت

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

الآن يستطيع مطور الجافاسكربت أن يطور تطبيقات مشتركة بين الأنظمة في أنظمة التشغيل وتطبيقات الجوال، ويمكن أيضا البرمجة على السيرفر بواسطة node js ، مما يفتح المجال أيضا للبرمجة Full Stack.