منبع کد آزاد؛ نرمافزاری برای همه
منبع کد آزاد یعنی چه؟
فرض کنید یک دستور پخت غذایی دارید که در آن مواد اولیه و طرز تهیه نوشته شده است. اگر این دستور پخت را در اختیار همه بگذارید تا هرکس بتواند آن را ببیند، موادش را تغییر دهد یا به روش خودش بپزد، در واقع دستور پخت خود را به صورت «آزاد» منتشر کردهاید. نرمافزارهای منبعباز هم دقیقاً به همین شکل عمل میکنند. برنامهنویسها کد اصلی نرمافزار را که با زبانهای برنامهنویسی نوشته شده، در اختیار عموم قرار میدهند. هر کسی که دانش برنامهنویسی داشته باشد، میتواند کد را بخواند، اشکالات آن را پیدا کند، قابلیت جدیدی به آن اضافه کند یا حتی نرمافزار کاملاً جدیدی بر پایهٔ آن بسازد.
برای درک بهتر، به یک بازی ویدیویی فکر کنید که در آن میتوانید شخصیتها، مراحل و قوانین بازی را تغییر دهید. اگر سازندهٔ بازی ابزارهایی در اختیار شما بگذارد تا بتوانید خودتان سطح جدید بسازید، در واقع بخشی از منبع بازی را در اختیارتان قرار داده است. تفاوت اصلی در این است که در نرمافزار منبعباز، شما به همهٔ اجزای سازندهٔ بازی دسترسی دارید، نه فقط بخش خاصی از آن.
مثالهایی از منبع کد آزاد در زندگی دانشآموزی
شاید با خودتان بگویید که این موضوع چه ربطی به زندگی روزمرهٔ من دارد؟ پاسخ این است که خیلی از ابزارهایی که هر روز استفاده میکنید، بر پایهٔ نرمافزارهای منبعباز ساخته شدهاند. برای نمونه، مرورگرهایی که برای گشتن در وب استفاده میکنید، یا سیستمعامل گوشیهای هوشمند و رایانهها، اغلب از کدهای آزاد بهره میبرند. حتی بسیاری از بازیهای آموزشی که در مدرسه یا خانه با آنها سرگرم میشوید، ممکن است کدشان برای عموم منتشر شده باشد تا معلمان و دانشآموزان بتوانند آن را با نیازهای خود هماهنگ کنند.
یک مثال سادهتر: فرض کنید قرار است یک پروژهٔ گروهی برای مدرسه انجام دهید. اگر معلم به شما قالبی از پیشطراحیشده برای ارائه بدهد و اجازه دهد که هر گروه بتواند شکل و محتوای آن را تغییر دهد، آنگاه این قالب شبیه به یک منبع کد آزاد عمل میکند. همه میتوانند از آن استفاده کنند، ایدههای جدید اضافه کنند و نتیجهٔ بهتری بگیرند. این همکاری جمعی، یکی از بزرگترین مزایای نرمافزارهای منبعباز است.
| ویژگی | نرمافزار منبعباز | نرمافزار بسته (غیرآزاد) |
|---|---|---|
| دسترسی به کد | در دسترس همه | فقط برای سازنده |
| امکان ویرایش | آزاد و قانونی | معمولاً ممنوع |
| هزینهٔ استفاده | اغلب رایگان یا کمهزینه | ممکن است گران باشد |
| سرعت بروزرسانی | بالا (با کمک جامعه) | وابسته به تیم سازنده |
چالشهای مفهومی دربارهٔ منبع کد آزاد
بله، اما با رعایت قوانین مجوز آن نرمافزار. بیشتر مجوزهای منبعباز اجازهٔ توزیع مجدد را میدهند، به شرطی که نام سازندهٔ اصلی حفظ شود و تغییرات به صورت شفاف اعلام گردد. درست مثل این که شما یک دستور پخت را تغییر دهید، اما بگویید که دستور اصلی از چه کسی بوده است.
در نگاه اول شاید این طور به نظر برسد، اما در عمل برعکس است. وقتی کد در دسترس برنامهنویسان زیادی قرار میگیرد، اشکالات امنیتی زودتر پیدا و رفع میشوند. مانند این است که یک معما را به چندین نفر بدهید تا راهحل آن را پیدا کنند؛ احتمال پیدا شدن جواب درست بیشتر است.
دلایل زیادی وجود دارد. برخی شرکتها میخواهند رازهای تجاری خود را حفظ کنند یا از کپیبرداری نادرست جلوگیری نمایند. بعضی هم فکر میکنند که اگر کد را آزاد کنند، نمیتوانند از نرمافزار خود درآمد کسب کنند. اما بسیاری از شرکتهای بزرگ ثابت کردهاند که میتوان با خدمات جانبی و پشتیبانی، از نرمافزار منبعباز درآمد خوبی به دست آورد.
نکتهٔ پایانی
نرمافزارهای منبعباز مانند یک کتابخانهٔ عمومی هستند که همه میتوانند از کتابهای آن استفاده کنند، در حاشیهٔ آن یادداشت بنویسند یا حتی کتاب جدیدی بر اساس آن تألیف کنند. این ویژگی باعث میشود که نوآوری سریعتر اتفاق بیفتد و دانش میان افراد بیشتری تقسیم شود. برای یک دانشآموز، آشنایی با این مفهوم میتواند سرآغازی برای یادگیری برنامهنویسی و همکاری گروهی باشد. به یاد داشته باشید که بسیاری از ابزارهای محبوب امروزی، حاصل کار گروهی افرادی است که کد خود را به اشتراک گذاشتهاند. شاید روزی شما هم بتوانید با انتشار کد خود، به دیگران کمک کنید تا نرمافزارهای بهتری بسازند.