ما هو مفتوح المصدر (Open source)؟

ليست أي تعليمات برمجية متاحة مجانًا أو عامة مفتوحة المصدر، ولكن هناك مجموعة من الشروط التي يجب أن يندرج فيها الكود أو التطبيق الخاص بك، والتي تحددها OSI (مبادرة المصدر المفتوح) والتي يمكن رؤيتها هنا: The Open Source Definition - Open Source Initiative

هذا هو التعريف الفني المعروف والمفهوم للمصدر المفتوح.

يقوم OSI أيضًا بمهمة التحقق من صحة تراخيص البرامج مقابل تعريف المصدر المفتوح، مما يوفر مجموعة كبيرة من خيارات الترخيص الشائعة التي يمكنك استخدامها، وتعرف أنها مفتوحة المصدر، إذا كنت لا ترغب في بذل جهد لكتابة الترخيص الخاص.

هذه الصورة تعريف مفتوح المصدر من ريتشارد ستولمن مؤسس مشروع جنو (GNU).

لماذا البرامج مفتوحة المصدر أفضل من البرامج محتكرة؟

تستفيد مشاريع مفتوحة المصدر من مساهمات مجتمع واسع من المطورين، مما قد يؤدي إلى الابتكار السريع وتحسينات الميزات. تتناقض هذه البيئة التعاونية مع عمليات التطوير الأكثر تحكمًا للبرمجيات الاحتكارية (Proprietary).

يسمح انفتاح البرامج مفتوحة المصدر بإجراء عمليات تدقيق ومراجعات مستقلة للتعليمات البرمجية، والتي يمكن أن تكشف عن الثغرات الأمنية المحتملة. يمكن أن تؤدي هذه الشفافية إلى برامج أكثر أمانًا مقارنة بالبرمجيات الاحتكارية، حيث لا يمكن الوصول إلى المصدر البرمجي بشكل عام، مما يجعل من الصعب تقييم أمانها. و هنالك صعوبة ايضًا إذا حاول المطور أو المساهمين إضافة باب خلفي (backdoor) في البرمجية لأن يمكن إكتشافها لأن المصدر البرمجي موجود و الكل يراه، لكن من المهم ايضًا التأكد من الBinary (الملف الرقمي) مثل .exe الذي تم بناؤه من المصدر البرمجي. من الأفضل أن يكون البناء قابل للتكرار (reproducible build) لتفادي المشكلة المشهورة Trusting trust.

الكثير من البرمجيات المفتوحة المصدر تهتم بالخصوصية و لا تضع Telemetry أو برمجيات تتبُع، إذا أضافته تقدر الأنسحاب من خلال تعطّيل الToggle.

ما هو سوء الفهم؟

في المقام الأول فكرة أن أي توزيع عام للكود هو مفتوح المصدر. بالنظر إلى مشهد البرامج، وخاصة في مجال عروض SASS المستندة إلى الويب، أصبح من الشائع بشكل متزايد رؤية تراخيص “المصدر المتوفر” (Source Available) مستخدمة بدلاً من ذلك. هذه بشكل عام تراخيص توفر الوصول إلى التعليمات البرمجية المصدر ولكنها تأتي مع قيود إضافية. لنأخذ Elastic License 2.0 كمثال لترخيص “المصدر متاح”. على الرغم من وجود العديد من أوجه التشابه مع تراخيص المصادر المفتوحة الشائعة، إلا أن هذا يضيف القيود التالية:

لا يجوز لك توفير البرنامج لأطراف ثالثة كخدمة مستضافة أو مُدارة، حيث توفر الخدمة للمستخدمين إمكانية الوصول إلى أي مجموعة كبيرة من الميزات أو وظائف البرنامج.

لا يجوز لك نقل وظيفة مفتاح الترخيص في البرنامج أو تغييرها أو تعطيلها أو التحايل عليها، ولا يجوز لك إزالة أو حجب أي وظيفة في البرنامج محمية بمفتاح الترخيص.

تطبق هذه القيود قيود الدلالة على ما يمكن فعله بالكود، وتتعارض بشكل نشط مع تعريفات المصدر المفتوح الثالث والسادس لـ OSI:

  1. الأعمال المشتقة - يجب أن يسمح الترخيص بالتعديلات والأعمال المشتقة، ويجب أن يسمح بتوزيعها بموجب نفس شروط ترخيص البرنامج الأصلي.
  1. عدم التمييز ضد مجالات النشاط - يجب ألا يمنع الترخيص أي شخص من الاستفادة من البرنامج في مجال معين من مجالات العمل. على سبيل المثال، لا يجوز تقييد استخدام البرنامج في الأعمال التجارية، أو استخدامه في الأبحاث الجينية.

نفس الشيء مع شركة FUTO الحديثة، يستخدموا ترخيص FUTO Source First License 1.0 و الذي يتبع نظام OSI إلا إنهم لا يسمحوا باستخدام التجاري.

لذلك لماذا يهم؟

يضمن المصدر المفتوح مستوى معينًا من حريات البرمجة ولمستخدمي هذا الكود. عند نشر البرامج بموجب ترخيص مفتوح المصدر، يلتزم المؤلفون بهذه الحريات، وغالبًا ما يكون ذلك على حساب سيطرتهم ومصلحتهم. يضع المؤلف بشكل عام حرية الكود فوق التحكم والميزة التجارية/الشخصية.

عندما يتم نشر البرنامج بموجب ترخيص مثل Elastic License، أو مع تطبيق شروط إضافية مثل شرط المشاعات، أو مع الشروط المستندة إلى الوقت كما هو مستخدم في ترخيص مصدر الأعمال، فغالبًا ما يتم وضع الإيرادات التجارية/الشخصية ومصالح التحكم قبل الكود نفسه هذا لا يعني أن هذه الأنواع من التراخيص سيئة على الإطلاق، فأنا أحترم تمامًا الحاجة إلى حماية جهودك عند البناء والمشاركة بشكل مفتوح، لكنها لا تقدم نفس الحريات المنصوص عليها في المصدر المفتوح. حتى أن العديد من هذه التراخيص تنص صراحةً على أنها ليست مفتوحة المصدر للمساعدة في منع الارتباك.

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


إذا لديك أي سؤال أو استفسار.
انضم إلى مجموعة مجتمع أسس على:

ماتركس: https://matrix.to/#/#general:aosus.org

تيليجرام: Telegram: View @aosus

إعجاب واحد (1)

عندما قرأت هذه الفقرة تذكرت أن vs code الموجود في موقع ميكروسوقت للتحميل هل ليس نفس الموجود في github، تم إضافة telemtry حسب أحد المطورين,
image

الرابط: