وقتی وارد دنیای فناوری و برنامهنویسی میشوید، مرتباً اصطلاح Ware (افزار) به گوشتان میخورد. در واقع، پسوند «افزار» که در موارد مختلفی مورد استفاده قرار میگیرد، هیچ ارتباط مستقیمی با کامپیوترها، فناوری و برنامهنویسی و ... ندارد. ولی اگر واقعاً اینطور است، پس چرا افزار در عبارات مشابه زیادی مثل نرمافزار وجود دارد؟ چه نوع افزارهایی (نرمافزارهایی) داریم و سؤال مهمتر این که تفاوت نرمافزارهای رایگان با نرمافزارهای متن باز (اپنسورس) چیست؟ برای یافتن پاسخ به سؤالاتی از این دست، با سکان آکادمی همراه باشید.
پیش از هر چیز، به سؤال اول میپردازیم. کلمه Ware که در فارسی «افزار» ترجمه میشود که به معنی یک کالا است (البته این کلمه معانی دیگری هم دارد که به کار ما مربوط نمیشوند). این کلمه معمولاً در ترکیب با لغات دیگر استفاده میشود و معانی مختلفی پیدا میکند. کلماتی که در انتهایشان عبارت افزار را به همراه دارند، معمولاً یک محصول را توصیف میکنند؛ مثلاً کلمه Silverware از دو کلمهٔ Silver به معنی «نقره» و Ware به معنی «افزار» تشکیل شده است که در کل به معنی «نقرهآلات» است.
استفاده از پسوند Ware در Software در حقیقت نشانهدهندهٔ این است که از همان ابتدای کار قرار بر آن بوده که نرمافزار فروخته شود. البته به لطف علاقه و ذوق برنامهنویسان و کسانی که اولین بار محصولات مختلف دنیای فناوری را نامگذاری میکردند، در حال حاضر چیزهای زیادی وجود دارند که از پسوند افزار استفاده میکنند مثل:
- نرمافزار
- سختافزار
- نرمافزار آزاد (Freeware)
- اشتراکافزار (Shareware)
- بدافزار (Malware)
- نرمافزار جاسوسی (Spyware)
نکتهٔ مهم و جالب اینجا است که برخی از این عباراتی که با استفاده از پسوند Ware ایجاد شدهاند در حقیقت ترکیبات متناقض و کنایی یا برخی دیگر تناقضگویی محسوب میشوند؛ دقیقاً مثل نرمافزار رایگان و اشتراکافزار!
تفاوت نرمافزارهای رایگان و اپنسورس چیست؟
حال که فهمیدیم افزار به چه معنا است، میتوانیم سؤال بعدی، یعنی تفاوت نرمافزارهای رایگان و نرمافزار اپنسورس، را بررسی کنیم. در واقع، تفاوت میان نرمافزار رایگان با نرمافزار متن باز (اپنسورس) بسیار زیاد است و این دو را نمیتوان باهم مقایسه کرد.
نرمافزار رایگان معمولاً برای این تولید میشود که نام یک شرکت، برند یا آگاهی نسبت به یک محصول را افزایش بدهد؛ مثلاً شرکتهایی هستند که آنتیویروس رایگان تولید میکنند و در اختیار کاربران قرار میدهند که هدف اصلی از این کار، تبلیغات است و از جملهٔ این شرکتها میشود به شرکت AVG و McAfee اشاره کرد.
سیاست کاری این شرکتها اینطور است که کاربر را به استفاده از نسخهٔ رایگان نرمافزار ترغیب میکنند و سپس سعی میکنند وی را متقاعد کنند که برای استفاده از نسخهٔ پولی و پیشرفتهتر (یا با امکانات بیشتر) آن، هزینهای بپردازند. در نتیجه با آن که این نرمافزارها اصولاً رایگان هستند، ولی همهٔ ویژگیهای آن به طور رایگان در اختیار کاربر قرار نمیگیرد و با محدودیتهایی همراهاند.
مثلاً یکی از محدودیتهای اصلی این نوع نرمافزارها این است که شما بدون مجوز صاحب آن، نمیتوانید آن را توزیع کنید. نوع دیگری از نرمافزارها هم هستند که شباهت زیادی به نرمافزارهای رایگان دارند ولی صاحب آن نرمافزار به همه اجازه میدهد آن را توزیع کنند. این نرم افزارها، اشتراکافزار (Shareware) نامیده میشوند.
در اشتراکافزارها با آن که کاربر یک نسخه از نرمافزار را در دست دارد، ولی مجوز و اجازهٔ فروش آن را ندارد. البته این مسئله علاوه بر دیگر مشکلات فنی و ایرادهای دیگری است که اشتراکافزار میتواند داشته باشد. مشکل دیگر اشتراکافزار این است که کاربرها به سورسکد آن دسترسی ندارند. یعنی نرمافزارهای رایگان و اشتراکافزارها با آن که از کاربر هزینهای دریافت نمیکنند، ولی دست او را هم باز نمیگذارند و محدودیتهای زیادی برای او قائل میشوند.
در این میان، یکسری مجوزها همچون لایسنس GPL، لایسنس آپاچی (Apache Lisencse)، لایسنس MIT و لایسنس BSD وجود دارند و با آن که این لایسنسها ممکن است کمی با یکدیگر متفاوت باشند، ولی مهم این است که آزادی، استفاده، دستکاری و تغییر و فروش نرمافزار دارای لایسنس را هم از طریق سورسکد و هم به شکل باینری ممکن ساختهاند.
برخی از این لایسنسها در یکسری زمینهها سختگیرتر هستند و محدودیتهای بیشتری دارند؛ مثلاً GPL اجازهٔ استفاده از هر کد دلخواه یا لایبرریهایی که در GPL نیستند را نمیدهد. این مسئله باعث میشود که دولوپرهای کدهای جدید برای نوشتن کدهای بیشتر GPL، به استفاده از خود کدهای GPL تمایل پیدا کنند. البته این محدودیت در LGPL کمتر است.
اگر نگاهی به تاریخ نرمافزارهای آزاد بیندازیم، میفهمیم که در این میان برخی نرمافزارها یا مجموعه نرمافزارهایی بودهاند که بسیار موفق ظاهر شدهاند و در زمینهٔ خود برجسته و باکیفیت هستند. مثلاً بیشتر کارهایی که گوگل در رابطه با پروتکلهای اتوماسیون خانگی انجام میدهد و پروژههای مرتبط با اندروید، کیفیت بالایی دارند.
این فقط نرمافزارها نیستند که میتوانند اپنسورس شوند. سختافزارها هم قابلیت اُپن (باز) شدن را دارند؛ مثلاً Arduino یکی از این موارد است. به علاوه، طراحیهای سهبعدی چاپ شده، برخی آثار هنری، کتابها و ... هم هستند که اپنسورس محسوب میشوند. اپنسورس باعث میشود که به طور کلی دنیای ما بازتر و گستردهتر باشد و در یک کلام، اپنسورس همان چیزی است که باعث حرکت رو به جلو میشود.
بنابراین هر وقت چیزی خلق کردید و از این کار خوشتان آمد بهتر است آن را اپنسورس کنید؛ مثلاً یک اثر هنری، یک قطعه کد که احتمالاً کاربرد زیادی دارد، یک برنامهٔ کوچک و جمعوجور یا حتی یک قطعه موسیقی دلنشین میتواند ادای دینی به اپنسورسی -که خودتان از آن بهره گرفتهاید- باشد. فقط باید در مورد محدودیتها و مسئولیتهای نوع لایسنسی که انتخاب میکنید کمی اطلاعات جمع کنید.