چه لایسنسی را برای کدهای‌مان انتخاب کنیم؟

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 04 بهمن 1396
دسته بندی ها : برنامه نویسی

در یکی از اتحادیه های شهر برن پایتخت سوئیس قانونی تصویب شده که به موجب آن هر کدی را که شما می نویسید به صورت خودکار دارای حقوقی برای نشر و مواردی دیگر می شود. با این حال برنامه نویس هایی نیز وجود دارد که دوست دارند کدهای‌شان با لایسنس متن باز در اختیار عموم قرار بگیرد، این کار کمک می کند که کدهای برنامه نویس اصلاح شده و در مسیر بهتری قرار بگیرد، حتی اگر حفظ حقوق اصلی برای کدهای اصلی نیز باشد. 

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

در هر حال تمام لایسنس های متن باز موجود نیز از قاعده یا لایه حفاظتی کپی رایت یکسان استفاده نمی کنند. تمام لایسنس های متن باز ابتدا باید توسط Open Source Initiative یا (OSI) تایید شوند. حال که برخی از این لایسنس های متن باز نیز به تایید رسیده –حدود ۶۷ مورد- اما برنامه نویسان تنها از تعدادی این موارد استفاده می کنند. در این مقاله قصد داریم به ۱۰ مورد از این لایسنس ها بپردازیم:

۱. General Public License (GPL)

GPL در سال ۱۹۸۹ به تایید رسید، از آن به بعد تا هم اکنون به یکی از معروف‌ترین لایسنس های متن باز برای کارها تبدیل شده است، تا جایی که در SoureForge.net بیش از ۵۰ هزار پروژه مطابق با این لایسنس قرار گرفته است.

در نسخه سوم این لایسنس رویکردهای جدیدی برای کپی کردن و انجام اصلاحات در کدهای‌تان قرار گرفته شده است، البته این در شرایطی است که در کدهای‌شان از منبع اصلی آن اسم برده شود. در این لایسنس همچنین اقدامات «copyleft» قوی نیز قرار گرفته شده است.

در این اقدام گفته شده که هر برنامه‌ای که از کدهای شما استفاده می کند ملزم است که برنامه را براساس همان لایسنسی که شما کدهای‌تان را منتشر کرده‌اید، منتشر کند. «copyleft» ضعیف نیز بدان معناست که چنین محدودیتی می تواند اعمال نشود و اجباری نیست. در حقیقت این بدان معناست که وقتی کدهای GPL را قرض می گیرید، شما نیز ملزم هستید که برنامه خروجی مبتنی بر آن کد اولیه را براساس لایسنس GPL منتشر کنید، نه برنامه انحصاری یا تجاری.

در نسخه سوم این لایسنس حتی محافظت مستقیم از حقوق ثبت اختراع ها نیز قرار گرفته شده است – چیزی که در بیشتر لایسنس های متن باز دیده نمی شود –

۲. GNU Library یا Lesser General Public License (LGPL)

LGPL نسبت به GPL از قواعد و شرایط حفاظت کمتری برخوردار است، در این لایسنس به صورت غیر مستقیم از حقوق اختراع های ثبت شده دفاع می شود و در کنار آن «copyleft» ضعیف نیز قرار گرفته شده است. از این لایسنس بهتر است در کتابخانه ها استفاده کنیم، LGPL به شما این اجازه را می دهد که کدهای اولیه‌ای که مطابق با این لایسنس منتشر شده اند را گرفته و برای یک پروژه تجاری یا غیر عمومی استفاده کنید. 

تنها زمانی که می خواهید در خود کتابخانه تغییری را ایجاد کنید، کدها باید متن باز عرضه شوند، اما در کل پروژه ای که براساس این پروژه نوشته شود می تواند انحصاری و کدبسته باشد. این لایسنس در سال ۱۹۹۱ تایید شده و بیش از ۸ هزار پروژه را در SourceForge دارد.

۳. لایسنس BSD

لایسنس BSD در چندین نوع مختلف عرضه شده است که دو نوع محبوب و معروف آن عبارت است از: BSD-3-Clause «New BSD license» و BSD-2-Clause «FreeBSD license». این دو لایسنس در کل حفاظت کمتری نسبت به GPL را رعایت می کند، در همین حال محدودیت های کمتری را برای توزیع دوباره برنامه ایجاد می کند.

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

تفاوت لایسنس BSD-3-Clause با لایسنس BSD-2-Clause در این است که اگر شما در یک پروژه مشارکت کرده باشید ملزم نیستید که اسم‌تان به عنوان مشترک یا مواردی از این دست قرار بگیرد، برای این کار حتی باید خودتان به شخصه اجازه دهید.

۴. MIT License

MIT License از قدیمی ترین لایسنس های متن باز در دنیا است و تاریخ آن به سپتامبر سال 1987 برمی‌گردد. این مورد یکی از لایسنس هایی است که بسیار استفاده شده در همین حال در آن قواعد و موارد زیادی وجود ندارد. در کل با استفاده از این لایسنس استفاده کننده هر کاری از جمله، کپی کردن، اصلاح کردن و استفاده های دیگر را می تواند از کد یا نرم افزار ببرد، در نهایت نیز باید یک نسخه از لایسنس در برنامه خروجی وجود داشته باشد. 

در نسخه جدید این لایسنس -MIT/X11- ویژگی anti-endorsement اضافه شده است که در آن می توانید حضور خود را به عنوان مشترک به صورت اختیاری اعلام کنید. این مورد یکی از لایسنس هایی است که کمترین محدودیت را برای تولید کننده ایجاد می کند و حدود ۱۳۰۰ پروژه را در SourceForge.net دارد.

۵. Mozilla Public License 2 (MPL 2.0)

نسخه اول این لایسنس در سال ۱۹۹۸ تایید شد، در ابتدای عرضه آن بیشتر شبیه به یک لایسنس «سازگار با تجارت» بود و در آن اقدامات کپی رایت بسیار کمتری نسبت به GPL وجود داشت. نسخه MPL 2.0 در سال ۲۰۱۲ عرضه شد و برابری بسیار زیادی با لایسنس های Apache و GPL پیدا کرد. 

در کل باید گفت که MPL 2.0 بسیار با لایسنس های Apache و GPL سازگاری پیدا کرد و به احتمال زیاد در بسیاری از جاها از ترکیب آن ها استفاده کرده است. در این لایسنس به صورت مستقیم از حقوق اختراع های ثبت شده حفاظت می شود. البته حتما نام لایسنس نیز در پروژه های توزیع شده قرار بگیرد.

۶. Apache License v 2.0

اولین نسخه از این لایسنس در سال ۱۹۹۵ تایید شد. لایسنس Apache دارای موارد بسیاری برای حقوق کپی رایت است. مخصوصا یکی از موارد این است که تمام حقوق به صورت همیشگی و پایدار باقی مانده، جهانی می شود، انحصاری نخواهد شد و این شرایط غیر قابل فسخ است. وقتی که یک بار حقوق داده شد، شما برای همیشه برای استفاده از آن در هرجایی از جهان، آزاد هستید و هیچ کسی نمی تواند آن را از شما بگیرد. 

غیر انحصاری بودن لایسنس به این معنا است که هرکسی می تواند از آن استفاده کند. همچنین این لایسنس از حقوق ثبت اختراع به صورت مستقیم دفاع می کند. در این لایسنس هیچگونه اقدامی برای copyleft وجود ندارد، این مورد از آنجایی اهمیت دارد که از این لایسنس می توان در هر برنامه ای با هر هدفی استفاده کرد.

۷. Eclipse Public License (EPL)

EPL در سال ۲۰۰۴ توسط Eclipse Foundation درست شد و تقریبا اکثر بندهای خود را از GPL دریافت کرد. این لایسنس جایگزین Common Public License (CPL) شد. Common Public License (CPL) لایسنسی بود که در سال ۲۰۰۱ توسط IBM درست شد.

هدف اصلی EPL این بوده که توسعه پروژه های متن باز به صورت همکاری آسان تر و بهتر شود. یکی از راه ها برای رسیدن به این موضوع ضعیف کردن ویژگی Copyleft بوده که درست ناسازگاری دارد با GPL. با استفاده از EPL می توانید هر پروژه ای را براساسی که دوست دارید، کپی، ویرایش و باز توزیع کنید. 

۸. Common Development and Distribution License (CDDL)

CDDL براساس MPL v 1.1 درست شده است. CDDL با اکثر لایسنس های خصوصی و متن باز سازگاری دارد و در همین حال GPL را نیز محفوظ نگه داشته است. در این لایسنس موارد کپی‌لفت به خوبی قرار نگرفته شده است، هرکسی می تواند کدها را دریافت کند و آن ها را مطابق با نیازش اصلاح نمایند، حال چه پروژه تجاری باشد و یا چه پروژه ای آزاد.

۹. Open Software License (OSL)

OSL در بندها و ضعف کپی‌لفت شبیه به لایسنس LGPL است، اما تفاوت این دو مورد تنها در یک بند است: «بند خاتمه اقدامات ثبت اختراع» این بند بدان معناست که اگر موارد مربوط به حقوق ثبت اختراع نقض شود، کار لایسنس به صورت خودکار پایان میابد. یکی دیگر از بندهای این لایسنس آن است که تمام برنامه ها و کدهای فرعی نشئت گرفته از کد اصلی باید با همان لایسنس اولیه منتشر و توزیع شود.

۱۰. Academic Free License (AFL)

AFL در سال ۲۰۰۲ منتشر شد. این لایسنس در حقیقت تلاشی برای رفع کردن نقص لایسنس های BSD، MIT و Apache  بود. این لایسنس از همان ویژگی ها و بندها برای بازتوزیع، اصلاح کردن و موارد دیگر بهره می برد، اما یکی از تفاوت ها اضافه شدن حالت ثبت اختراع و کمک های حقوقی دیگری است. AFL در رابطه با کپی لفت در مقابل GPL قرار گرفته است.

منبع

مقالات پیشنهادی

بهترین تصاویر را برای وبسایت‌تان انتخاب کنید

عکاسی بخش مهمی از وبسایت های بزرگ است. استفاده از تصاویر بزرگ و تمام عرض در وبسایت مهیج است و علاوه بر آن در نظر بگیرید که همیشه اولین چیزی که کاربر م...

10 افزونه متن باز و رایگان انتخاب‌گر تاریخ

استفاده از منوها به عنوان یک انتخاب‌گر تاریخ -date picker- انتخابی مرسوم است و جدای از آن آسان پیاده سازی می شود. اما بعد از گذشت دهه ها از منوهای MM/...

چرا باید وب اپلیکیشن‌های پیش‌رونده را انتخاب کنیم؟

یک وب اپلیکیشن پیش‌رونده، اپلیکیشنی است که در ظاهر و عملکرد شبیه اپلیکیشن‌های موبایل است. این موضوع یکی از آخرین موارد مهمی است که در دنیای تکنولوژی ق...

چگونه از فونت‌های رنگی در وب استفاده کنیم؟

مطمئنا تمام طراحان وب می‌دانند که چگونه یک رنگ را روی فونت‌ها اعمال کنند. وقتی که شروع به یادگیری CSS می‌کنید این موضوع از ساده‌ترین چیزهایی است که با...