داخل عبادة مبرمج هاسكل
وفي الوقت نفسه، فهمت على الفور تقريبًا لماذا كانت هاسكل – ولا تزال – تعتبر لغة تحظى بالإعجاب أكثر من استخدامها. وحتى أحد أبسط مفاهيمها، ألا وهو “الموناد”، قد أنتج صناعة منزلية من الشرح والقياسات ومقاطع الفيديو. هناك تفسير معروف بأنه غير مفيد، ومشهور بما يكفي ليتم إكماله تلقائيًا بواسطة Google، وهو: “الموناد هو مجرد أحادي في فئة الوظائف الداخلية”.
اللغة أيضًا محتقرة أكثر من استكشافها. كتب ستيف ييجي، وهو مدون مشهور في العام الماضي، مقالًا ساخرًا حول كيف تمكن مجتمع هاسكل أخيرًا من العثور على “مبرمج الصناعة الذي يهتم بهاسكل”. بالنسبة للمبرمجين مثل Yegge، تعتبر هاسكل مرادفًا لنوع من اللغة غير العملية والمفرطة في التفكير مع القليل من قابلية التطبيق في الصناعة.
لكن ما لم يفهمه ييجي هو أن استخدام هاسكل نادرًا ما يكون قرارًا عمليًا. إنها فكرة فكرية، وحتى جمالية. في جوهرها، تشترك هاسكل مع أفلام تشارلي كوفمان أكثر من لغات البرمجة الأخرى: دماغية للغاية، شاذة بشكل ساحر، وذوق غريب؛ موضع تقدير من قبل أولئك الذين يعرفون ويحكم عليهم الغرباء على أنهم طنانون. يمكن القول أن هاسكل هي عبادة كلاسيكية.
أن هاسكل أبدا يجسد اعتمادها على نطاق واسع حقيقة متناقضة في هندسة البرمجيات: لغات البرمجة العظيمة ليست دائمًا رائعة للبرمجة.
إن لغة هاسكل ليست بطبيعتها أكثر صعوبة في التعلم من لغة مثل C، لكن اللغتين تطرحان تحديات مختلفة. الكتابة بلغة C تشبه الهندسة الدقيقة، وتتطلب نوع الاهتمام الذي يتطلبه صانع الساعات الماهر. لكن كود هاسكل هو في الحقيقة تعبيرات رياضية على شكل كود. لغة C هي لغة المهندس المثالية. هاسكل عالم رياضيات خالص.
لا تتداخل دائمًا قدرات المهندس الجيد وعالم الرياضيات الجيد. السر غير المكتنز في هذه الصناعة هو أن معظم المبرمجين ليسوا جيدين في الرياضيات أو المنطق كما قد تعتقد. هذا جيد في الغالب. ففي نهاية المطاف، قد يصبح العديد من الأطباء علماء أحياء جزيئية فقراء، وقليل من المحامين هم فلاسفة قانونيون، والأغلبية العظمى من حاملي درجة الماجستير في إدارة الأعمال لا يعرفون شيئاً عن الاقتصاد القياسي. لكن هذا يعني أن القليل من المبرمجين يمكنهم إتقان هاسكل حقًا. وهذا يشملني بالطبع، الذي تضعف ساقاي عند رؤية تعبيرات مثل “F-coalgebra” و”typeclass metaprogramming”.
ومع ذلك، عندما أفكر في هاسكل، يتبادر إلى ذهني سطر من نثر مارتن أميس: “الأولوية التي يعطيها للأسلوب على المادة”. مبرمجو هاسكل متعصبون للأسلوب، وليس هناك ما يستحق الاعتذار عنه. في صناعة تركز غالبًا على المنفعة والنفعية، لا ينبغي لمجتمع هاسكل أن يشعر بأنه ملزم باستحضار أدلة على فائدته. وبدلاً من ذلك، يتعين عليها أن تجيب ببساطة: ما هي مشكلة التمارين الفكرية عديمة الفائدة؟
لأن الشيء المتعلق بالتمارين عديمة الفائدة هو أنها لا تبقى عديمة الفائدة لفترة طويلة. وحتى عندما تجنب “مبرمجو الصناعة” هاسكل، انتبه مصممو اللغة إلى ذلك. في السنوات الأخيرة، أصبح نموذج هاسكل رائجًا بسبب الفوائد التي يقدمها: جعل فئات معينة من الأخطاء مستحيلة حسب التصميم، مما يجعل صحة البرنامج أكثر قابلية للإثبات، وتمكين الحساب المتوازي السهل. بعض التحديثات الأكثر توقعًا والموجودة في الإصدارات الجديدة من اللغات الضرورية هي تلك المستوحاة من البرمجة الوظيفية. في النهاية، تم سماع نداء باكوس المناهض لفون نيومان. تم تحرير البرمجة.