مسلماً همه افرادی که با نرم افزارهای مختلف و بهطور کلی با دنیای فناوری، بهویژه فناوریهای مبتنی بر کامپیوتر سروکار دارند، عبارت متن باز (Open Source) را شنیدهاند. در این مقاله قصد داریم به همین موضوع بپردازیم و جزئیات آن را بیان کنیم.
متن باز (Open Source) به چه معناست؟
واژه متن باز به تمام برنامههایی اشاره دارد که کد منبعشان را برای استفاده یا اصلاح، البته به دلخواه کاربران یا دیگر توسعهدهندگان، در دسترس قرار میدهند. بر خلاف نرم افزارهای اختصاصی، نرم افزار متن باز به آن دسته از نرم افزارهای کامپیوتری میگویند که آن را با همکاری عموم توسعه میدهند و بهطور رایگان در دسترس همه قرار میگیرد.
تاریخچه نرم افزار متن باز
اغلب برنامه نویسان در نخستین سالهای توسعه نرم افزار، آن را به اشتراک میگذاشتند تا از یکدیگر یاد بگیرند و حوزه برنامه نویسی کامپیوتربرنامه نویسی کامپیوتر چیست و چطور می توانید یک برنامه نویس موفق شوید؟در عصر فعلی برنامهنویسی یکی از پرطرفدارترین شغلهای دنیاست، دغدغهای افرادی که میخواهند در مسیر برنامهنویس شدن قدم بردارند این است که نمیدانند از کجا باید شروع کنند، در این صفحه هر آن چه برای تبدیل شدن به یک برنامه نویس حرفه ای نیاز دارید در اختیارتان قرار گرفته است را گسترش دهند. این امر باعث ایجاد بنیاد نرم افزار آزاد (FSF) شد و برنامه حروفچینی TeX دیوید کنات (David Knuth) در سال 1979 و سیستم عامل گنو ریچارد استالمن (Richard Stallman) در سال 1983 را شامل میشد. در واقع نخستین مرورگر وب، یعنی نت اسکیپ (Netscape)، نرم افزاری رایگان و متن باز بود که بعدها از آن برای توسعه پروژههای نرم افزاری متن باز دیگری نظیر موزیلا فایرفاکس (Mozilla Firefox) بهره گرفتند؛ قطعاً اکنون هم بسیاری از شما از فایرفاکس استفاده میکنید.
پیشگامان متن باز (Open Source Initiative) بعدها جایگزین بنیاد نرم افزار آزاد شد که گروهی از توسعهدهندگان نرم افزار است؛ این توسعهدهندگان نرم افزارها را با این منظور ایجاد میکنند که دیگران آنها را آزادانه به اشتراک بگذارند، بهبود دهند و مجدداً توزیع کنند. جنبش متن باز مخالفانی هم داشته است. مثلاً جیم آلچین (Jim Allchin) از شرکت مایکروسافت در سال 2001 اظهار داشت که OSI «نابودگر مالکیت معنوی» است. اما امروزه مایکروسافت و بسیاری از شرکتهای دیگر به طرق مختلف به جنبش نرم افزارهای آزاد و متن باز پیوستهاند. این اقدام نظر بسیاری را راجعبه نرم افزار متن باز تغییر داده است.
برخی دیگر از مشارکتکنندگان، سرمایهگذاران و سازمانهای غیرانتفاعی پروژههای متن باز، بنیاد لینوکس، بنیاد وردپرس، Creative Commons، پروژه متن باز اندروید و بنیاد موزیلا را شامل میشوند.
چند نمونه از مجوزهای نرم افزار متن باز
تعریف متن باز بهطور خلاصه موارد زیر را بیان میکند:
- مجوز نرم افزار متن باز رایگان است و هر کسی میتواند بدون هیچ محدودیتی به توزیع مجدد آن دست بزند.
- کد منبع را باید در دسترس قرار دهند تا دریافتکننده بتواند آن را بهبود دهد یا اصلاح کند.
- مجوز میتواند مستلزم این باشد که نسخه بهبودیافته نرم افزار، نام یا نسخهای متفاوت از نرم افزار اصلی داشته باشد.
- میتوان نرم افزار به سیستم عامل جدیدی منتقل کرد.
در سالهای اخیر و در راستای اتخاذ تعریف متن باز، موافقتنامههای مجوز قابل توجه و پرکاربرد زیادی برای نرم افزارهای متن باز وجود داشته است که از بین آنها میتوان به موارد زیر اشاره کرد:
- مجوز وب سرور آپاچی (The Apache web server license)
- مجوز توزیع نرم افزار برکلی (The Berkeley Software Distribution license)
- مجوز جامع همگانی گنو (The GNU General Public License)
- مجوز موسسه فناوری ماساچوست (The Massachusetts Institute of Technology License)
- مجوز عمومی موزیلا (The Mozilla Public License)
نحوه به کارگیری متن باز در توسعه نرم افزار
پیشتر به نقش عمیق متن باز در جامعه توسعه نرم افزار اشاره کردیم. در واقع نسلی از ابزارهای متن باز را توسعه دادهاند که امروزه توسعه دهندگان، در مراحل ابتدایی توسعه نرم افزار از آنها بهره میگیرند و کد متن باز را بهبود میدهند یا به عیبیابی مشکلاتش میپردازند.
چند نمونه از مهمترین این ابزارها را در زیر آوردهایم:
- GitHub
- SourceForge
- Launchpad
برخی دیگر از محصولات متن باز
فناوری متن باز به ابزارهای توسعه نرم افزار محدود نمیشود. نرم افزارهای محبوب دیگری هم وجود دارد که در زمره نرم افزارهای متن باز قرار میگیرند که برخی از آنها عبارتند از:
- نرم افزار رد هت (Red Hat Software): پلتفرم نرم افزار متن باز و مشتق از IBM است که انواع برنامههای کاربردی بهرهوری در سطح سازمانی را ارائه میدهد.
- LibreOffice: مجموعه متن باز برای امور اداری است که به برنامههای مایکروسافت آفیس شباهت دارد.
- GNU Image Manipulation Program: ابزار دستکاری تصویر متن باز گنو است که اجزایی مشابه ادوب فتوشاپ دارد.
- VLC Media Player: نرم افزار پخشکننده فایلهای صوتی و تصویری متن باز است.
نقطه ضعف برنامه های متن باز چیست؟
مجوزهای متن باز درحالیکه نرم افزار را بهطور کلی مقرون به صرفهتر کرده و به رشد توسعه نرم افزار کمک زیادی کردهاند، بسیاری استفاده گسترده از آن را منفی تلقی میکنند و این موضوع را به فقدان مقرراتی نسبت میدهند که میتواند راه را برای مسائل حقوقی متعدد باز کند. علاوه بر این، تعیین باید و نباید در خصوص اینکه چه نرم افزارهایی متن باز باشند یا نباشند، موضوعی دشوار و بحثی همیشگی است.
جامعه متن باز برای حلوفصل این موضوع به اجرای طرحهای طبقهبندی روی آورده است؛ این طرحها معمولاً برای تعیین مدلهای مناسب توسعه نرم افزار متن باز، به مفاد کپی لفت (copyleft) وابستهاند.
دادگاه استیناف فدرال ایالات متحده در سال 2008 تشخیص داد که مجوز نرم افزار های متن باز باید برای هرگونه استفاده از مطالب دارای کپی رایت، مقررات الزامآور داشته باشد. اگر کاربر نهایی این استانداردهای باز را نقض کند، مجوز خود را از دست میدهد و بنابراین استاندارد حق کپی رایت را نیز نقض کرده است؛ درست مثل زمانی که از مجوزهای اختصاصی استفاده میکنند.
جمعبندی
همانطور که دیدیم، متن باز یا Open Source در دنیای فناوری نرم افزار، نوعی ساختار اشتراکی با هدف بهبود و توسعه هرچه بهتر نرم افزارهاست که به تبادل نظر، شفافیت، همکاری و مشارکت و بهبود نرم افزارها میانجامد. امروزه بسیاری از پروژهها و نرم افزارها بهصورت متن باز در اختیار کاربران عادی و البته توسعه دهندگان قرار دارند تا از آنها بهرهگیری کنند، بهبودشان دهند و دوباره توزیعشان کنند.
نرم افزار متن باز چیست؟
بسیاری از توسعهدهندگان و تیمهای توسعه نرم افزار، بهصورت اختصاصی به کد منبع دسترسی دارند و دست به تغییر و انتشار آن میزنند. در این حالت دیگر کاربران حق تغییر یا بهرهبرداری شخصی از نرم افزار مربوطه را ندارند و تنها در صورت رضایت نویسندگان اصلی آن میتوانند دست به چنین اقداماتی بزنند. اما در نرم افزارهایی که متن باز هستند، کد منبع در اختیار همه قرار دارد و همه میتوانند آن را ببینند، تغییر دهند و حتی با نام دیگری توزیع کنند. البته این نرم افزارها هم مجوزهای خاص خود را دارند که کاربران و توسعهدهندگان باید مطابق آن رفتار کنند، اما ساختار آن با نرم افزارهای بسته کاملاً متفاوت است.
چرا از نرم افزارهای متن باز استفاده می کنند؟
دلایل زیادی برای این امر وجود دارد. ابتدا باید توجه کرد که کاربر نهایی این نرم افزار کیست و چه توقعاتی دارد. شاید بتوان مهمترین این علل را در این خلاصه کرد که افراد مختلف با دسترسی به نرم افزار های متن باز، میتوانند کد منبع را به دلخواه خودشان تغییر دهند، با دستکاری کد منبع شروع به یادگیری برنامه نویسی کنند و از امنیت و پایداری بیشتر نرم افزارهای متن باز برخوردار شوند.