جوشوا بلوخ: ضمير منصة جافا
"لقد استنفدت لغة برمجة جافا ميزانية تعقيدها مع التغييرات التي تم إدخالها في الإصدار 5.0". إنها جملة مذهلة، خاصة بسبب من قالها. قضى جوشوا بلوخ سنوات في شركة صن مايكروسيستمز في تصميم الإضافات المعنية، وكان إصدار JDK 5.0 الذي ساعد في تشكيله هو التوسع الأكثر طموحًا الذي شهدته اللغة على الإطلاق. ثم أخبر العالم أن هذا يكفي. تلك الغريزة — لمراقبة نظام قام هو شخصيًا بتوسيع نطاقه، والتفكير في الميزانيات بدلاً من الميزات — هي جوهر شخصيته في سطر واحد.
ساوثهامبتون، كولومبيا، بيتسبرغ
ولد بلوخ في 28 أغسطس 1961 في ساوثهامبتون، نيويورك. حصل على درجة البكالوريوس في علوم الكمبيوتر من كلية الهندسة والعلوم التطبيقية بجامعة كولومبيا، ثم ذهب إلى جامعة كارنيجي ميلون للحصول على الدكتوراه، والتي أكملها في عام 1990. رُشحت أطروحته، "نهج عملي لنسخ كائنات البيانات المجردة"، لجائزة ACM لأطروحة الدكتوراه المتميزة.
يستحق العنوان أن يُقرأ مرتين. حتى كطالب دراسات عليا، كانت الكلمة التشغيلية في عمل بلوخ هي عملي. لم يكن يهاجم النسخ كمشكلة نظرية في الأنظمة الموزعة؛ بل كان يبحث عن نسخة يمكن للمهندسين نشرها فعليًا ضد كائنات البيانات المجردة. لقد قضى بقية حياته المهنية في تلك الفجوة الضيقة وغير العصرية بين ما هو صحيح بشكل قابل للإثبات وما يمكن الوثوق بمبرمج يعمل باستخدامه.
صن، وإطار عمل المجموعات
بعد فترة قضاها في Transarc كمصمم أنظمة أول، انضم بلوخ إلى صن مايكروسيستمز، حيث أصبح مهندسًا متميزًا وقاد تصميم وتنفيذ العديد من القطع التي تجعل جافا قابلة للتعرف عليها كجافا. يعد إطار عمل مجموعات جافا (Java Collections Framework) أكبرها: مجموعة الواجهات والتنفيذات — القوائم، والمجموعات، والخرائط، والخوارزميات التي تعمل عليها — والتي بُني عليها كل برنامج جافا منذ ذلك الحين. كما قاد حزمة java.math وآلية التأكيد في اللغة، ودفع بتحسينات كبيرة في JDK 5.0.
هذا نوع غريب من التأليف. مكتبة المجموعات ليست تطبيقًا؛ إنها مفردات. يقضي ملايين المبرمجين الذين لم يسمعوا قط باسم بلوخ حياتهم العملية داخل الأسماء والأفعال التي اختارها، وشكل تفكيرهم مقيد بشكل واجهاته. لو أخطأ في ذلك، لما أنتج برنامجًا سيئًا؛ بل كان سينتج لغة سيئة لكتابة البرامج، بشكل دائم.
عشرون سؤالاً وثماني دقائق على الساعة، ونسبة مئوية مقاسة مقابل كل من خاضه. دون تسجيل.
اخوض اختبار الذكاء →جافا الفعالة (Effective Java)
في عام 2001، نشر كتاب Effective Java، وفعل شيئًا نادرًا ما تفعله الكتب حول لغات البرمجة: أصبح السلطة الأخلاقية لمجتمع ما. تم تنظيمه كسلسلة مرقمة من العناصر المستقلة، كل منها يضع قاعدة ثم يجادل لصالحها من أنماط فشل حقيقية، وفاز بجائزة Jolt في عام 2001. نمت الطبعة الثانية، في عام 2008، من سبعة وخمسين عنصرًا إلى ثمانية وسبعين دون أن تصبح أصعب في القراءة؛ ووصلت طبعة ثالثة في عام 2017.
كتب كتابين إضافيين مع متعاونين. Java Puzzlers، مع نيل غافتر في عام 2005، هو مختارات من فخاخ اللغة — كود يتصرف بشكل صحيح وفقًا للمواصفات وبشكل جنوني وفقًا للحدس — مقدم كتمارين تشخيصية. كُتب كتاب Java Concurrency in Practice، في عام 2006، مع خمسة متعاونين بما في ذلك دوغ لي، وأصبح المرجع القياسي لأصعب شيء تطلبه المنصة من مستخدميها.
جوجل، وتصميم واجهة برمجة التطبيقات (API)
كان بلوخ كبير مهندسي جافا في جوجل من يونيو 2004 إلى أغسطس 2012. وهناك تبلور انشغاله المركزي في حجة عامة. تتناول ورقته البحثية في مؤتمر عام 2006، "كيفية تصميم واجهة برمجة تطبيقات جيدة ولماذا يهم ذلك"، تصميم الواجهة كعنصر انضباط له مخاطر بدلاً من كونه مسألة ذوق، على أساس أن واجهة برمجة التطبيقات هي عقد لا يمكنك إعادة التفاوض عليه. وصف الإحباط بشكل ملموس: في جوجل لم يستطع توفير تنفيذات بديلة لفئات معينة لأنها أُعلنت كأنواع ملموسة بدلاً من واجهات — وهو قرار اتخذه شخص آخر قبل سنوات، والذي، كما عبر عنه، هو نوع القيود التي "يشعر بها المطورون العاديون كل يوم".
نصيحته لها نكهة ثابتة: التواضع بشأن حكم المرء. لا تكرر نفسك؛ ابحث عن مكتبة راسخة، خاصة للتزامن، بدلاً من كتابة مكتبتك الخاصة. لا تثق بالشعور بأن التحذيرات العامة حول التحسين المبكر لا تنطبق على أشخاص آخرين — "من السهل أن تشعر أن التحذيرات العامة حول التحسين المبكر لا تنطبق عليك، لأنك تعرف فقط أي كود هو حرج من حيث الوقت". واقرأ The Elements of Style، لأن "البرمجة الجيدة والكتابة الجيدة كلاهما يتعلقان بالوضوح واقتصاد التعبير".
لماذا يُطلق على جوشوا اسم عبقري
القدرة المعنية ليست اختراعًا خامًا بل شيئًا أندر: القدرة على رؤية قطعة من البرمجيات من موقع الغريب الذي سيضطر لاستخدامها، والتصميم لأخطاء ذلك الغريب المحتملة بدلاً من كفاءة المرء الخاصة. واجهة برمجة التطبيقات، في إطار عمل بلوخ، هي لغة مفروضة على أشخاص لم يوافقوا عليها أبدًا ولا يمكنهم تعديلها، مما يجعل تصميمها تمرينًا في توقع سوء الاستخدام على نطاق واسع، قبل عقود. إطار عمل المجموعات هو الدليل: مفردات يستخدمها جزء ضخم من جميع المبرمجين العاملين، صحيحة بما يكفي لتكون قد نجت دون تغيير إلى حد كبير. القطعة الثانية هي التدوين: أخذ كتاب Effective Java الخبرة الضمنية التي كانت تعيش سابقًا فقط في رؤوس عدد قليل من مهندسي المنصة وحولتها إلى قواعد قابلة للنقل والجدال.
تستحق الحجة المضادة أن تُذكر. لم ينتج بلوخ علوم كمبيوتر جديدة. رُشحت أطروحته لجائزة أطروحة متميزة، ولم تحصل عليها؛ عمله الأكثر شهرة هو كتاب عن أفضل الممارسات، وهو تنظيم وحكم بدلاً من اكتشاف. التكريمات المسجلة هي جائزة نشر تجارية وقائمة مجلات، وليست جوائز البحث الرئيسية في المجال، ولا يوجد مصدر تم استشارته هنا يسجل أي شخص يصفه بالعبقري. كان إطار عمل المجموعات جهدًا جماعيًا كبيرًا قاده، وليس تكوينًا فرديًا. الحكم العادل هو أن بلوخ هو ممارس ومعلم سامٍ للحكم الهندسي — وهو انضباط يهم أكثر من الحداثة في البرمجيات ويحصل على رصيد أقل بكثير.
الإرث
واصل تشكيل اللغة بعد مغادرة صن، واقترح بشكل مشترك كتل إدارة الموارد التلقائية وتعبيرات إنشاء المثيلات الموجزة كنهج للإغلاقات؛ وصلت كتل ARM إلى JDK 7. في ديسمبر 2004، صنفته مجلة Java Developer's Journal ضمن أهم أربعين شخصية برمجية في العالم. عاد منذ ذلك الحين إلى جامعة كارنيجي ميلون، حيث يعمل أستاذًا للممارسة في قسم أنظمة البرمجيات والمجتمع — وهو عنوان يُقرأ كملخص لمسيرته المهنية، لأن الممارسة كانت دائمًا هي الهدف.
مقياس العمل هو أن تأثيره غير منسوب. في مكان ما اليوم، سيصل مبرمج لم يقرأ أبدًا سطرًا من نثر بلوخ إلى واجهة بدلاً من فئة ملموسة، أو يرفض إنشاء بدائية تزامن يدويًا، لأن زميلًا أخبره ذات مرة بعدم القيام بذلك، بعد أن قرأه في عنصر مرقم في كتاب.
