با سلاماول یک نکته: چون این تاپیک بیمقدمه جدا شد و نام خوبی هم براش انتخاب نشده، باید اول موضوع بحث رو مشخص کرد.
موضوع این است که آیا لازم است تا سیستمعامل مورد استفادهی کاربران طوری باشد که همهی کاربران در زمینهی کامپیوتر متخصص شوند؟ پس بهتر است تا عنوان تاپیک را مرتبط با بحث انتخاب کنید.
برای شروع بحثم یک سری از دادهها رو پیشفرض فرض میکنم:
۱- کاربران برای استفاده از سیستمعاملهای آزاد تا امروز نیازمند افزایش دانش خود در زمینهی کامپیوتر بودهاند.
۲- آزادی و حفظ آن، شرط اول سیستمعاملهای آزاد است.
سوال۱: وقتی قرار است تا سیستمعامل آزادی طراحی کنیم، چه خصوصیاتی را بهتر است رعایت کنیم و چه خصوصیاتی را باید رعایت کنیم؟تذکر: بهتر است بر سر معنی «باید»، سفسطه نکنید چون باید به معنی تاکید بر اهمیت موضوع است وگرنه هر شخصی میداند که حتی آزادی نرمافزار را هم میتوان از آن گرفت و این قانون کپیرایت(اجبار)، در دنیای کنونی امری نسبی است و در ضمن، حفظ آزادی در نرمافزار آزاد توصیه است نه اجبار.
اهداف ما از ساخت سیستمعامل هرچه باشد، ما نباید آنچه را به زحمت و ظرف سالها ساختهایم، نابود کنیم یا آنچه را سعی در رسیدن به آن داشتهایم فراموش کنیم.ما میتوانیم انواع سیستمعاملهای انحصاری(غیرآزاد) را با اهداف مختلف تولید کنیم و به هیچ قانونی مگر مجبور باشیم احترام نگذاریم.
برای این کار میتوانیم سیستمعاملی را از اولین خط کد آن، خودمان بنویسیم و آن را انحصاری کنیم یا حتی میتوانیم سیستمعامل آزادی را انتخاب کنیم و بعد از دادن تغییرات دلخواه خود، آن را کاملا انحصاری منتشر کنیم.
روشهای بالا را نمیخواهم در موردشان صحبت کنم.
موضوع صحبت ما قرار است پیرامون سیستمعاملهایی باشد که آزادند و قرار است آزاد بمانند.
پاسخ سوال۱:اولین هدف در ساخت سیستمعاملهای آزاد، وجود ابزاری بود که در استفاده از کامپیوتر و توسعهی آن، ما را آزاد بگذارد. وقتی میگویم ما منظورم خودم یا شما نیست بلکه منظورم افرادی مانند ریچارد استالمن است که دانش کافی برای ساخت و تغییر برنامههای کامپیوتری را دارا بودند ولی آزادی انجام این اعمال را نداشتند.
در تعریف بالا مشخص است که افراد با دانش بودند که میخواستند آزاد باشند یا بهتر بگویم میتوانستند آزاد باشند.اگر شما دانش و توانایی ساخت یا تغییر نرمافزار را نداشته باشید دیگر چه اهمیتی دارد که آن نرمافزار آزاد باشد یا نباشد؟ این آن دلیلی بود که تنها حامیان جنبش نرمافزار آزاد در ابتدای پیدایش، نخبگان کامپیوتری بودند(البته هنوز هم هستند) که صاحب دانش بالایی در زمینهی کامپیوتر بودند ولی تا به آن روز هیچگونه اختیاری دربارهی برنامههای ساخت خود نداشتند.(البته امروزه و پس از عملی شدن این ایده، محاسن بسیار بیشتری از آنچه در ابتدا مورد نظر نرمافزار ازاد بود، آشکار شده است)
برای همین منظور مجوزی را بنیان گذاشتند(Gnu Public License) که برای آنها آزادی لازم در رسیدن به خواستشان را فراهم میکرد.
اما این کافی نبود. برای گسترش نرمافزار آزاد و ترغیب افراد علاقهمند به استفاده از آن و گسترش نرمافزار آزاد و نشان دادن لزوم آزاد بودن نرمافزار باید تا افراد، دانش ساخت و تغییر نرمافزار را کسب میکردند و این سرآغاز به اشتراکگذاری آزاد دانش در زمینهی نرمافزار بود.با پخش شدن دانش کامپیوتر در بین جامعه و مشارکت افراد بیشتر برای کسب این دانش یا آزادی موجود در آن، هم سرعت رشد نرمافزار آزاد بیشتر شد و هم مشکل نبود سرمایه در حمایت از نرمافزار آزاد جبران شد.
پس بهتر است بگوییم آنچه باعث بوجود آمدن نرمافزار آزاد شد، دانشی بود که اجازهی آزاد بودن نداشت و دانش آزاد کامپیوتر، لازمهی رشد نرمافزار آزاد بود.حال که پس از سالها تلاش موفق شدهایم دانش کامپیوتر خود و جامعهی صاحب دانش حامی آن را در ساخت سیستمعاملهای آزاد - که دیگر رقابت با آن برای سیستمعاملهای انحصاری باوجود داشتن سرمایههای کلان و حمایتهای حقوقی، تقریبا غیرممکن شدهاست - به جایگاهی برسانیم، بیاییم و عامل آزادی و قدرت خود را فدای سادگی و کاربرپسندی کنیم؟
رجوع شود به پاورقی ۱.
اگر معتقد هستیم که کار با سیستمعاملهای آزاد کنونی مشکل است و هدف ما تولید سیستمعامل آزادی است که استفاده از آن آسان باشد، باید دلیل این مشکل را بیابیم و درصدد حل آن برآییم. در غیر این صورت مشکلی را به مشکلهای موجود اضافه خواهیم کرد.سوال۲: آیا استفاده از سیستمعاملهای آزاد سخت است؟به نظر من استفاده از سیستمعاملهای انحصاری(غیرآزاد) به مراتب سختتر از استفاده از سیستمعاملهای آزاد است. آنچه استفاده از سیستمعاملهای آزاد را سخت کرده است، کمبود دانش کاربران است و مسلما در این بین کمکاری تولیدکنندگان سیستمعاملهای آزاد در آموزش دانش، نقش مهمتری ایفا میکند تا کمکاری کاربران استفادهکننده از سیستمعاملهای آزاد در کسب دانش.
رجوع شود به پاورقی ۲.
به شخصه سوال بالا را اینگونه از خود میپرسم:
دلیل نبود روشهای آموزشی آسان و جامع برای کسب دانش نرمافزار آزاد چیست؟این مشکل دلایل زیادی میتواند داشته باشد، به عنوان مثال:
نبود آگاهی لازم نسبت به اهمیت آموزش و نشر آزاد دانش نسبت به آزادی محصول.
آموزش ندادن افراد تازهکار توسط افرادی که دانش آزاد را کسب کردهاند(احتمالا به دلایل حفظ برتری علمی خود و بهرهبرداری بیشتر مالی)
اجتماع(روابط اجتماعی افراد با یکدیگر و باورهای اجتماعی)
آموزش(آموزش دیدن در سیستمهای آموزشی که کاملا بر خلاف اهداف دانش موجود در نرمافزار آزاد است)
و مهمتر از همه ناتوانی افراد صاحب دانش در درک شرایط افراد بدون دانش.
پاسخ سوال۲:خیر، استفاده از سیستمعاملهای آزاد سخت نیست بلکه یادگیری دانش استفاده از سیستمعاملهای آزاد است که مشکل است و آن هم به این دلیل است که تا به امروز، برنامهریزی درستی برای آموزش آزاد استفاده از سیستمعاملهای آزاد، انجام نشده است.
حال فرض کنیم که سیستمعامل آزادی تولید کردیم که استفاده از آن آسان است. آیا سیستمعامل انحصاری وجود ندارد که کاربران در استفاده از آن به اندازهی سیستمعامل آزاد ما یا بیشتر از آن، راحت باشند؟
سوال۳: چه طرحی برای ترغیب کاربران به استفاده نکردن از آن سیستمعاملهای آسان انحصاری و در عوض استفاده از سیستمعامل آزاد خود دارید؟توجه داشته باشید که ما هنوز اصلیترین موضوع را بررسی نکردهایم یعنی تعریف سادگی.
سوال۴: کار با چه سیستمعاملی آسان است؟در اینجا باید بررسی کنیم و ببینیم که چه روشهایی برای سادهسازی وجود دارد.
روش اول: محدودسازیهمانطور که از اسم روش پیدا است، این روش از سادهسازی با کم کردن گزینههای قابل اجرا توسط کاربر یا سیستم پیادهسازی میشود. به عنوان مثال ما برای سادهسازی نصب یک سیستمعامل میتوانیم:
سختافزاری که سیستم بر روی آن نصب میشود را محدود کنیم.
امکانات پیشرفتهی نصب را از دید کاربر دور کنیم.
امکان تغییر در جزییات نصب را از کاربر بگیریم و ... .
با این کار ما فرضا میتوانیم امکانی را در اختیار کاربر قرار دهیم که با دو حرکت(کلیک) سیستم را نصب کند.
روش دوم: پنهانسازیدر این روش برخلاف روش اول ما هیچگونه محدودیتی برای کاربران قائل نمیشویم ولی امکانات پیشرفتهتر را از دسترس عادی کاربران دور نگه میداریم. این روش مزایایی دارد:
امکان آسیب رساندن کاربر به سیستم خود کمتر میشود.
کاربر احساس میکند که نرمافزار ساده است و دچار سردرگمی نمیشود.
روش سوم: انجام تنظیمات پیشفرضدر این روش هر کاری که کاربران امکان انجام آن را دارند از قبل در سیستم به وسیلهی تولیدکنندگان پیادهسازی میشود. به عنوان مثال:
نصب برنامههای مختلف.
انجام تنظیمات سیستمی مختلف.
انجام مراحلی بدون نیاز به سوال از کاربر.
این روش سرعت استفاده از سیستم را بالا برده و از انجام کارهای تکراری جلوگیری میکند.
روش چهارم: آموزش دانشدر این روش نه کاربر محدود میشود، نه امکانی پنهان میشود و نه تنظیماتی از قبل انجام میشود. در عوض همهی اینها، دانش لازم برای استفاده از این امکانات در دسترس کاربران قرار میگیرد.
این روش زمان زیادی را از کاربر میگیرد و همچنین فشار زیادی به تولیدکنندگان برای تهیهی مطالب آموزشی وارد میکند.(و همچنین نوع آزاد آن انحصار تولید را نیز از بین خواهد برد)
سیستمعاملهای انحصاری(غیرآزاد) از روشهای محدودسازی و پنهانسازی به طور کامل استفاده میکنند. تنظیمات پیشفرض را کمی تا قسمتی استفاده میکنند و آموزش را بهندرت استفاده میکنند.
سیستمعاملهای آزاد از روش ۱(محدودسازی) استفاده نمیکنند، روش ۲(پنهانسازی) را بهندرت استفاده میکنند، روش ۳(تنظیمات پیشفرض) را کمی تا قسمتی و روش ۴ را بیشتر استفاده میکنند البته بدون هیچگونه برنامهریزی.
پاسخ سوال۴:با توجه به گفتههای بالا هر فردی میتواند تعریف خود را از سیستمعامل سادهسازیشده داشته باشد. اما پیشنهاد من سادگی با استفاده از آموزش دانش است و در صورتی از روشهای دیگر استفاده شود که لطمهای به دانش کاربران وارد نشود.
پاسخ سوال۳:فکر میکنم سیستمعامل آزاد میتواند در مقابل سیستمعاملهای انحصاری از نظر سادگی، حرفی برای گفتن داشته باشد اگر در زمینهی آموزش دانش آزاد، بهترین و مدونترین طرح را داشته باشد.و درنهایت:
سوال۵: داشتن یا نداشتن دانش کامپیوتر چه تاثیری در استفادهی ما از کامپیوتر دارد؟
یکی از اثرات مثبت دانش در استفاده از یک محصول، استفادهی بهتر از آن محصول است اما مهمتر از آن این است که کسانیکه دانش یک محصول را دارا هستند، کمتر آزادی و امنیت خود را در استفاده از آن محصول از دست خواهند داد.
حال انتخاب با ما است که کاربران را به کدام جهت راهنمایی کنیم
پاورقی ۱: حضرت علی(ع) میفرمایند: هرگاه خداوند بندهای را پست و ذلیل گرداند، علم را برای او ممنوع سازد.پاورقی ۲: حضرت علی(ع) میفرمایند: خداوند مردم نادان را برای تعلم مسوول قرار نداد مگر اینکه نخست اهل علم را برای تعلیم آنان قرار داد.یا علی