المشاريع مفتوحة المصدر في مصر - مقدمة
المقال ده يعتبر الـ speaker notes للـ slides دي وكتبتها زي ما بقولها وأنا بعرض الـ slides فمعذرة على إستخدام العامية والإنجليزية كتير في وسط الكلام.
يعني إيه open-source
كلمة open-source بدون سياق كدة بتترجم في دماغ اللي بيسمعها لـ open-source software زي Linux و Android، بس الموضوع أكبر من كدة شوية. تعريفها الأدق هو
أي منتج متاح بدون قيود لإمكانية تعديله أو إعادة توزيعه.
هنا فيه كذا نقطة:
- المنتج هنا قد يكون برنامج كمبيوتر أو دائرة إليكترونية أو معدة معينة أو أغنية أو موسيقى أو مشروب أو مقال زي ده، أو حتى الـ slides اللي بنتكلم منها.
- متاح بدون قيود بمعنى إن معلومات مصدر المنتج متاحة للعامة ببلاش. بس ده لا يعني إن المنتج نفسه ببلاش.
- المصدر يعني المعلومات اللي ممكن أي حد يحتاجها علشان يعيد إنتاج المنتج ده، زي الـ code أو تعليمات التركيب أو الـ schematic أو الوصفة وكل الـ documentation اللي تسهل الإستخدام وإعادة بناء المنتج ده.
- التعديل قد يكون علشان يناسب إستخدام معين أو تغيير الهدف من المنتج ككل أو إننا نزود feature جديدة. وقد يكون الهدف هو إعادة التوزيع علشان نغير الاسم مثلاً ويبقى منتج منفصل يتباع أو لتقديم خدمات تانية جنبه بفلوس.
درس تاريخ صغير
أول حاجة نقدر نقول عليها إنها بقت open-source هي تصميم الـ two-stroke engine في 1911 لما هنري فورد كسب قضية ضد ALAM (جمعية مصنعي السيارات المرخصين) اللي كانت معاها حقوق برائة الإختراع وكانت بتجبر الشركات تنفذلها اللي هي عاوزاه في مقابل إنها متقاضيهمش لما يستخدموا التصميم.
في الخمسينات والستينات بردو كان الكمبيوترات مش متاحة غير للجامعات والمراكز البحثية في الشركات الكبيرة والفترة دي كان الناس بتنشر الـ software اللي بيتعمل على سبيل التعاون ونشر المعرفة. كمان ساعتها مكانش فيه حاجة زي archtictures ثابتة للكمبيوترات فكان الأسهل إن الناس تنشر الـ code علشان الناس الناحية التانية يعرفوا يستخدموه. وطريقة التواصل ساعتها كان البريد عادي أو التليجراف أو المجلات العلمية لو هيتنشر على مستوى كبير. لحد ما اتعمل ARPANET في 1969، واللي كانت طفرة كبيرة وسهلت التواصل بين الجهات دي وسهلت التعاون بينهم بشكل كبير جداً.
بس في الفترة اللي قبل التمانينات ومع إنتشار الكمبيوتر الـ openness ده بدأ يقل وده لكذا سبب:
- صناعة الـ software بدأت تكبر بشكل كبير وبقى تكلفة التطوير من معدات ومرتبات مبرمجين بتشكل عبء على الشركات.
- نتيجة للنقطة اللي فاتت شركة زي IBM كانت بتضطر إنها تزود سعر أجهزة الكمبوتر علشان البرامج اللي عليه. لحد ما إترفع عليها قضية في 1969 وكان نتيجتها إن IBM بدأت تبيع البرامج منفصلة عن الأجهزة.
- في 1973 شركة AT&T نزلت Version 4 من نظام UNIX ودي كانت مكتوبة بالـ C اللي ساعتها كانت أكتر لغة برمجة high level. قبل كدة AT&T كانت بتوزع UNIX ببلاش على الجامعات بس منغير رخصة لإعادة التوزيع. بعد Version 4 بدأت تضيق على المستخدمين في الـ updates والـ patches لحد 1980 لما وقفت التوزيع المجاني وبدأت تبيع رخصة لنظام التشغيل.
- اللي زود الموضوع CONTU (لجنة الاستخدامات التكنولوجية الجديدة للمصنفات المحمية بحقوق الطبع والنشر) في 1974 أقرت إن الـ code في البرمجيات يتصنف كعمل محمي بحقوق الطبع والنشر.
بعدها بدأت زي حركة مقاومة كدة بدأها ريتشارد ستالمان في 1983 لما عمل GNU Project اللي كان عاوز يعمل نظام تشغيل موازي لـ UNIX بس يكون مجاني ومفتوح المصدر. وبدأ فعلاً يعمل برامج كتبر موازية لبرامج UNIX وعلشان ينشر الموضوع عمل Free Software Foundation في 1985. بس اللي عمل فرق كبير لينس تورفالدز لما عمل Linux kernel في 1991 وبقى عندنا نظام تشغيل open-source بالكامل.
لحد هنا مكانش فيه حاجة بتقول صراحة معنى open-source ومعنى كلمة free. هل معناها إن الحاجة ببلاش ولا إنها مفتوحة المصدر لحد ما جه بروس بيرينز وعمل مبادرة سماها Open Source Initiative في 1998 ونشر الـ Open Source Definition اللي بيحدد إذا كانت الرخصة المنشورة مع أي برنامج دي بتقول هو مفتوح المصدر ولا لأ.
نرجع للـ hardware في أوائل الألفينات كان فيه موقع إسمه FreeIO وده كان قريب جداً من Instructables دلوقتي اللي بيتنشر فيه مشاريع وزي ما قلنا طريقة إعادة عملها أو إنتاجها. وفي منتصف الألفينات بدأت تظهر شركات الـ open-source hardware زي Sparkfun و Adafruit المشهورين دلوقتي. بس اللي حدد التاريخ فعلاً هو أول رخصة للـ open-source hardware في 2007 اللي عملها TAPR (Tucson Amateur Packet Radio Corporation) وهي كانت زي شركة تعاونية غير هادفة للربح لمشغلين الراديو الهواة. وبعدها CERN في 2011 عملت بردو open-source hardware license بإسمها. وأخيراً في 2012 تم إنشاء OSHWA (Open Source Hardware Association) اللي من أهدافها الأساسية منح شهادة للمشاريع الـ hardware إنها open-source، وزي OSI توضيح الفرق بين الرخصة مفتوحة المصدر وغيرها.
مبادئ الـ open-source
فيه حاجة كدة زي المذهب أو المبادئ اللي بيؤمن بيها المهتمين بالمشاريع مفتوحة المصدر متلخصة في حاجة إسمها The open source way وهي عبارة عن الكام نقطة دول:
- الشفافية بمعنى إن لما يبقى المصادر اللي محتاجينها متاحة قدامنا هنقدر كلنا نطور أكتر من شغلنا ومش هناخد وقت طويل في حل مشكلة معينة.
- التعاون بمعنى إننا ندي لبعض الفرصة للمساعدة والمشاركة في تطوير مشاريع مشتركة وده بردو هيخلينا نقدر نحل مشكلات ممكن لو واحد لوحده ميعرفش يحلها.
- التطوير السريع كل ما بدأنا نجرب حل بسرعة كل ما وصلنا لحل أسرع. حتى لو التجربة بتاعتنا فشلت في الأول، إننا نفشل بدري يخلينا نجرب حل تاني بدري.
- الشمولية علشان الأفكار الكويسة ممكن تيجي من أي مكان. وعلشان نشر المعرفة المفروض ميبقاش ليه علاقة بالعرق أو الجنس أو الدين أو أي تصنيف عنصري.
- المجتمعية اللي بتتكون لما مجموعة من الناس تتجمع حوالين هدف أو مشروع معين.
الفرق بين حق النشر Copyrights والرخص Licenses
الـ copyrights ده مصطلح قانوني بيقول مين اللي ليه الملكية الفكرية ومعاه حقوق النشر. الـ license هو المصطلح اللي بيوصف شروط إستخدام المنتج اللي صاحب حقوق النشر حاططها.
أمثلة للرخص غير الحرة
- سر صنعة أو trade secret ودي بتبقى للمنتجات اللي مش معروف طريقة عملها ومش متاح إستخدامها خارج نطاق الشركة اللي عاملاه. زي الـ algorithms بتاعة Facebook مثلاً. حاجة زي كدة مش بتبقى منشورة أصلاً.
- امتلاكي أو proprietary ودي بنشوفها في أغلب المنتجات عموماً، بنقدر نشتريها ونستخدمها بس منعرفش معمولة إزاي. أو ممكن منقدرش نعيد نشرها وده التطبيق العادي بتاع حقوق الملكية الفكرية.
- لغير الإستخدام التجاري أو non-commercial ودي بتسمح بإستخدام المنتج بس ميكونش الهدف منه التربح يعني منقدرش نبيعه تاني. زي رخصة JRL بتاعة شركة Sun الراحلة أو AFPL اللي بإختصار بتقول أدي الـ source-code ممكن تبص عليه بس متقدرش تستخدمه. للحاجات اللي مش software أشهر أنواع الـ license هي الـ Creative Commons Licenses ومنها الـ CC-BY-NC.
أمثلة للرخص الحرة/المفتوحة
- الـ copyleft ودي قلشة يعني على أساس إنها عكس الـ copyright ودي بتدي كل الحقوق للمستخدم ما عدا إنه يحول المنتج لـ proprietary. زي GPL أو الـ AGPL أو CC-BY-SA. والرخص دي بيتقال عليها بردو non-permissive licenses علشان بيبقى فيها شروط.
- الـ permissive licenses ودول الأشهر وبيزودوا على الـ copyleft إنها رخص بتسمح بإعادة الترخيص بس بتشترط ذكر المشروع الأصلي. زي MIT و Apache و MPL و CC-BY.
- أخيراً الـ public domain أو النطاق العام ودي المطور بيتنازل عن كل حقوقه في المنتج اللي هو بينشره لله وللوطن. زي WTFPL أو CC0 أو مجرد إنك تقول إنك بتهب المشروع ده للمنفعة العامة.
مزايا وعيوب المشاريع مفتوحة المصدر
المزايا والعيوب بتعتمد بشكل كبير على نظرتنا للأمور وحسب حالة ومرحلة كل مشروع. هنتكلم عن كل نقطة وليه ممكن تبقى ميزة وعيب إذا كنت مطور أو مستخدم لمشروع مفتوح المصدر:
- التكلفة حتى لو المنتج مش ببلاش أو تطويره محتاج فلوس فتكلفته هتبقى أقل بكتير في الأول. بس لما الموضوع بيكبر شوية ممكن تكلفة (كقطع أو ساعات عمل) التطوير أو الصيانة فيه تزيد بشكل كبير.
- الـ reliability والدعم لو مشروع مفتوح المصدر مشهور أو مستخدمينه كتير هتلاقي ليه مجتمع بيراجع وبيطور المشروع ولو فيه حد عنده مشكلة هيبقوا بيتسارعوا لحلها. وبناء على قوة الـ community ده النقطة دي هتبقى ميزة أو عيب.
- الإستدامة ودي بردوبتعتمد على قوة الـ community. لو المجتمع اللي حوالين المشروع قوي، تحركه لقدام أو فترة حياته مش هتبقى معتمدة على الشركة. لو المشروع مجذبس إهتمام الناس بشكل كويس هيبقى عمره قليل.
- الأمان بما إن المصدر متاح لكل الناس، عيوبه أو ثغراته هتبان بسرعة. بس من الناحية التانية هتتحل بردو بسرعة.
- سهولة الإستخدام في المشاريع مفتوحةالمصدر بتبقى معتمدة على تفضيلات المطور أكتر، أو وجهة نظره. بس من ناحية تانية أغلب المطورين بيعتمدوا على conventions أو معايير معروفة أو منشورة بشكل حر.
أهمية المشاريع مفتوحة المصدر لينا في مصر
الجزء ده معتمد بشكل كبير على رأيي الشخصي فياريت تاخدوا ده بعين الإعتبار.
في الوقت الحالي
عندنا في مصر عدد من الـ startups اللي بيشتغلوا في الـ IoT والـ wearables أو اللي بيعملوا 3D printers أو مكن أو بيستخدموا الـ digital fabrication. أغلب شغل الناس دي معتمد بشكل كبير على مشاريع فتوحة المصدر مشهورة. كمان معظم الكورسات في مجال الـ embedded systems أو الإلكترونيات أو حتى التصميم الميكانيكي بتعتمد على أدوات مفتوحة المصدر. زي مثلاً الـ development boards والبرامج والـ libraries اللي بيشتغلوا بيها.
حاجة كمان في موضوع الـ development boards إن بسبب سعرها العالي (زي الـ Arduino الأصلي)، بعض المصنعين بيعملوا clones تكون أرخص وحتى فيه نسبة منها بتتعمل هنا في مصر. وعلشان كدة بنقول إن الـ open-source عموماً مهم جداً عموماً وبالنسبة لينا خصوصاً في مصر دلوقتي.
في المستقبل
ده يعتبر ملخص للنقط اللي اتكلمنا فيها بس للتأكيد، المشاريع مفتوحة المصدر بتساعدنا في:
- تسريع عملية تطوير المنتج بتاعي عموماً
- تقليل تكلفة دخول السوق إلى حد ما. علشان لو بعمل مشروع مش هكون مضطر أشتري منتج كامل أبني عليه مشروعي. هبقى عارف إيه المكونات اللي محتاجها وهشتيرها بس.
- بتعمق المعرفة علشان إنت بتبدأ تشتغل على تطبيق جديد مش بتعيد إختراع العجلة.
- بتساعد الناس إنها تطور من مهاراتها أكتر، لإنه عارف الحاجة اللي شغال عليها معمولة إزاي، غير كدة بيبقى عارف ليه هو أخد القرارات اللي أخدها دي.
- بتخلي التركيز يكون على حل المشكلة الفعلية مش على بناء الأدوات أو تجهيز الـ framework اللي المطور هيشتغل بيها.
أمثلة لنماذج عمل لمشاريع مفتوحةالمصدر
- في الـ software
- بيع خدمة جانبية زي التدريب أو الدعم زي ما RedHat بتعمل مثلاً
- تطوير حلول مخصوصة أو تخصيص الـ software للشركات زي ERPNext
- تقديم خدمة hosting أو البيع بنموذج SaaS زي Wordpress مثلاً
- تقديم المشروع تحت رخصتين واحدة منهم open-source للنظام الأساسي أو open-core وتقديم بعض الـ plugins برخصة تجارية
- التبرعات أو العضويات أو الـ crowdfunding
- في الـ hardware
- بيع الـ hardware نفسه أو خدمات حواليه زي Arduino و Raspberry Pi
- تجميع kits زي Sparkfun و Adafruit
- تقديم hardware متخصص زي OpenROV والدعم الفني
- وكمان فيه بعض الشركات بتقدم خدمات الـ calibration لحاجات زي الـ SDR
أمثلة لمنتجات ناجحة
- في الـ development boards عندنا Arduino و Raspberry Pi
- حاجة زي الـ OpenROV دي غواصة بتشتغل عن بعد ممكن تستخدم لأعمال الصيانة أو استكشاف تحت الماء
- في مجال الـ security فيه Solokey و USB armory
- وطبعاً الـ 3D printers المشهورة زي Ultimaker و Prusa
أمثلة لشركات ناجحة
- اتكلمنا عن Adarfuit و Sparkfun ودول موردين مكونات وبيطوروا بردو hardware modules
- شركة Cosylab و CREOTECH بيعملوا control systems للمصانع
- شركة GL-Research بتعمل معدات علمية وطبية
- شركة SyncTechnology و Seven Solutions بيعملوا أدوات توقيت و timers للمجال الصناعي بردو
وفيه غيرهم كتير.
وعندنا أمثلة للـ communities زي Hackaday و Hackster.io و Instructables و EEVblog و All About Circuits و Dangerous Prototypes وغيرهم كتير.
أخيراً
الهدف من الـ presentation دي إننا نثير فضولكم شوية علشان تبدأوا تدوروا في الموضوع
وشكراً