مفارقة بايثون
أغسطس ٢٠٠٤
في حديث أخير لي، قلت شيئًا أزعج الكثير من الناس: أنه يمكنك توظيف مبرمجين أذكى لمشروع بايثون مقارنة بمشروع جافا.
لم أقصد بذلك أن مبرمجي جافا أغبياء. بل قصدت أن مبرمجي بايثون أذكياء. إن تعلم لغة برمجة جديدة يتطلب الكثير من الجهد. والناس لا يتعلمون بايثون لأنها ستوفر لهم وظيفة؛ بل يتعلمونها لأنهم يحبون البرمجة حقًا وغير راضين عن اللغات التي يعرفونها بالفعل.
وهذا يجعلهم بالضبط نوع المبرمجين الذين يجب أن ترغب الشركات في توظيفهم. ومن هنا تأتي ما سأسميه، لعدم وجود اسم أفضل، مفارقة بايثون: إذا اختارت شركة ما كتابة برامجها بلغة غامضة نسبيًا، فستتمكن من توظيف مبرمجين أفضل، لأنها ستجذب فقط أولئك الذين اهتموا بما يكفي لتعلمها. وبالنسبة للمبرمجين، فإن المفارقة أكثر وضوحًا: اللغة التي يجب تعلمها، إذا كنت تريد الحصول على وظيفة جيدة، هي لغة لا يتعلمها الناس لمجرد الحصول على وظيفة.
فقط عدد قليل من الشركات كانت ذكية بما يكفي لإدراك ذلك حتى الآن. ولكن هناك نوع من الاختيار يحدث هنا أيضًا: إنها بالضبط الشركات التي يفضل المبرمجون العمل لديها. جوجل، على سبيل المثال. عندما يعلنون عن وظائف برمجة جافا، فإنهم يريدون أيضًا خبرة في بايثون.
صديق لي يعرف تقريبًا جميع لغات البرمجة المستخدمة على نطاق واسع يستخدم بايثون في معظم مشاريعه. يقول إن السبب الرئيسي هو أنه يحب شكل الكود المصدري. قد يبدو هذا سببًا تافهًا لاختيار لغة على أخرى. لكنه ليس تافهًا كما يبدو: عندما تبرمج، فإنك تقضي وقتًا أطول في قراءة الكود أكثر من كتابته. أنت تحرك أجزاء من الكود المصدري كما يفعل النحات مع كتل الطين. لذا فإن اللغة التي تجعل الكود المصدري قبيحًا تكون مزعجة للمبرمج الدقيق، كما سيكون الطين المليء بالكتل للنحات.
عند ذكر الكود المصدري القبيح، سيفكر الناس بالطبع في Perl. لكن القبح السطحي لـ Perl ليس من النوع الذي أعنيه. القبح الحقيقي ليس بناء جملة قاسٍ، بل الاضطرار إلى بناء البرامج من مفاهيم خاطئة. قد تبدو Perl وكأنها شخصية كرتونية تتلفظ بكلمات نابية، لكن هناك حالات تتفوق فيها Perl على بايثون من الناحية المفاهيمية.
على الأقل حتى الآن. كلتا اللغتين بالطبع أهداف متحركة. لكنهما تشتركان، إلى جانب Ruby (و Icon، و Joy، و J، و Lisp، و Smalltalk) في حقيقة أنهما تم إنشاؤهما بواسطة أشخاص يهتمون حقًا بالبرمجة ويستخدمونها. وهؤلاء يميلون إلى أن يكونوا هم من يفعلونها بشكل جيد.