فکر کنم الان دیگر ۷-۸ سال است که سیستم عامل رایانههایی که با آنها کار میکنم لینوکس است. قبلتر از آن مدتی (۱-۲ سال) هر دو سیستم عامل را داشتم و بینشان جابجا شدم بعد کلا رفتم روی لینوکس. آن موقع خیلی بیشتر با رایانه بازی میکردم و یکی از عوامل اصلی جلوگیری از انتقال کامل بازی کردن بود. بعد که به مرور سختافزار رایانه بازیهای روز را نمیکشید و مهمتر از آن آمدن Dota 2 روی Steam و اینکه میشد در لینوکس آن را بازی کرد از این لحاظ قضیه حل شد.
الان دیگر به حدی از ویندوز فاصله گرفتم که چندی پیش که خواستم روی آن کاری بکنم دیدم سختم است (نمیدانستم جای فلان چیز دقیقا کجاست و کند جلو میرفتم).
قبلا به نظرم واضح بود که چرا لینوکس برای آدمی مثل من مناسبتر از ویندوز است ولی چند وقت پیش که کسی ازم پرسید چرا روی لینوکس کار میکنی، در لحظه جوابی نداشتم. البته تا جایی که دیدهام معمولا کلا در لحظه جواب درستی ندارم.
اینجا میخواهم جواب سؤال رو بدم. اینکه چرا لینوکس؟
موارد اثرگذار شخصی
من قبلش دو موردی رو بگم که شخصیتر هستند و معمولا مستقل از اینکه گزینهها چی هستند به انتخاب من جهت میدهند:
- اگر دو وسیله در مقایسه با هم نزدیک باشند. آن را انتخاب خواهم کرد که طرفدار کمتری دارد
- در تقابل ارزشها با آزادی من معمولا سمت آزادی میایستم.
مثلا یک زمانی به نظر من اسنپ و تپسی تقریبا مشابه بودند. من همان موقع از تپسی استفاده میکردم چون کاربران کمتری داشت. یا در مورد مرورگر اگر در نهایت به این نتیجه برسم فایرفاکس و کروم از جنبههای مختلف نزدیک به هم هستند. فایرفاکس را انتخاب میکنم که کاربران کمتری دارد. طرفدار کمتر هم منظورم آن قدر کم نیست که فقط تعداد کمی از آن استفاده کنند و اگر جایی به مشکل خوردی نتوانی آن را حل کنی.
درباره مورد دوم مثال بزنم این میشود که آزاد بودن و بازمتن بودن یک نرمافزار برای من یک امتیاز مثبت محسوب میشود. اگر بین اپل و اندروید بخواهم انتخاب کنم با فرض اینکه در بقیه موارد مشابه هستند اندروید را انتخاب میکنم که آزادتر است (حداقل قبلا بود). یا مثلا در مورد ماشین اگر دو ماشین شبیه هم باشند. یکی اگر کمربند را نبستی مرتب تا ۲ دقیقه بوق بزند و نتوانی آن را قطع کنی ولی دیگری این را نداشته باشد دومی را انتخاب میکنم.
بین لینوکس و ویندوز چرا لینوکس؟
اول اینکه مقایسه من بین لینوکس و ویندوز است. تا به حال مک نداشتهام و از آن استفاده نکردهام و در مورد آن آنچنان نظری ندارم. تجربه ویندوزم هم برمیگردد به ویندوز ۷ خیلی موارد میدانم تغییر کرده. موارد احتمالا بیشتری هم باشد که تغییر کردهاند و من نمیدانم. بنابراین شاید یک سری مواردی که به عنوان مزیت لینوکس به نظرم میآید الان دیگر مزیت نباشند.
دوم اینکه قسمت قابل توجهی از کاربری من از رایانه مربوط به برنامهنویسی میشود. دلایل جدی برتری لینوکس برای من هم بیشتر از همین زاویه است. این را باید در نظر گرفت. برای کسی که کاربری اصلیاش بازی است یا مرور اینترنت و فیلم دیدن اوضاع متفاوت است.
لینوکس در مقابل ویندوز هر دو مورد اثرگذار شخصی که گفتم را دارد. اما بقیه نکات مثبت که به ترتیب اهمیت میآورم:
۱. جامعه
مهمترین ویژگی که تا حد خوبی بقیه ویژگیهای خوب هم به این مورد وابسته است جامعهای است که دور نرمافزارهای آزاد شکل گرفته که لینوکس یکی از کانونهای آن است. این جامعه است که مزیتهای اصلی را برای اعضا میآفریند.
آشنایی من با بسیاری از نرمافزارهایی که روزانه از آنها استفاده میکنم به واسطه تماس بیشتر با این جامعه بوده. نرمافزارهایی مثل Syncthing, Bomi, Obsidian, Albert, Alacritty, … نه اینکه اینها نسخه ویندوز نداشته باشند بسیاری از آنها دارند و برخی هم شاید از اول داشتند. ولی من به واسطه لینوکس با اینها سریعتر آشنا شدم.
در این جامعه شما بیشتر تشویق میشوید که کارها و فرایندها را برای خودتان راحتتر کنید.
نرمافزارهای آزاد
من گفتم که برای آزادی نرمافزار به خودی خود ارزش قائل هستم. استفاده از لینوکس و به واسطه آن حضور بیشتر در جامعهای که حول نرمافزارهای آزاد شکل گرفته باعث شده و میشود که از نرمافزارهای آزاد بیشتری استفاده کنم.
بله هستند نرمافزارهای آزادی که در مقابل نرمافزار مشابه غیر آزاد در ویندوز از قابلیتهای کمتری برخوردارند. که البته اوایل این مورد بیشتر برایم محسوس بود الان به نظرم نرمافزارهای آزاد خیلی جلوتر رفتهاند و من کمتر اینگونه موارد را میبینم.
در عین حال به نظر من اگر در یک نرمافزار آزاد شما به مشکلی بخوری یا نیاز به ویژگی خاصی داشته باشی احتمال اینکه آن ویژگی پیادهسازی و یا آن مشکل رفع شود بیشتر از نرمافزار بسته است. به خصوص اگر افرادی که خواهان آن ویژگی هستند در اقلیت باشند.
در نرمافزار آزاد به جز افراد اصلی آن نرمافزار بقیه هم میتوانند ویژگیای که میخواهند را پیادهسازی کنند یا مشکلی که به آن برخوردهاند را حل کنند ولی در نرمافزار بسته (احتمالا بهتر باشد بگویم غیر متن باز) فقط صاحبان آن نرمافزار این امکان برایشان فراهم است. بله اگر افراد بسیاری یک ویژگی را درخواست کنند. انگیزه مالی به صاحبان کمک میکند آن ویژگی سریعتر پیاده شود. اما اگر افراد در اقلیت باشند احتمال پیادهسازی کم خواهد بود.
مثلا در مورد پشتیبانی از زبانهای راست به چپ، گاهی افرادی که دنبال این ویژگی هستند به اندازهای نیستند که صاحبان نرمافزار قانع شوند تا آن ویژگی را پیاده سازی کنند. نمونهاش Sublime Text.
ولی در نرمافزارهای آزاد خود افرادی که دنبال یک ویژگی هستند آن را پیادهسازی میکنند. حتی اگر خود فرد برنامهنویس نباشد میتواند با ابزارهایی که اخیرا جاافتادهتر هم شدهاند برای برنامهنویسی که آن ویژگی را پیادهسازی کند مبلغی تعیین کرده تا برای بقیه برنامهنویسان انگیزه مالیای ایجاد شود که آن را پیاده کنند. ولی برای نرمافزارهای غیر آزاد چنین امکانی نه برای برنامهنویسان نه بقیه وجود ندارد.
۲. برنامهنویسی
از بین زبانهای برنامهنویسی محبوب کار کردن و جلو رفتن با همه به جز #C در لینوکس راحتتر است. راه انداختن، تنظیمات و عیبیابی در لینوکس معمولا راحتتر از ویندوز انجام میشود.
ابزارها هم همینطور. بسیاری از آنها در مراحل ابتدایی از ویندوز پشتیبانی نمیکنند. interface ابتدایی بسیاری از ابزارها در ابتدا cli است. ویندوز قبلا در پوشش دادن ویژگی مشابه terminal لینوکس خیلی ضعیف بود، الان گویا کمی بهتر شده ولی شک دارم که همان کیفیت را بتواند ارائه کند.
۳. شخصیسازی
من طرفدار شخصیسازی هر ابزاری هستم که بخش زیادی از زمانم را به استفاده از آن میگذرانم. رایانه و سیستم عامل هم یکی از آنهاست. به نظرم با شخصیسازی کاراتر میتوانم از آن ابزار استفاده کنم و خب وقتی قرار است زمان زیادی از آن استفاده کنم مزایای شخصیسازی به دردسرش میارزد. این شخصیسازی برای من یک روند دائمی است.
در لینوکس شما بخشی از جامعهای هستید که بسیاری در آن دنبال شخصیسازی هستند، راههای جدید را میسازند و ترویج میکنند. این مسیر را برای شما هموار میکند. قرار نیست یک شرکت نحوه یا محدوده استفاده از ابزار را تعیین کند و مثلا به بهانههایی مانند امنیت، درست نبودن، کند شدن، … محدودیتهایی اعمال کند.
من در حال حاضر از توزیع Arch Linux و مدیریت پنجره i3 استفاده میکنم. بعلاوه بسیاری از شخصیسازیهای ریز و درشت دیگر که این سطح از شخصیسازی در ویندوز یا ممکن نیست یا به راحتی لینوکس نمیتوان به آن رسید. ویندوز تا همین اخیرا اصلا مفهومی به نام Workspace های متفاوت را نداشت. برخی از تنظیمات من را میتوانید در مخزن dotfilesم ببینید.
۴. سبک بودن سیستم
برای سیستمهای قدیمی و ضعیف نسخهای از لینوکس وجود دارد که بهتر و روانتر از نسخههای ویندوز (حتی قدیمی) کار میکند.
تا حدی هم منطقی است بالاخره مایکروسافت تا همین چند سال پیش از فروش ویندوز درآمد داشت. ترجیحش بهتر کردن ویندوز در هر نسخه جدید و هل دادن کاربران به خرید نسخه جدید است. تلاش برای پشتیبانی از ویندوز برای سیستمهای قدیمی آنچنان سودآور نیست و برای شرکت نمیارزد که سرمایهگذاری جدی در آن بکند.