انتبهوا يا مهندسي البرمجيات المدللين: خذوا درسًا من لغة برمجة جوجل
العديد من اليوم المبرمجين – عفوا برمجة المهندسين– يعتبرون أنفسهم “مبدعين”. فنانون من نوع ما. يتم إعطاؤها إلى مواقع الويب الشخصية المتفاخرة التي تحتوي على بيض عيد الفصح المخفي بذكاء وتمرير المنظر. إنهم يمنحون أنفسهم ألقابًا وظيفية متعددة الواصلات (“مؤلف، مهندس، مستثمر، أمازون سابقًا”) ويزدحمون أجهزة الكمبيوتر المحمولة الخاصة بهم بملصقات الفينيل التي تشير إلى الهوية. يعتبر البعض أنفسهم محنكين في الأدب. خذ بعين الاعتبار المراجع التي تم دمجها في أسماء منتجات معينة: Apache Kafka، وScyllaDB، وClaude 3.5 Sonnet.
وأعترف أن الكثير من ذلك ينطبق علي. الفرق هو أنني أفتقر إلى المواهب اللازمة للوصل، ومشاريع الألعاب الخاصة بي – بأسماء مثل “نابوكوف” (أعلم، أعرف) – من الأفضل أن تبقى على جهاز الكمبيوتر المحمول الخاص بي. لقد دخلت هذا العالم تقريبًا في اللحظة التي تفوقت فيها هندسة البرمجيات على الخدمات المصرفية باعتبارها المهنة الأكثر لعنة. هناك الكثير من الكراهية وكراهية الذات التي يجب التعامل معها.
ربما هذا هو السبب الذي يجعلني أرى الروح الكامنة وراء لغة البرمجة Go بمثابة توبيخ وتصحيح محتمل لجيلي من المجاهدين. ينحدر مبتكروها من عصر كان فيه المبرمجون لديهم غرور أصغر وطموحات تجارية أقل، وهي، في رأيي، اللغة الأولى للأغراض العامة في الألفية الجديدة – ليست الأفضل في أي شيء، ولكنها الأفضل تقريبًا في ما يقرب من كل شئ. نموذج لعصرنا المبهرج.
لو كنت لتصنيف لغات البرمجة مثل الحركات الفنية، سيكون هناك نفعية منتصف القرن (Fortran، COBOL)، شكلية النظرية العالية (Haskell، Agda)، البراغماتية الأمريكية (C #، Java)، المجتمعية الشعبية (Python، Ruby)، ومذهب المتعة الباطني. (Befunge، Brainfuck). وأود أن أقول إن Go، التي توصف غالبًا بأنها “C for the 21st Century”، تمثل الكلاسيكية الجديدة: ليست ثورة بقدر ما هي ارتداد.
في عام 2007، اجتمع ثلاثة مبرمجين في Google حول إحساس مشترك بأن اللغات القياسية مثل C++ وJava أصبحت صعبة الاستخدام وغير ملائمة لبيئة الحوسبة الحالية الأكثر توجهاً نحو السحابة. كان أحدهم كين طومسون، الذي كان يعمل سابقًا في مختبرات بيل وحاصل على جائزة تورينج لعمله في يونكس، عشية الميتوكوندريا لأنظمة التشغيل. (في هذه الأيام، لا يعبث موظفو أنظمة التشغيل بلغات البرمجة – فالقيام بالأمرين معًا يشبه لاعب الوثب العالي الأولمبي الذي يتأهل أيضًا لسباق الماراثون). وانضم إليه روب بايك، وهو أحد خريجي Bell Labs الآخرين الذين أنشأوا، جنبًا إلى جنب مع طومسون، ترميز Unicode القياسي UTF-8. يمكنك أن تشكرهم على الرموز التعبيرية الخاصة بك.
كانت مشاهدة عمداء البرمجة وهم يصنعون لعبة Go بمثابة رؤية اجتماع سكورسيزي ودي نيرو وبيسكي من أجل الايرلندي. حتى اسمها غير الصديق لكبار المسئولين الاقتصاديين (SEO) يمكن أن يغفر له. أعني، الوقاحة المطلقة منه. خطوة لن يجرؤ عليها إلا ملك محرك البحث الحاكم.
اكتسبت اللغة قوة جذب بسرعة. لا بد أن مكانة جوجل قد ساعدت، ولكنني أفترض أنه كان هناك جوع غير مشبع للتجديد. بحلول عام 2009، العام الذي ظهرت فيه لغة Go لأول مرة، كانت أحدث اللغات السائدة لا تزال في الغالب من عام 1995 – وهي سنة رائعة حقيقية، عندما ظهرت كل من Ruby وPHP وJava وJavaScript.
لم يكن الأمر أن التقدم في تصميم لغة البرمجة قد توقف. إن مصممي اللغات هم مجموعة رائعة من الذكاء، والعديد منهم لديهم حماسة إصلاحية لإزاحة الوضع الراهن. لكن ما ينتهي بهم الأمر إلى بنائه يمكن أن يشبه في بعض الأحيان أعجوبة التصميم العالي للمهندسين النجوم والتي تبين أنها تعاني من مشاكل الصرف الصحي. معظم اللغات الجديدة لا تتغلب أبدًا على مشكلات الأداء الأساسية.
ولكن منذ البداية، كان Go (آسفًا) جاهزًا للانطلاق. لقد قمت ذات مرة بإنشاء محرك بحث صغير بلغة بايثون لغربلة ملاحظاتي ومستنداتي، لكنه كان بطيئًا بشكل غير قابل للاستخدام. أعيد كتابتها في Go، ونما ثعباني المثير للشفقة جناحيه وانطلق، وركض أسرع 30 مرة. وكما خمن بعض القراء الأذكياء، فإن هذا البرنامج كان بمثابة “نابوكوف”.