برخی توسعه دهندگان یا بهتر بگوییم شرکت های تولید کننده ی محصولات نرم افزاری هستند که محصولات خود را به صورت پولی در اختیار کاربران قرار می دهند. مسلماً سورس کد چنین نرم افزارهایی بسته بوده، سایر توسعه دهندگان به آن دسترسی نداشته و هرگونه سوء استفاده از چنین نرم افزارهایی پیگرد قانونی دارد اما زمانی که میخواهیم نرمافزار خود را اپن سورس کنیم، پای یکسری License (لایسنس) یا «مجوز» ها به میان میآید که آگاهی برنامه نویسان مبتدی از این لایسنس ها خالی از لطف نیست که در این فصل قصد داریم معروف ترین آنها را مورد بررسی قرار دهیم.
آنچه می بایست مد نظر داشته باشیم این است که تمامی لایسنس های اپن سورس مثل هم نیستند و هرگز این اشتباه را نکنیم که اگر مثلاً یک کتابخانهٔ جاوا اسکرپیت اپنسورس بود، تحت هر شرایطی میتوانیم از آن استفاده کنیم بلکه می بایست مشخص کنیم که آن کتابخانه دارای چه لایسنس اپن سورسی است.
به طور مثال، برخی لایسنس ها هستند که سورس کد منتشر شده تحت آنها به هر شکلی قابل استفاده است و توسعه دهندگان با خیال راحت میتوانند از آن ها در پروژه های خود استفاده کنند اما برخی دیگر هستند که توسعهدهنده را ملزم میکنند تا محصول نهایی خود را تحت قوانین همان محصول به بازار عرضه کنند و تاحدودی دست توسعهدهنده را می بندند.
زمانی که ریچارد استالمن در سال 1984 شروع به کار روی پروژه ی GNU برای ساخت یک سیستم عامل آزاد کرد، وی تأکید داشت که نرمافزار می بایست مابین توسعه دهندگان، مهندسین و کاربرانش به راحتی به اشتراک گذاشته شود و ایشان نیز می بایست این امکان را داشته باشند تا در بهبود آن مشارکت کنند.
امروزه با گذشت چندین سال از ایده ی آقای استالمن، جامعه ی اپن سورس در حال سیطره انداختن روی دنیای نرمافزار است. پروژه هایی همچون لینوکس، اندروید، آپاچی، گیت و … مثالهایی از موفقیتهایی هستند که در این زمینه صورت گرفته اند.
متن باز یا آزاد؛ مسأله این است!
معادل فارسی Open Source متن باز و معادل فارسی Free آزاد است و ما در این فصل متن باز و آزاد را معادل یکدیگر قلمداد میکنیم اما از آنجا که واژه ی Free در زبان انگلیسی به غیر از آزاد، به معنی «رایگان» نیز هست، ممکن است برنامه نویسان مبتدی به اشتباه بیفتند. لذا ما از معادل اپن سورس بیشتر استفاده خواهیم کرد.
ویژگیهای یک نرمافزار اپن سورس
تمامی نرم افزارهای اپن سورس یکسری حقوقی را در اختیار توسعه دهندگان و کاربرانشان قرار میدهند که عبارتند از:
- نرمافزار میتواند به هر شکلی انتشار یابد یا فروخته شود.
- سورس کد نرمافزار در اختیار کاربران قرار دارد.
- نرمافزار توسط هر شخص یا گروهی قابل استفاده است و بدون اعمال هیچ گونه محدودیتی میتوان از آن در هر پروژه ای استفاده کرد (البته این بدان معنا نیست که مثلاً برای هک کردن یک پروژه ی بزرگ ملی میتوان از یک نرمافزار اپن سورس استفاده کرد.)
جالب است بدانیم در دنیای لایسنس های نرمافزار های اپن سورس، در نقطه ی مقابل Copyright که به منظور حذف مالکیت نرمافزار ایجاد می شود، چیزی وجود دارد تحت عنوان Copyleft که این تضمین را ایجاد میکند نرمافزار اپن سورس بوده و استفاده از آن در پروژه های مختلف با در نظر گرفتن نوع لایسنس مجاز است.
Copyleft هم دو نوع دارد که عبارتند از قوی و ضعیف. منظور از کپیلفت قوی این است که اگر ما از یک پروژه ی اپن سورس با کپیلفت قوی استفاده کنیم، حتماً می بایست پروژه ی خود را تحت همان لایسنس منتشر کنیم. به عبارت دیگر، مثلاً در آینده هرگز نمیتوان آن پروژه را از حالت اپن سورسی خارج کرد. در مقابل، اگر از یک پروژه ی اپن سورس با کپیلفت ضعیف استفاده کنیم، محصول نهایی خود را تحت هر نوع لایسنسی میتوان منتشر کرد و یا حتی در آیند میتوان محصول خود را از حالت اپن سورسی خارج ساخت و پولی کرد.
از طرفی دیگر، برخی لایسنس ها هستند که به توسعه دهندگان اجازه ی ادغام نرمافزار اپن سورس را با سایر نرمافزارها -اعم از پولی و آزاد- نمیدهند (مثل GPL) و توسعهدهنده فقط اجازه دارد تا نرمافزار اپن سورس را با سایر نرم افزارهای اپن سورس با لایسنسی مشابه یا سایر لایسنس هایی که در تضاد با لایسنس اصلی نیستند ادغام کرده و حتماً هم تحت همان لایسنس به بازار عرضه کند اما برخی دیگر از لایسنس ها هستند که به مراتب سهل گیرانه تر عمل کرده و دست توسعه دهندگان را باز میگذارند (مثل MIT).
جالب است بدانیم که چیزی در حدود بیش از 80 لایسنس نرمافزار اپن سورس ابداع شده است اما این در حالی است که بسیاری از آنها مشابه هستند یا این که برخی از آن ها صرفاً برای یک شرکت خاص ابداع شدهاند مثل لایسنس سازمان ناسا.
حال که با مقدمه ای از لایسنس ها آشنا شدیم، میتوانیم به بررسی معروف ترین لایسنس ها و تفاوتهای آنها بپردازیم که در آموزش بعد، به طور خلاصه در این رابطه صحبت خواهیم کرد.