الجمعة، 26 أغسطس 2016

كيف تنافس البرامج مفتوحة المصدر

بسم الله الرحمن الرحيم



نتيجة للحملة الاعلامية المصاحبة للبرامج المفتوحة المصدر, أصبحت تتمتع بدعم معنوى و مادى كبير.
المصادر المفتوحة أفكار شيوعية فى الأصل تم اسقاطها على عالم البرمجة. الشيوعية هى ان يكون كل شىء على المشاع, من اول الاراض, الى وسائل الانتاج, وصولا الى المرأة!!
و المصادر المفتوحة هى ان تكون الاكواد على المشاع تماما مثل المرأة فى الشيوعية.
استلهم اليساريون و الخضر (محبى البيئة) و غيرهم من المتحررين بعض مبادىء الشيوعية, و قد انسحب ذلك بشكل ماكر على البرمجة, فأرادوا تشييع الاكواد أيضا,
و للأسف فقد انسحب ذلك أيضا الى عالمنا العربى, و انى أشعر بشديد الاسف عندما ارى أفكارا مثل هذه و قد غزت مجتمعنا العربى المتدين, و الذى يقدس الملكية الشخصية,
لذا فان السؤال الذى يطرح نفسه بشدة, هل المصادر المفتوحة هى المستقبل؟ هل انتهت فكرة براءة الاختراع, و هل المبرمج الذى يريد حماية اكوده و افكاره الخاصة أصبح من الماضى؟
اذا كنت من مؤيدى المصادر المفتوحة أو تعتنق أفكارا شيوعية أو من الخضر أو من الهيبز, فابتعد عن هذا المقال,
اما اذا كنت رجلا من الطراز القديم و تحب الاكواد المحمية, فأرجو ان يعجبك هذا المقال.
1-
الابتكار:
هذه هى نقطة الضعف الاساسية فى البرامج مفتوحة المصدر, معظمها يتم كتابته كبديل رخيص (او مجانى غالبا) لبرامج اخرى مغلقة! البرامج المغلقة تقود المسيرة دائما, و هى من تبتكر الميزات الجديدة, التى يتم اضافتها فيما بعد الى البدائل مفتوحة المصدر.
بشكل أكثر قربا, من يقود الصناعة, Microsoft Office أم Open Office? من يبادر و من يتبعه؟
من يقود Photoshop أم Gimp؟
من يبادر IOS أم Android?
من يبتكر Delphi أم Qt؟
ببساطة حاول ان تقدم أفكارا جديدة مفيدة للمستخدم , ان البرامج مغلقة المصدر تقود الصناعة!
2-
الأخطاء و الاعتمادية :
عندما تكتب بديل مجانى, لا بأس من ان يكون برنامجك ملىء بالعثرات, و ان لا يعمل بشكل صحيح, لكن عندما تبيع برنامجك مقابل النقود, فان المستخدم يفترض ان برنامجك يجب ان يعمل بشكل صحيح فى مختلف الظروف.
اختبر برنامجك على عدة أنظمة, و لأوقات طويلة, راقب جيدا أداءه. اختبره فى جميع الظروف, اختبره بقسوه, ادخل له كل ما يخطر على بالك, يجب ان يتعامل البرنامج مع كل أخطاء المستخدم.
احترس من تسرب الذاكرة, و أخطاء وقت التشغيل, يجب ان تتوقع أى شىء من المستخدم, يجب الا تؤدى المدخولات الخاطئة الى توقف البرنامج, بل يجب ان يقوم بتنبيه المستخدم و ارشاده الى اخطائه.
3-
الوقت و سهولة الاستخدام:
احدى اكبر نقاط الضعف فى البرامج مفتوحة المصدر, انه يضيع الكثير من وقت المستخدم فى اعداده للعمل, و غالبا ما يتطلب ان يكون مستخدمه ذو خبرة.
سهل الامر على المستخدم, البرامج الاحترافية يجب ان تقدم للمستخدم ادوات سحرية سهلة , أو اعدادات افتراضية سريعة, و طالما كان ذلك ممكنا, يجب ان يكون الاعداد اوتوماتيكى. لا تطلب ابدا من المستخدم ادخال معلومة يستطيع البرنامج ان يتوقعها.
لكن يجب ان تترك فى الوقت نفسه المساحة للمستخدم الخبير لكى يجد نفسه فى اعداد برنامجك بالشكل الذى يفضله. يجب ان يكون برنامجك cutomizable لأقصى حد ممكن.
4-
برنامج الاعداد Installation:
الكثير من البرامج مفتوحة المصدر تأتى بدون برنامج اعداد أصلا, بل و الاسوأ بعضها يتطلب ان يقوم المستخدم بترجمتها بنفسه لاستخدامها!
برنامج الاعداد مهم جدا, بجب ان يكون سهلا, و ان يقوم بالعمل كله, و يصبح بعدها برنامجك جاهزا للعمل.
و يجب كذلك ان تضمن للمستخدم ارجاع حاسوبه للحالة الاصلية فى حالة قام بازالة البرنامج.
5-
قدرات البرنامج :
اذا كان برنامجك مغلقا و يكلف المال, فهو برنامج محترف بالضرورة, لذا يجب ان يدعم على الاقل كل ما تدعمه البرامج المنافسة, ادرس المنافسين جيدا, على الاقل, يجب ان يقوم برنامجك بكل ما يقومون به.
تذكر انت لا تكتب البرنامج لكى تثبت لنفسك أو للأخرين أنك تستطيع كتابة برنامج يفعل هذا او بغرض الدراسة او التسلية, بل تكتبه لكى يتم الاستفادة منه.
6-
التوافقية :
اذا سألتنى لما أصبحت انظمة الMS-DOS و الWindows و معالجات Intel هى الرائجة, لماذا هى فقط من خرجت منتصرة بين عشرات الانظمة المنافسة (و التى لم تكن سيئة بالمناسبة بل كان فيها ما هو أفضل من الدوس و الويندوز),
فى الثمانينات كان هناك العشرات من الاجهزة كل منها له نظام تشغيل خاص به , كان هناك كومودور و سنكلير و أبل و غيرهم.
الاجابة فى رايى : التوافقية!
لقد حرصت مايكروسوفت فى انظمة تشغيلها دائما و كذلك Intel كلما انتجت منتجا جديدا على ان يكون متوافقا مع ما قبله, حتى انك فى ويندوز 98 مثلا كنت تستطيع تشغيل برنامج كتب لل-DOS منذ عام 1981!
قارن ذلك مع أبل مثلا, و التى لا تتوافق انظمتها مطلقا مع بعضها البعض, فمثلا ماكنتوش لا يعرف شيئا عن أجهزة “أبل2″ بل ان أبل كانت تنتج فى السابق جهازين لا يفهمان بعضهما البعض Apple IIGS و Apple Macintosh!
ليس هذا فقط, بل ان تحديث نسخة واحدة بين نظام ماكنتوش و الذى يليه كفيل بتدمير كل التطبيقات السابقة, و يجب على المطورين ان يتوافقوا مع النظام الجديد.
أما لينكس فالحال أسوأ بكثير, ان فوضى توزيعات اللينكس خلقت كابوسا جديدا للمطورين, فما يعمل على لينكس ردهات قد لا يعمل بشكل صحيح على اوبونتو مثلا,
و الأسوأ من ذلك, ان بعض توزيعات اللينكس تختفى تماما و تصبح فى خبر كان!
عندما تطور برنامجك لا تهدم كل شىء فعلته فى السابق, يجب ان تضمن للمستخدم ان ملفاته القديمة لن تضيع, و انه يستطيع الاحتفاظ بعمله و فى الوقت نفسه يستمتع بالمميزات الجديدة التى أضفتها.
6-
طبيعة البرامج المفتوحة المصدر :
البرامج المفتوحة المصدر بعضها يكتبها الهواة, و بعضها تكتب كتدريب فى الجامعة, سواء هذا او ذاك لا خوف منهم على الاطلاق.
بعضها يقوم علي كتابته شركات.
لا تصدق الدعاية المصاحبة,
يكتب السذج من الصحافيين الذين يعملون فى صحافة التكنولوجيا (و الذين لا يمتون لعالم الحاسوب بصلة) ان المصادر المفتوحة تمكن المستخدم من الاطلاع على الكود و تعديله بحسب احتياجاته!!!!
هذا الكلام لا أساس له من الصحة, من الناحية العملية لا يمكن لغير المبرمج ان يقوم بتعديل كود ضخم, حتى بعض المبرمجين يجدون صعوبة فى تتبع اكواد الاخرين.
بل ان معظم من يقومون بالعمل على الاكواد مفتوحة المصدر مبرمجون يتقاضون مرتباتهم.
هل قام مبرمج هاوى بالتعديل على كود اندرويد مثلا؟! هل سمعت عن احد اصدقائك قام بابتداع نسخة خاصة به من نظام لينكس؟! ام ان “اوبونتو” و “سوس” و “ماندريك” هى نسخ طورت من قبل شركات بهدف الربح.
هل تعتقد ان لينكس مثلا قام به طالب طموح اسمه لينوس توريفالدى؟! خطأ,
لينوس توريفالدى قام بكتابة نواة بدائية لنظام على قاعدة POSIX, و يمكن تنزيل النسخة الاولية و الاطلاع عليها. و هى لا تتعدى البضعة كيلوبايتات و مليئة بتعليقات طريفة من عينة “لا اعرف ما هى الطريقة الصحيحة لفعل ذلك لكن لحسن الحظ ما كتبته يعمل!”.
تدور فى مخيلة البعض أفكار لطيفة عندما يفكرون فى المصادر المفتوحة عن الشركة الصغيرة التى تستطيع قهر مايكروسوفت أو اوراكل, انها نفس الفكرة الرومانسية ذاتها (سوف نقيم عرضا فى الحظيرة!).
ليس الأمر كذلك, المصادر المفتوحة تطورها أيضا شركات هادفة للربح, و ليس الاف المطورين حول العالم اجتمعوا على حلم واحد كما يروج!
7-
نحن الأفضل!
هل تشعر بالاحباط, كلما تحدثت مع أصدقائك المبرمجين و يسترسل فى الحديث الهلامى عن “ثبات اللينكس” ذو القدرات الغريبة أو عندما “يرزعك” اخبارا بائسة مثل ان وكالة الامن الفضائى الاثيوبية تستخدم اللينكس فى عملياتها اليومية أو أشياء من هذا القبيل!
كم مرة سمعته يرجوك ان تترك الفيجوال سى++ أو الدلفى و تنتقل الى QT مثلا دون ان يشرح لك لماذا؟
هل تراه يحدثك عن فايرفوكس أو جوجل كروم بانبهار و يحدثك عن سرعتهم الرهيبة فى مقابل انترنت اكسبلورر السلحفاة (لم افهم حتى الان ما معنى متصفح بطىء لأن وصلة الانترنت لدى كفيلة بقتل عزيمة اى متصفح!)
لا تشعر بالاحباط, فأى مبرمج محترف يعرف ان البرامج المغلقة تفوقت فى كل ميدان و كل مجال على منافسيها مفتوحى المصدر.
يجادل محبو اللينكس بكلام هائم و غير علمى من نوعية ان لينكس اكثر ثباتا, أكثر استقرار, أكثر امنا, و يدللون على ذلك بأنه ينتمى الى عائلة اليونيكس (أى يلتزم بقواعد الPOSIX),
هذا الكلام جيد لو قيل منذ 15 سنة, لكن الPOSIX الان اصبح قديما و لا يرقى الى مرتبة انظمة Windows NT الحديثة.
معظم من يتحدثون عن الويندوز يتحدثون عن windows 9.x و هو عبارة هجين من الدوس مع كيرنل و واجهة رسومية, و يعتبرون ان أى نظام متوافق مع POSIX Unix Standards هو نظام قاعدته قوية.
الPOSIX انتهى كتصميم منذ زمن, و الWindows NT تجاوزه بمراحل كبيرة,
الWindows NT نظام غنى بالنسبة للمبرمج, فالAPI الخاصة به غنية جدا و تغطى كل شىء تقريبا, اضافة الى ان الويندوز هو الأول دائما فى دعم الهاردوير الحديث (هى المهمة الأولى لأى نظام تشغيل) و يأتى نظام اللينكس متأخرا فى هذه النقطة بالذات.
النقطة الأهم, و التى لا يعرفها الكثيرون أن الويندوز هو النظام الأكثر أمانا بين الانظمة المتاحة فهو الوحيد الحاصل على شهادة ال National Security Agency (NSA) C2 security level.
عندما كتب الWindows NT كان الPOSIX موجودا حتى ان الويندوز حمل فى طياته دعم فرعى للPOSIX, و الأن Windows NT و خاصة الXP و الWindows 7 يتجاوزون معظم الانظمة بأشواط.
طبعا ناهيك عن ان الويندوز هو الأكثر انتشارا, معظم الاحصائيات تشير ان الويندوز يسيطر على 90% من الحواسيب, يليه الماك او اس ب6%, و فى المؤخرة اللينكس ب1%.
قارن بين OpenOffice و Microsoft Office أو Photoshop و Gimp لتعرف انه لا وجه للمقارنة!
أذكر اننى حاولت فتح ملف متوسط الحجم بواسطة OpenOffice فاستهلك ما يقارب النصف ساعة لقراءته! و طبعا كان التعديل فيه ضربا من الخيال و اعادة حفظ التعديل هو أمر بعيد المنال!
احدى المبرمجين أخبرنى انه عمل ذات مرة على مترجم gcc, ثم استطرد ضاحكا كانت ميزته الوحيدة انه يترك لى الفرصة للنزول و تدخين لفافة تبغ ريثما ينتهى من ترجمة الكود!
أعتقد ان هذا المترجم لا يصلح فى شركة تتيح لموظفيها التدخين فى مكاتبهم.
لى تجربة سيئة أيضا مع Dev c++ و WxWidgets, هل جربهم احدكما؟ هل عمل بشكل صحيح؟!
الحقيقة ان WxWidgets لم يعمل مطلقا بشكل صحيح معى, و كان الكود البسيط الذى كتبته كتجربة يترجم فى مرة و المرة الأخرى لا يترجم مطلقا! ثم انتهى الامر عندما رفض الwxWidgets العمل مطلقا و لم تعد نافذته المبجلة مفتوحة المصدر تفتح أصلا!
من أفضل!!!
المصادر المغلقة:
Bill_Gates_in_WEF_%2C2007.jpg
بيل جيتس, رئيس مجلس ادارة شركة مايكروسوفت, من أكبر أثرياء العالم, متزوج من “ميلندا جيتس” و يعيش حياة عائلية مستقرة, له 3 اولاد.
المصادر المفتوحة :
Richard_Matthew_Stallman.jpeg
ريتشارد ستالمان, رئيس مؤسسة المصادر المفتوحة Free Open Source Foundation.
لا يمتلك هاتف نقال, أشعث, من الخضر, شيوعى, لم يتزوج!