داستان پشت پرده اوپن‌سورس: هزینه‌هایی که کمتر کسی می‌دونه!

Fall Back

اگه اهل برنامه‌نویسی یا توسعه نرم‌افزار باشی، احتمالاً خیلی وقت‌ها برات پیش اومده که از کامپوننت‌ها و کتابخونه‌های اوپن‌سورس (Open Source یعنی سورس باز؛ کدش در دسترس همه‌ست و هرکسی می‌تونه استفاده کنه یا حتی تغییرش بده) استفاده کنی. خیلی جذابه، نه؟ سریع‌تر پیش می‌ری، لازم نیست چرخ رو دوباره اختراع کنی و کلی هم نوآوری به کار اضافه می‌کنی. ولی یه مشکلی این وسط هست که خیلی‌ها جدی نمی‌گیرنش: بحث «مجوز» یا همون لایسنس این نرم‌افزارهای اوپن‌سورس.

بذارش اینطوری بگم: همه چیز رایگان نیست! حتی اگه کد آماده دم دستته، اما قوانینی پشت لایسنس‌ها هست که اگه بهشون دقت نکنی، خیلی راحت می‌تونه کارتو به دردسرهای حقوقی بندازه. مثلاً بعضی لایسنس‌ها هستن که می‌گن اگه کد مال من رو بذاری تو پروژه‌ت، کل کدت باید اوپن‌سورس بشه! یا مثلاً یه لایسنس دیگه می‌گه فقط برای استفاده شخصی مجازه، نه تجاری. خلاصه سر و کله زدن با لایسنس‌ها واقعا می‌تونه پیچیده بشه.

جالب اینه که دنیای آکادمیک و صنعت حسابی روش کار کردن؛ کلی تحقیق و ابزار ساختن که به تیم‌ها کمک کنه این مشکلات مجوزی رو حل کنن یا حداقل راحت‌تر مدیریت کنن. اما هنوز هم کلی چالش و ابهام مونده. چرا؟ چون اولاً خود لایسنس‌های اوپن‌سورس دارن با سرعت نور تغییر می‌کنن و هر روز می‌بینی نوع جدیدش میاد. دوماً تکنولوژی‌هایی مثل Generative AI (اگه نمی‌دونی یعنی هوش مصنوعی‌ای که خودش می‌تونه چیزایی مثل کد یا متن بسازه) همین‌طور CodeLLMها (همون مدل‌های زبانی بزرگ مخصوص کدنویسی هستن) وارد ماجرا شدن و باعث شدن بحث مدیریت ریسک لایسنس‌ها سخت‌تر بشه.

حالا یه تیم دانشمند و محقق اومدن و اولین بررسی کاملاً سیستمی (بهش می‌گن Systematic Literature Review یا SLR؛ یعنی میان همه مطالعات قبلی رو می‌خونن، دسته‌بندی و تحلیل می‌کنن) درباره «مدیریت مجوز اوپن‌سورس» انجام دادن. اونا ۸۰ مقاله رو که حسابی گزینش شده بودن زیر و رو کردن و نتیجه‌ها رو تو سه دسته اصلی جمع‌بندی کردن:

۱. شناسایی لایسنس‌ها (License Identification): اینکه اصلاً بفهمیم هر نرم‌افزار چه مجوزی داره. چون گاهی حتی تشخیصش کار آسونی نیست! بعضی‌وقت‌ها کدها بدون ذکر لایسنس منتشر شدن، یا لایسنس تو یه فایل جدا نوشته شده و کسی حواسش نیست.

۲. ارزیابی ریسک لایسنس (License Risk Assessment): این یعنی بررسی کنیم ببینیم اگه از این نرم‌افزار یا قطعه کد تو پروژه‌مون استفاده کنیم، چه خطراتی از نظر حقوقی و عملیاتی می‌تونیم داشته باشیم. مثلاً شاید مجبور باشیم کل پروژه رو open source بدیم بیرون یا یه هزینه عجیب باید پرداخت کنیم.

۳. کاهش ریسک لایسنس (License Risk Mitigation): خب، حالا فهمیدیم یه لایسنس خاص خطرناکه، باید چی کار کنیم؟ این بخش مربوط به راهکارهایی هست که جلوی دردسر رو می‌گیره؛ مثل تعویض کتابخونه، مذاکره با مالک لایسنس، یا حتی رعایت یه سری قوانین و مستندسازی دقیق.

این مقاله پر از چالش‌هایی بود که تو راه‌حل‌های فعلی وجود داره. مثلاً خیلی از ابزارها فقط یه سری نوع لایسنس خاص رو پشتیبانی می‌کنن و برای مدل‌های جدید یا پروژه‌های بزرگ کاربردی نیستن. یا بعضی وقت‌ها ابزارا نتایج اشتباه می‌دن و نمی‌تونن همه ریسک‌ها رو تشخیص بدن. از طرف دیگه، بعضی فرصت‌ها هم وجود داره برای بهبود آینده؛ مثلاً همکاری بیشتر بین دانشگاه و صنعت تا ابزارهای یکپارچه‌تر و هوشمندتری بسازن.

نهایتاً نویسنده‌ها تاکید دارن که امید دارن این بررسی کلی بتونه شکاف بین دانشگاه و صنعت رو کمتر کنه و باعث شه مدیریت ریسک مجوزها تو دنیای نرم‌افزار، منظبط‌تر و راحت‌تر بشه. اینطوری هم زمان توسعه‌دهنده‌ها هدر نمی‌ره و هم شرکت‌ها تو دردسرهای حقوقی نمی‌افتن.

پس خلاصه‌ش اینه: دفعه بعدی که خواستی یه کتابخونه اوپن‌سورس رو بذاری تو پروژه‌ت، حتماً اول از همه یه نگاه جدی به لایسنسش بنداز و اصلاً بهش نگو «اینو که همه استفاده می‌کنن!»؛ چون هزینه واقعی گاهی بعداً سراغت میاد! 😄
منبع: +