انتبهوا يا مهندسي البرمجيات المدللين: خذوا درسًا من لغة برمجة جوجل


العديد من اليوم المبرمجين – عفوا برمجة المهندسين– يعتبرون أنفسهم “مبدعين”. فنانين من نوع ما. يتم إعطاؤها إلى مواقع الويب الشخصية المتفاخرة التي تحتوي على بيض عيد الفصح المخفي بذكاء وتمرير المنظر. إنهم يمنحون أنفسهم ألقابًا وظيفية متعددة الواصلات («مهندس-مستثمر-مؤلف سابق» في أمازون) ويزدحمون أجهزة الكمبيوتر المحمولة الخاصة بهم بملصقات الفينيل التي تشير إلى الهوية. يعتبر البعض أنفسهم محنكين في الأدب. خذ بعين الاعتبار المراجع التي تم دمجها في أسماء منتجات معينة: 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 مرة. وكما خمن بعض القراء الأذكياء، كان هذا البرنامج هو “نابوكوف”.

اترك تعليقاً

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