نرم افزار متن باز یا منبع باز چیست؟ + مزایا و معایب آن
عبارت متن باز یا Open source درواقع برای مباحث، محصولات دیجیتالی یا هر موضوعی که مردم در آن امکان ایجاد تغییرات یا به اشتراک گذاری را داشته باشند استفاده می شود چرا که در واقع این محصولات برای دسترسی عموم مردم طراحی، تولید و منتشر می شوند.
البته «متن باز» یا «منبع باز» را بیشتر در دنیای برنامه نویسی شاهد هستیم. درواقع زمانی که نرم افزاری در حوزه برنامه نویسی، به صورت متن باز یا open source نوشته شده است، جمعی از مزایا و ارزش ها را هم برای برنامه نویسان و هم برای کاربران به همراه می آورد که در این مقاله به آنها خواهیم پرداخت.
در ادامه این مزیت ها و ارزش های منحصر به فرد نرم افزار منبع باز را معرفی کرده و مورد بررسی قرار می دهیم. اما اگر برای شروع بخواهیم یک تعریف کلی از این مفهوم را ارائه دهیم، باید به شرح زیر بگوییم:
یک نرم افزار متن باز در حوزه برنامه نویسی که تحت عنوان نرم افزار متن باز (Open Source) منتشر می شود، در واقع محصولات نرم افزاری هستند که :
- هر نوع تغییری را با آغوش باز پذیرا می باشند،
- می توانند با نرم افزارهای دیگر به مشارکت و همکاری بپردازند،
- در نمونه سازی اولیه از سرعت بالایی برخورداند،
- شفافیت یا transparency قابل توجهی در ساختار خود نسبت به سایر نرم افزارها دارند،
- در بین کاربران و برنامه نویسان ممتازتر هستند،
- و به عبارتی جامعه مدار هستند، چرا که از یک ساختار و نظام مهندسی شده سرسخت و انعطاف ناپذیری برخوردار نیستند.
اما با وجود تمام این تعاریف، محاسن و توضیحات، لازم است به طور اختصاصی درباره نرم افزار متن باز توضیحاتی را ارائه دهیم و جزئیات مربوط به این مبحث را به صورت دقیق تری بررسی کنیم، تا در پایان به خوبی نسبت به آن آگاه و مطلع باشیم.
نرم افزار متن باز Open Source چیست؟
تا به اینجا از تعاریف کلی و عمومی نرم افزار متن باز مطلع شدیم و ادبیات ساده ای را در توضیح آن به کار بردیم تا حتی به عنوان یک شخص غیر متخصص نیز بتوانیم مفهوم این مبحث را مورد بررسی قرار دهیم. اما به صورت تخصصی تر و با ادبیاتی مناسب برنامه نویسان، باید بگوییم:
نرم افزار متن باز یا منبع باز، نرم افزاری است که هر شخصی می تواند به سورس کد آن دسترسی داشته باشد، پیشرفت و تغییرات آن را رصد کند، در آن تغییراتی ایجاد نماید و آن را بتواند بهینه سازی هایی کند.
تمام توسعه دهندگان به خوبی می دانند که سورس کد (Source Code) آن بخش از نرم افزار است که هر شخصی آن را نمی بیند و د رواقع کاربران عادی برنامه ها و نرم افزارها به طور رایج، اصلا با آن سر و کار ندارند.
بنابراین سورس کد بخشی از نرم افزارها یا محصولات دیجیتالی است که دستورات اجرای نرم افزار در آن کدنویسی شده است و برنامه نویسان می توانند با ویرایش آن تغییراتی را در برنامه (نرم افزار کامپیوتری یا اپلیکیشن) ایجاد کنند.
برنامه نویسانی که به سورس کد یک نرم افزار دسترسی دارند، می توانند ویژگی هایی (features) را به آن اضافه کنند یا بخش های دارای مشکل یا باگ آن را تعمیر و برطرف نمایند تا نرم افزار بهینه سازی شده و آنطور که طرح ریزی شده است به اجرا درآید.
یکی از بهترین وبسایت هایی که توسعه دهندگان از آن برای انتشار سورس کد نرم افزار و پروژه های خود استفاده می کنند وبسایت Gitlab می باشد که در بین برنامه نویسان بسیار محبوب و پرطرفدار می باشد.
تفاوت نرم افزار متن باز یا سایز نرم افزارها
ممکن است با خود فکر کنید که مگر همه نرم افزارها کدنویسی نشده و یا در واقع همان سورس کد نیستند؟ پس چه چیزی باعث جداسازی نرم افزارهای متن باز از دیگر نرم افزارها شده است؟
برخی از نرم افزارها هستند که سورس کد آن ها فقط در اختیار برنامه نویس یا افراد تیمی است که آن را برنامه نویسی کرده اند. بنابراین تنها آن ها هستند که می توانند سورس کد را مشاهده کرده و در صورت نیاز تغییراتی را بر روی آن اعمال نمایند.
مردم این قبیل نرم افزارها را، نرم افزارهای اختصاصی (proprietary) یا متن بسته (Closed Source) می نامند. بنابراین اولین مشخصه اینگونه نرم افزارها این است که سورس کد آنها فقط توسط برنامه نویسان و خالقان اصلی آن ها قابل رویت، کپی، ویرایش و بهینه سازی است.
اما درمقابل، مردم و کاربران نیز باید قوانین و ساختار این نرم افزارها را بپذیرند و با آن موافقت کنند. آن ها این کار را معمولا از طریق فعال کردن گزینه «قوانین و ضوابط را خواندم و پذیرفتم» که در اولین مرحله نصب و راه اندازی برنامه بر روی صفحه نمایش داده می شود، انجام می دهند.
همچنین آن ها با فعال سازی این گزینه، اعلام می کنند که هرگز از این نرم افزار و ساختار آن بر خلاف قوانین نویسندگان و خالقین اصلی اش استفاده نمی کنند.
نرم افزارهای Microsoft Office و Adobe Photoshop از نرم افزارهای بارز و مشهور متن بسته و اختصاصی هستند. اما اکنون با توجه به تعریفی که از هر دو نرم افزار متن باز و متن بسته داشتیم، به خوبی می دانیم که این دو نوع با یکدیگر متفاوت هستند.
پس با این تفاسیر نرم افزار متن باز، نرم افزاری است که کدنویسان و خالقین آن، سورس کد آن را برای همه افراد قابل مشاهده و دسترسی قرار می دهند. به این ترتیب افراد می توانند در صورت تمایل:
- سورس کد را مشاهده کنند،
- از آن به عنوان آموزش هایی برای یادگیری رشته برنامه نویسی استفاده کنند،
- آن را کپی کنند،
- آن را تغییر دهند،
- و یا آن را با دیگران به اشتراک بگذارند.
LibreOffice و GNU Image Manipulation Program و Linux از جمله مثال هایی هستند که می توان برای نرم افزار متن باز عنوان کرد. البته مانند نرم افزار متن بسته یا اختصاصی، کاربران در استفاده از نرم افزارهای متن باز نیز باید موافقیت خود با قوانین و مقررات را اعلام کنند. اما این قوانین و چارچوب بندی ها با آنچه در قوانین نرم افزارهای متن بسته درج شده است متفاوت است و دسترسی های بیشتری را برای کاربران باز گذاشته است.
حتی این قوانین برای هر نرم افزار متن باز نیز متفاوت است. برخی از آن ها اجازه استفاده از سورس کد برای مباحث تمرینی و یادگیری دانش برنامه نویسی را آزاد اعلام کرده اند اما حقوقی برای کپی رایت آن تعیین کرده اند. برخی دیگر قوانینی جهت استفاده مجدد از کد را وضع کرده اند که پیرو آن ها باید سورس کد اصلی نیز در استفاده مجدد از آن درج گردد و بسیاری از چارچوب بندی هایی که در هر نرم افزار متن بازی با دیگری متفاوت است.
آیا نرم افزار متن باز فقط برای برنامه نویسان مهم است؟
خیر. تکنولوژی متن باز و یا به عبارت بهتر طرز تفکر متن باز، مقوله ای است که هم برای برنامه نویسان و هم برای افرادی خارج از این حیطه کاری، مزایا و منافعی را فراهم کرده است. بهتر است اینگونه بگوییم که:
چون بسیاری از برنامه نویسان و سرمایه گذاران در دنیای اینترنت مشغول به فعالیت هستند و برنامه ها و نرم افزارهای متن بازی مانند سیستم عامل لینوکس یا وب سرور آپاچی را در بستر اینترنت می سازند، در نتیجه تمامی افرادی که در حال استفاده از اینترنت هستند می توانند از مزایای این برنامه ها و نرم افزارهای متن باز بهره مند باشند. درواقع منفعت وجود تکنولوژی متن باز شامل گروهی به وسعت کاربران اینترنت است.
به بیانی ساده تر، هر زمان که یک کاربر کامپیوتری :
- در حال بررسی یک سایت باشد،
- ایمیل هایش را مطالعه کند،
- با دوستانش به گفتگوهای آنلاین بپردازد،
- موسیقی آنلاین گوش دهد،
- بازی های آنلاین انجام دهد
- و یا هر استفاده دیگری از فضای اینترنت داشته باشد،
درواقع کامپیوتر، موبایل یا کنسول بازی آن شخص، به شبکه ای جهانی متصل شده است. این شبکه جهانی متشکل از کامپیوترهایی است که در حال استفاده از نرم افزارهای متن باز می باشند. به این ترتیب می توانند اطلاعات مربوط به فعالیتی که آن کاربر کامپیوتری مشغول به انجام آن است را از طریق شبکه برای کامپیوتر لوکال وی ارسال نمایند.
کامپیوترهایی که عضو این شبکه هستند و در حال انتقال این اطلاعات به کامپیوترهای شخصی افراد می باشند، معمولا در گوشه دیگری از جهان واقع شده اند و با آن کاربر فاصله بسیار زیادی دارند. به طوری که آن کاربر نمی تواند وجود آن ها را ببیند یا به آن ها دسترسی داشته باشد. به این ترتیب آن ها را کامپیوترهای ریموت (remote computers) می نامند.
این روزها، مردم از نرم افزارهای متن باز بسیاری در راستای انجام مسئولیت های حقوقی خود یا کارهای شخصیشان استفاده می کنند. برای مثال آن ها ایمیل هایشان را به صورت آنلاین بررسی می کنند یا از نرم افزارهای ویرایش عکسی که نیازی به نصب ندارند به صورت آنلاین استفاده می کنند.
زمانی که فردی از این طریق کارهای خود را انجام دهد و درواقع از نرم افزار نصب شده ای استفاده نکند و به وسیله مرورگر از طریق نرم افزارهای آنلاین به فعالیت های خود بپردازد، به اصطلاح در حال remote computing است.
برخی از فعالان حوزه برنامه نویسی به جای این عبارت از cloud computing نیز استفاده می کنند. چرا که حین انجام این فعالیت ها، فایل هایی ذخیره سازی می شوند، تصاویری به اشتراک گذاشته می شوند و اقداماتی صورت می گیرند که تنها محدود به کامپیوتر لوکال افراد نیستند و در واقع در حال انتشار و انجام پذیری در سطح شبکه هستند.
به این ترتیب متوجه شدیم که نرم افزار متن باز Open Source تنها برای برنامه نویسان مهم نیست و افراد خارج از حیطه برنامه نویسی نیز از مزایای آن بهره مند هستند.
چرا مردم استفاده از نرم افزار متن باز را به سایر نرم افزارها ترجیح می دهند؟
کاربران کامپیوتر به چند دلیل عمده استفاده از نرم افزار متن باز را به سایر نرم افزارها ترجیح می دهند، این دلایل به شرح زیر هستند:
- افراد احساس می کنند که در استفاده از نرم افزار متن باز تسلط و کنترل بیشتری بر روی همه چیز دارند. آن ها می توانند کد این نرم افزارها را مورد آزمایش قرار دهند تا مطمئن شوند که این نرم افزار کاری به غیر از آنچه آن ها می خواهند را انجام نمی دهد و امنیت کافی دارد.
- افراد فعال در حوزه برنامه نویسی یا تازه واردان این عرصه، استفاده از این نرم افزارها را به نرم افزارهای دیگر ترجیح می دهند چرا که به آن ها در ارتقای دانش و مهارت کدنویسیشان کمک شایانی می کند.
- امنیت، دلیل دیگری است که کدنویسان و سایر کاربران غیر متخصص در رابطه با استفاده از نرم افزار متن باز به آن معتقد هستند. به دلیل آنکه هر شخصی می تواند سورس کد نرم افزار متن باز را مشاهده کند، پس احتمال برطرف سازی خطاها و ایرادات احتمالی آن نیز بیشتر است و به این ترتیب این برنامه ها از نظر کاربران قابل اعتماد تر و ایمن تر هستند.
- کاربران معتقدند که برنامه ها و نرم افزارهای متن باز نسبت به سایر نرم افزارها از ثبات بیشتری برخوردارند. زیرا بروزرسانی های متنوع و دستی نیاز ندارند و همواره مطمئن و پایدار به کار خود ادامه می دهند.
- چون نرم افزار متن باز محصولی جامعه مدار است و به صورت اختصاصی نوشته نشده و برای عموم افراد در یک حوزه خاص قابل استفاده است. بنابراین مزایای نرم افزارهای جامعه مدار را دارا می باشد و از این رو مردم کار کردن با این قبیل نرم افزارها را به سایر محصولات تکنولوژی ترجیح می دهند.
آشنایی با نقاط ضعف نرم افزار متن باز
بنا به آنچه تا به این لحظه عنوان شد، ممکن است به این فکر کنید که نرم افزار متن باز یک نرم افزار با محدودیت های بسیار کمی است که هم برای برنامه نویسان و هم برای کاربران غیر متخصص در حوزه برنامه نویسی، یک تکنولوژی نوین را فراهم کرده است. پس حتما نقطه ضعف یا محدودیت و معایبی ندارد.
اما برای آشنایی بیشتر با این مقوله لازم است نسبت به نقاط ضعف آن نیز آگاهی های لازم را کسب نماییم. از معایب نرم افزارهای منبع باز می توان به موارد زیر اشاره کرد :
- دشوار بودن در استفاده و به کارگیری نرم افزار متن باز Open Source
- مشکلات سازگاری
- عدم وجود وارانتی و اطمینان محصول
به طور کلی یکی از مهمترین دغدغه های موجود درباره استفاده از نرم افزار متن باز این است که همه افرادی که به سورس کد آن دسترسی دارند، نیت مثبت و سازنده ای درباره استفاده از آن ندارند. به این ترتیب مردم اغلب نگران دسترسی های خود در این نرم افزارها و عدم پیش آمد جدید و غیر قابل حل توسط افراد سودجو هستند.
همچنین همانطور که در موارد بالا ذکر شد، محیط استفاده از این نرم افزارها معمولا user friendly یا کاربر دوستانه نبوده و کاربران در ابتدای امر، در مقایسه با دیگر نرم افزارها با آن احساس تعامل و راحتی ندارند.
از آنجایی که نرم افزار متن باز Open Source در دسترس همه افراد می باشد، پشتیبانی های اختصاصی و یا گارانتی شامل حال آن نمی شود و مانند نرم افزارهای متن بسته نمی توان با پشتیبانی آن ها تماس گرفته و مشکلات اختصاصی خود را عنوان کرد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.