أجرى ليكس فريدمان العديد من المقابلات الطويلة في البودكاست الشهير الخاص به. ومع ذلك، فإن الحلقة التي شارك فيها المبرمج الأسطوري جون كارماك تحمل طابع المخرج المضطرب. على مدى خمس ساعات، تناول كارماك كل شيء بدءًا من عمليات مكافحة ناقلات الأمراض وحتى الموت. لكن هذا ما يقوله فريدمان مرتجلًا، وهو ما يبرر حقًا مدة التشغيل الممتدة: “أعتقد أننا إذا كنا نعيش في محاكاة، فهي مكتوبة بلغة جافا سكريبت”.
للمراجعة: JavaScript هو ما يجعل صفحات الويب الثابتة “ديناميكية”. وبدون ذلك، لن يشبه الإنترنت شيئًا بقدر ما يشبه صالة ألعاب بعد ساعات العمل، هامدة ومظلمة. في هذه الأيام، تُستخدم اللغة في التطوير الأمامي والخلفي لمجموعة كاملة من منصات وتطبيقات الأجهزة المحمولة، بما في ذلك Slack وDiscord. والشيء الرئيسي الذي يجب فهمه حول هذا الموضوع، في سياق قصيدة فريدمان المهووسة، هو ما يلي: بالنسبة لأي مبرمج يحترم نفسه، ويعترف بأنه في الواقع تروق يعد JavaScript بمثابة خطأ مزيف – يشبه إلى حد كبير مخرج أفلام فني يعترف بقاعدة جماهير Marvel.
أفترض أن هذا له علاقة بحقيقة أن جافا سكريبت تم إنشاؤها في وقت أقل مما يستغرقه تحضير جرة كومبوتشا في المنزل: 10 أيام. في عام 1995، قامت شركة Netscape بتعيين مبرمج يدعى Brendan Eich لإنشاء لغة لتضمينها في متصفحها، Netscape Navigator. كانت اللغة تسمى في الأصل LiveScript، وتمت إعادة تسميتها إلى JavaScript بسبب الضجيج حول لغة غير ذات صلة تسمى Java، والتي تم تقديمها في وقت سابق من ذلك العام. (عندما يُسأل أحد المبرمجين عن الفرق بين جافا سكريبت وجافا سكريبت، فمن المرجح أن يمزح قائلاً: “إن جافا سكريبت بالنسبة لجافا سكريبت هي بمثابة السيارة بالنسبة للسجاد.”) حتى يومنا هذا، قليل من الناس يعتبرون جافا سكريبت لغة مصممة بشكل جيد، على الأقل إيتش. قال ذات مرة: “لقد ارتكبت جريمة جافا سكريبت في عام 1995، وأنا أعوض عنها منذ ذلك الحين”.
وما هي جريمته بالضبط؟ يمكنك بسهولة العثور على مجموعات كبيرة من منشورات المدونات، والميمات، وخيوط Reddit التي تحتوي على جافا سكريبت، لكن المفضل لدي هو حديث مدته أربع دقائق لمهندس البرمجيات غاري بيرنهاردت بعنوان “وات”. تخيل، كبداية، أن تظهر لمجموعة من غير الناطقين باللغة الإنجليزية أشكال الأفعال الحالية والماضية مثل دمل (دمل/مغلي) و مضغ (مضغ/يمضغ). ثم، عندما تطلب منهم تصريف يأكل، من يستطيع أن يلومهم على الإجابة يأكل/أكل؟ وبالمثل، فإن حديث “وات” عبارة عن خطأ فادح في مراوغات جافا سكريبت وسلوكياتها غير المتوقعة. لنفترض أنك تريد فرز قائمة من الأرقام: (50، 100، 1، 10، 9، 5). يؤدي استدعاء وظيفة الفرز المضمنة بأي لغة معقولة إلى إرجاع القائمة بترتيب تصاعدي رقمي: (1، 5، 9، 10، 50، 100). يؤدي القيام بذلك إلى إرجاع JavaScript (1، 10، 100، 5، 50، 9)، حيث يعتبر 10 و100 أكبر من 5. لماذا؟ لأن JavaScript يفسر كل رقم كنوع سلسلة ويقوم بالفرز المعجمي، وليس الفرز الرقمي. الجنون التام.
عندما يقول فريدمان إن جافا سكريبت تدير العالم، بمعنى آخر، ما يعنيه هو أن عالمنا، مثل كود المصدر الأساسي، معطل بشكل كبير وغير مفهوم. إنه يعادل النطق، مع تنهيدة، أنه بالنظر إلى الحالة المؤسفة للكوكب، فإن الإعلان العالمي لحقوق الإنسان لا بد أن يكون قد كتب بلغة Comic Sans.
عند هذه النقطة، يجب أن أعترف أنه على الرغم من أن JavaScript ليست لغتي المفضلة، إلا أنني أحبها. أعشق ذلك، في الواقع. لذلك لا يسعني إلا أن أشعر بموجة من الرفض عندما تتجادل مجموعة معينة من المبرمجين ضدها. غالبًا ما يركزون على العيوب التي تم التعامل معها منذ سنوات. إن الخوض في عيوب جافا سكريبت الأصلية يعني التغاضي عن حقيقة أن أي جزء من البرنامج – وكل لغة برمجة هي، في جوهرها، مجموعة من البرامج – قابلة للمراجعة والتحسين.