وصلت لمقال يتحدث عن وضع أنظمة التشغيل اليوم، إن كنت تتابع ما أكتبه في مدونتي السابقة ستعرف أنني مهتم بالموضوع وأجد أنظمة التشغيل اليوم غير كافية ويمكن تحسينها بطرق مختلفة.
المقال وصلت له من خلال موقع هاكر نيوز، والنقاش هناك مفيد لكنه سلبي في رأيي، على إعجابي بموقع هاكرنيوز إلا أنه سلبي بدرجة كبيرة عندما يتعلق بمواضيع ناقدة للحواسيب وأنظمتها، كثير من المعلقين يركزون على ما هو خطأ أو غير منطقي وينسون ما هو صحيح ومنطقي، ولست أدعو إلى تجاهل الأخطاء وعدم نقدها، شيء من التوازن مطلوب لكي تجد الأفكار الجديدة والمختلفة فسحة وفرصة لكي تعيش.
وإليك ما يمكن أن يتفق عليه أكثر محبي التقنية: أنظمة تشغيل سطح المكتب يمكنها أن تتطور كثيراً لكن الشركات المسؤولة عن ذلك لا تهتم لأن السوق الواعد والرابح أكثر لها هو سوق الهواتف، وبالتالي من الطبيعي ألا ترى تطورات كثيرة في سطح المكتب، ومن ناحية أخرى البعض يرى أن أنظمة سطح المكتب بصورتها الحالية لا مشكلة فيها ولا تحتاج لأي تطوير جذري.
أعود إلى المقال، هناك أفكار أتفق معها:
أنظمة تشغيل سطح المكتب ثقيلة، هذه نقطة تبدو واضحة لي، أذكر كلمة لألن كاي يقول فيها أن ويندوز لوحده يحوي ما يقرب من 300 مليون سطر برمجي، أضف إليها 300 مليون سطر آخر لحزمة البرامج أوفيس، كل هذا سيستخدمه شخص ما لكتابة وثيقة بسيطة يرسلها بالبريد لشخص آخر أو يطبعها، هل هذا التعقيد كلها ضروري لإنجاز هذه المهمة؟ بالطبع أوفيس وويندوز يقدمان خصائص أكثر من مجرد كتابة وثيقة، لكن هذا ليس عذر هنا، عندما يتمكن الباحثون من تطوير نظام يمكنه تقديم نفس الخصائص بعدد أسطر برمجية أقل بكثير فليس هناك عذر للشركات.
وبالطبع لا أستثني مجتمع البرامج الحرة فأسطح المكتب جنوم وكيدي ثقيلة الوزن كذلك، لكن في مجال البرامج الحرة هناك خيارات أخرى أخف وزناً وهناك نسخ من توزيعات لينكس مصممة لكي تعمل على حواسيب قديمة.
هناك طبقات عديدة بين البرنامج والحاسوب، بعض تطبيقات اليوم التي تستخدم تقنيات الويب تستخدم محرك متصفح مع حزمة برمجة بتقنية جافاسكربت، بمعنى محركي جافاسكربت لتطوير تطبيقات سطح مكتب قابلة للتشغيل في أنظمة مختلفة، لكنها تطبيقات ثقيلة وكبيرة الحجم، نفس هذه التطبيقات يمكن أن تطور باستخدام تقنيات أنظمة التشغيل لتكون أكثر سرعة وكفاءة لكن ستخسر قابلية التشغيل على أنظمة أخرى، إلا إن طور المبرمج نسخاً لكل نظام تشغيل.
تطوير أنظمة سطح المكتب توقف، مطوري أنظمة التشغيل بسطوا الأنظمة لتصل إلى أكبر عدد من الناس ثم انتقل الناس إلى الهواتف الذكية كسوق جديد واعد فتوقفت الشركات عن تطوير أنظمة سطح المكتب، هذا ليس صحيح كلياً، ما زالت الأنظمة تطور لكنها تطويرات بسيطة مقارنة بما فعلته مايكروسوفت وأبل في التسعينات وأوائل الألفية الجديدة.
لا يمكن وضع ملف في مكانين أو أكثر، ولكي أكون أكثر دقة: ليس هناك طريقة عملية لوضع ملف في مكانين أو أكثر ولا تحتاج لبرنامج من طرف ثالث، أعلم أن الأنظمة الثلاثة توفر طريقة لفعل ذلك لكنها كلها غير عملية.
التطبيقات جزر معزولة عن بعضها البعض، التطبيقات تستخدم قواعد بيانات خاصة بها وملف إعدادات خاص ومحرك بحث لمحتوياتها، هناك كثير من تكرار الخصائص بين التطبيقات بدلاً من توفيرها على مستوى النظام ولكل المحتويات، التطبيقات لا يمكنها التواصل مع بعضها البعض.
قاعدة بيانات الوثائق، خاصية يريد رؤيتها كاتب المقال، وهي أن تكون كل المحتويات في قاعدة بيانات ويمكن لكل التطبيقات استخدام هذه القاعدة بدلاً من إنشاء قاعدة بيانات خاصة لكل تطبيق، المطور لا يحتاج تطوير قاعدة بيانات خاصة لتطبيقه، بل فقط التواصل مع واحدة يوفرها نظام التشغيل، بهذه الطريقة يمكن لتطبيقات عديدة أن تصل لبيانات مختلفة بسهولة، يمكن تطوير تطبيقات تتعامل مع البيانات على اختلافها، ويمكن للوثيقة الواحدة أن تكون في أكثر من مكان واحد في نفس الوقت.
التطبيقات يجب أن تكون وحدات مستقلة، ترسل الرسائل في ما بينها لإنجاز مهمات مختلفة، الكاتب استخدم كلمة “Modules” وترجمتها إلى وحدة، جزء واحد وفي الغالب ينجز عملاً واحداً، ويمكن جمع هذه الأدوات لصنع تطبيقات مختلفة، تطوير التطبيقات سيكون أكثر سهولة بهذه الطريقة لأن هناك أجزاء كثيرة جاهزة ويمكن استخدامها ومصدر البيانات موحد بين كل هذه الأجزاء.
نظام سطر أوامر حديث، سطر الأوامر واجهة قوية لكنها نصية في الغالب، كاتب المقال يريد واجهة رسومية يمكنها التعامل مع تقنيات اليوم وحقيقة أن حواسيبنا متصلة بالشبكة، أبل طورت مثل هذا النظام لكنها توقفت لاحقاً عن تطويره.
كل هذه الأفكار وغيرها قديمة، مع ذلك لا نجدها في أنظمة اليوم، لأن التغيير صعب أو حتى مرفوض في بيئة تتقبل ما لديها وتراه جيداً كفاية، كذلك لأنه لا يوجد ربح من مخاطرة كبيرة بكسر التوافق مع تطبيقات وبيانات الماضي لبناء شيء جديد أكثر كفاءة.
شخصياً استفدت من بعض هذه الأفكار، على الأقل أجد أن فكرة التطبيقات يمكنها أن تكون عملية إن صممت بالطريقة التي يذكرها المقال، ويمكن للنظام أن يبدو كأنظمة اليوم ويعمل بطريقة مختلفة تقنياً، بمعنى أنه يوفر واجهة مماثلة فيها تطبيقات وملفات لكنه يستطيع تقديم الكثير.
نقطة أخرى وهي أن أنظمة اليوم صممت لتناسب معظم الناس، وهذا يعني أن تكون سهلة ومبسطة حتى يستخدمها الجميع، بما في ذلك المحترفون والأشخاص الذين يقضون معظم ساعات اليوم في تصفح فايسبوك، وهذه مشكلة، الأنظمة لم تصمم لكي تكون مرنة ويستطيع الفرد منا أن يجعلها بيئة تحوي الأدوات التي يحتاجها فيكون حاسوب الشخص الذي يتصفح فايسبوك مختلفاً عن حاسوب شخص محترف في البرمجة أو التصميم، المحترف سيحوي حاسوبه أدوات تناسبه بحسب ما يحتاج، هذا صحيح نسبياً اليوم لكن الأدوات هنا هي تطبيقات كبيرة مثل فوتوشوب وبيئات تطوير البرامج.