بعد أربعين عامًا، أصبحت الحواسيب متاحة للجميع بشكل أكبر، غالبًا على حساب تحكم المستخدم النهائي على مستوى النظام. في العديد من الأجهزة، لا يوجد وصول إلى سطر الأوامر على الإطلاق، ويعود ذلك جزئيًا إلى تعارضه مع مصالح الشركات التي تُفضّل الأنظمة المغلقة ومتاجر التطبيقات.
معظم الناس اليوم لا يعرفون ما هو سطر الأوامر، فضلًا عن سبب رغبتهم في استخدامه. كما قال رائد الحوسبة آلان كاي في مقابلة عام ٢٠١٧: "لأن الناس لا يفهمون ماهية الحوسبة، يعتقدون أنهم يمتلكونها في هواتفهم الذكية، وهذا الوهم لا يقل سوءًا عن وهم أن لعبة 'Guitar Hero' تُضاهي الغيتار الحقيقي".
ليس المقصود بـ"الغيتار الحقيقي" الذي يتحدث عنه كاي هو واجهة سطر الأوامر (CLI) - ليس تمامًا. كان يتحدث عن طرق برمجة الحواسيب التي تُوفر قوة واجهة سطر الأوامر وتتجاوز كتابة البرامج في ملفات نصية. هناك اعتقاد سائد بين أتباع كاي بضرورة التحرر من قيود البرمجة النصية التي نعيشها منذ عقود.
من المثير تخيل مستقبل نبرمج فيه الحواسيب بطريقة مختلفة تمامًا. حتى اليوم، لا تزال جداول البيانات هي لغة البرمجة الأكثر شيوعًا، وتنتشر حركة البرمجة بدون كتابة أكواد بسرعة في محاولة منها لتلبية الطلب المتزايد على المبرمجين الموهوبين.
ومع ذلك، لا تزال واجهة سطر الأوامر، بقيودها القديمة وخصائصها غير المفهومة، هي الجانب الأكثر تنوعًا في الحاسوب. يُتيح لك هذا النظام كشفَ خبايا النظام، والاطلاع على ما يجري فعلاً، والتفاعل معه بأسلوب إبداعي بمستوى من التطور والعمق لا تُوفّره واجهات المستخدم الرسومية. وهو مُتاح على معظم أجهزة الكمبيوتر المحمولة، لأي شخص يرغب في تعلّمه. يُمكن استخدامه بشكل تفاعلي، أو بشكل آلي. كما أنه لا يتغير بالسرعة نفسها التي تتغير بها أجزاء النظام الأخرى. تكمن القيمة الإبداعية في استقراره.
لذا، ما دام هذا النظام مُتاحًا، علينا أن نسعى إلى تعظيم فائدته وسهولة الوصول إليه.
لقد تغيّر الكثير في طريقة برمجة أجهزة الكمبيوتر منذ تلك الأيام الأولى. كان سطر الأوامر في الماضي مُصمّمًا ليُلائم الآلة في المقام الأول: لم يكن أكثر من مُحاكاة تفاعلية (REPL) فوق منصة برمجة نصية. ولكن مع ازدهار لغات البرمجة التفسيرية للأغراض العامة، تقلّص دور البرامج النصية. أصبح سطر الأوامر اليوم مُصمّمًا ليُلائم المستخدم في المقام الأول: واجهة مستخدم نصية تُتيح الوصول إلى جميع أنواع الأدوات والأنظمة والمنصات. في الماضي، كان المُحرّر موجودًا داخل الطرفية - أما اليوم، فالطرفية غالبًا ما تكون جزءًا من المُحرّر. وقد شهدنا انتشارًا واسعًا لأوامر الأدوات المتعددة الشبيهة بـ Git. أوامر داخل أوامر، وأوامر عالية المستوى تُنفّذ سير عمل كامل بدلًا من وظائف مُفردة.
انطلاقًا من فلسفة يونكس التقليدية، ورغبةً منا في تشجيع بيئة سطر أوامر أكثر سهولةً ومتعةً، واستنادًا إلى خبراتنا كمبرمجين، قررنا أن الوقت قد حان لإعادة النظر في أفضل الممارسات ومبادئ التصميم لبناء برامج سطر الأوامر.
فلتحيا سطر الأوامر!
تغطي هذه الوثيقة فلسفة التصميم العامة، بالإضافة إلى إرشادات عملية. وتركز بشكل أكبر على الإرشادات لأن فلسفتنا كممارسين لا تقوم على الإسهاب في التنظير. فنحن نؤمن بالتعلم من خلال الأمثلة، ولذلك وفرنا العديد منها.
لا يتناول هذا الدليل برامج الطرفية بملء الشاشة مثل إيماكس وفيم. برامج ملء الشاشة مشاريع متخصصة، ونادرًا ما يُتاح لنا تصميمها.
كما أن هذا الدليل لا يُقيّد بلغات البرمجة أو الأدوات المستخدمة بشكل عام.
لمن هذا الدليل؟
لا يتناول هذا الدليل برامج الطرفية بملء الشاشة مثل إيماكس وفيم. برامج ملء الشاشة مشاريع متخصصة، ونادرًا ما يُتاح لنا تصميمها.
كما أن هذا الدليل لا يُقيّد بلغات البرمجة أو الأدوات المستخدمة بشكل عام.
لمن هذا الدليل؟
ليست هناك تعليقات:
إرسال تعليق