مشكلة لينكس الدائمة
لينكس هو أشهر سوفت وير مفتوح المصدر حتى الآن. بدأ مشروع نظام لينكس ليناس تورفالدس (يُنطق أيضاً لينوس تورفالدس). لينكس هو نواة لمجموعة ضخمة جداً من أنظمة التشغيل التى تعتمد عليه وكل نظام تشغيل من هذه الأنظمة يُسمى توزيعة (توزيعات لينكس) مثل أوبنتو، لينكس منت، آرش لينكس، جنتو، دبيان، إلمنترى أو إس،.. وغيرها المئات من توزيعات لينكس.
ولكن لا يستخدم هذا النظام عدد كبير من الناس! وغالباً مستخدمى أنظمة لينكس هم من مهندسى الشبكات والمبرمجين! ومن النادر أن تجد موظف عادى فى أى مجال آخر يستخدم أحد توزيعات لينكس. بدأ هذا الأمر فى التغير فى الثلاث سنوات الماضية (2016، 2017، و2018) ولكن لم يصل الأمر إلى رقم جيد فى المنافسة حتى الآن!
كما ترى فى الصورة السابقة فإن كل توزيعات لينكس لا تتعدى الـ 2% من كل أنظمة التشغيل المكتبية المستخدمة فى كل الحواسيب المكتبية والمحمولة (لابتوب).
لماذا لم ينتشر استخدام نظام لينكس رغم أنه مجانى؟!🤔 🔗
نظام لينكس به العديد من المميزات مثل أنه من أنظمة يونكس (Unix-based OS)، ومجانى، ومفتوح المصدر (Open Source)، وسريع الإستجابة، وآمن بشكل عام، .. والكثير من المميزات التى يصعب كتابتها كلها هنا. ولكن..
المشكلة الأولى: نظام تحزيم البرامج فى لينكس 🔗
ولكن ليس هناك نظام اسمه لينكس! لينكس هو نواه نظام التشغيل، وموجوده فى مئات أنظمة التشغيل المبنية على لينكس (توزيعات لينكس). بسبب هذه التقسيمة الشديدة فى أنظمة التشغيل نشأت الكثير من الاختلافات بين توزيعات لينكس أهمها الإختلاف فى برنامج ادارة الحزمة (package manager) وهى أسوأ شئ حدث فى أنظمة لينكس!
كل توزيعة بها على الأقل مدير توزيعة واحد على الأقل! مشكلة وجود برامج مختلفة ﻹدارة التوزيعات جعلت من الصعب على المبرمجين كتابة برامج تعمل بشكل جيد على كل أنظمة لينكس مما ساهم فى تقليل عدد البرامج التى يحتاجها المستخدم العادى!
المشكلة الثانية: مجانى فقط 🔗
هذه من أكبر المشاكل التى يواجهها مجتمع لينكس بشكل عام وهو ضرورة مجانية البرامج! أنا -شخصياً- أحب البرامج مفتوحة المصدر ﻷنها تساعدنى فى تطوير مهاراتى كمبرمج وتجعلنى متأكد من أمان البرنامج الذى استخدمه. ولكن مجانية البرامج الإحترافيه أمر غير واقعى!
من الواقعى أن تصمم برنامج ﻹستعراض الصور، وتنشره مجاناً على نظام تشغيل معين. ولكن ليس من الواقعى أن تصمم برنامج تعديل صور احترافى لنظام تشغيل محدد وتنشره مجاناً! البرامج الإحترافيه التى تُستخدم فى العمل والوظائف المختلفه من الطبيعى أن تكون مدفوعة ﻷنها مخصصة للعمل والشركات والمبرمجين والمصممين الذى عملوا على اتمام البرنامج يجب أن يحصلوا على المال الكافى لهم لكى يستمروا فى تطوير البرنامج وتسريعه وتقويته واختراع افكار جديده لتسهيل العمل على البرنامج..
هناك بعض البرامج الإحترافيه المجانية مثل محرر الصور جمب (GIMP) ولكنه بشكل واقعى ليس فى قوة برنامج أدوبى فوتوشوب (Photoshop) إطلاقاً! أنا استخدمت كلا البرنامجين ويكمننى اتمام أكثر من 90% من نفس التعديلات التى فعلتها على فوتوشوب على جمب ولكن فوتوشوب يتفوق كثيراً على جمب! (مع العلم أنى استخدم برنامج جمب فقط حالياً ﻷنى لا استخدم إلا نظام أوبنتو فقط).
ليس من الواقعى أن يجتمع مبرمجين ليصمموا برنامج تحرير فيديو متخصص وسهل وسلس وقوى وسريع وجميل، ويستمروا فى تحسينه وتحديثه ولا يحصلوا على أى أموال إطلاقاً ﻷنه البرنامج مجانى! هذه البرامج الإحترافية يجب أن تكون مدفوعة طالما المستخدم يعمل عليها وليس مجرد استخدام شخصى..
المشكلة الثالثة: كثرة توزيعات لينكس 🔗
وجود الكثير من التوزيعات ساهم فى تشتيت المطورين بشكل كبير، ولا يقوم بالتطوير ﻷنظمة لينكس إلا المطورين المحترفين ﻷن الأمر صعب بشكل كبير..
هناك حالياً جهود لتسهيل تطوير البرامج ﻷنظمة لينكس عن طريق توحيد نظام تحزيم البرامج مثل نظام snap ونظام flatpak وظهور البرنامجين أيضاً شئ محزن أيضاً ﻷن الجهود موزعه على نظامين وليس نظام واحد وهذه تفرقة مما يجعل التطوير ﻷنظمة لينكس لا يزال صعب!
الإنشغال بإنشاء توزيعات جديدة بفلسفات ومبادئ جديدة يعمل على زيادة التشتت والتخبط من جانب المستخدمين! ولكن الأفضل هو الإنشغال بإنشاء وكتابة برامج احترافيه مدفوعة لنظام لينكس.. ﻷن هناك الكثير من البرامج الإحترافية المتخصصة التى تنقص فى بيئة لينكس مثل تحسين برنامج جمب المتخصص فى تحرير الصور، تطوير برنامج احترافى لمونتاج الفيديو، تحسين برنامج بلندر للتصميم ثلاثى الأبعاد، تحسين برنامج دارك تيبول (darktable) المتخصص فى تحسين الصور، انشاء برامج المحاسبة الإحترافية، كتابة برنامج ادارة مخازن، تحسين برنامج أوداسيتى (Audacity) لتعديل الصوتيات، انشاء برنامج تحريك و animation احترافى، .. والكثير من البرامج التى يحتاجها مستخدمى لينكس الذين يريدون أن يؤدون عملهم بسهولة.
المشكلة الرابعة: دعم أنواع كثيرة جداً من الهارد وير 🔗
دعم الكثير من أنواع الهارد وير هى ميزة أدت إلى عيب كبير فى أنظمة لينكس. بسبب تنوع الهارد وير الذى يعمل عليه لينكس أصبح عدد الأسطر البرمجية فى لينكس كيرنيل كثير جداً مما يجعله يستهلك رامات بشكل أكبر ويجعل النظام يُبطئ بمرور الزمن والتحديثات التى تُزيد الكود، بالإضافة إلى صعوبة تحسين النظام لهارد وير معين من حيث السرعة والكفاءة..
أنا أرى أنه من الأفضل دعم بعض أنواع الهارد وير، والتركيز على تحسين نظام التشغيل وتسريع الإستجابة، وتحسين ادارة الرامات والعمليات، وتحسين استهلاك البطارية، وتحسين أداء العمليات فى المعالج وخوارزميات المهام المختلفة فى النظام،.. مما يجعل لينكس منافس قوى فى عالم أنظمة التشغيل!
المشكلة الخامسة: نقص ألعاب الفيديو، والبرامج الإحترافية، والبرامج التجارية 🔗
عدم الإهتمام بألعاب الفيديو على أنظمة لينكس، وعدم الإهتمام بتطوير البرامج المتخصصة للشركات والموظفين للعمل عليها على أنظمة لينكس. هذه أحد أهم الأسباب التى أدت إلى عدم استخدام بعض الناس لأنظمة لينكس.
المشكلة السادسة: صعوبة تثبيت البرامج بدون انترنت 🔗
من السهل أن تقوم بتثبيت البرامج فى حالة وجود إنترنت، إما من خلال مستودع التطبيقات (app store) أو من خلال التيرمينال عن طريق أوامر معينة مثل apt install مثلاً.
ولكن فى حالة عدم وجود انترنت، سيكون الأمر صعب وخاصةً إن كان البرنامج يحتاج إلى برامج أخرى لكى يعمل (dependencies) مما يجعل الأمر صعباً جداً على كل المستخدمين وخاصةً على المستخدم البسيط..
المشكلة السابعة: التركيز على واجهة سطر الأوامر 🔗
أنا شخصياً أحب واجهة سطر الأوامر (CLI) جداً ﻷسباب كثيرة أهمها القوة والسرعة وقلة الإستهلاك. ولكن المستخدم البسيط لابد أن لا يُجبر على استخدام واجهة سطر الأوامر أثناء تعامله مع لينكس.
التركيز على واجهة سطر الأوامر يجعل استخدام أنظمة لينكس صعب على كل الناس ماعدا مهندسى الشبكات والمبرمجين فقط!
المشكلة الثامنة: تحتاج إلى تعليم 🔗
التعامل مع أنظمة لينكس يحتاج إلى تعليم، وكلما احتجت اجراء شئ جديد لابد أن تتعلمه أولاً فربما يكون الأمر ليس كما توقعته. هذا الأمر دائم فى أنظمة لينكس فلابد أن تتعلم نظام الملفات مثلاً (File System).
أتمنى أن تتغير الأمور ويصبح تركيزنا على انشاء وتطوير البرامج، وليس التوزيعات. ونركز على تسهيل التعامل مع نظام التشغيل لكى يستطيع كل الناس التعامل مع النظام. القبول بوجود برامج احترافية مدفوعة تعمل على لينكس هى أحد أهم الخطوات لتطور وانتشار لينكس بشكل كبير (ﻷن نقص هذه البرامج هو أول سبب فى عدم انتشار لينكس). أراكم فى موضوع آخر هنا على موقع أبانوب حنا للبرمجيات.