لینوکس ویندوز نیست
این چند وقت بحث زیادی در مورد لینوکس و ویندوز در گرفته. من اصولا این بحث را زیاد مربوط نمیدانم چون کامپیوتر و به تبع آن سیستم عامل یک ابزار است و تا وقتی ما هدف از استفاده را نشناسیم، انتخاب ابزار بیمعنی است. من از لینوکس استفاده میکنم و برای اینکار دلایل زیادی دارم. در عین حال به نظرم در آینده مردم بیشتر و بیشتر از گنو/لینوکس استفاده خواهند کرد اما در عین حال معتقدم بدترین کاری که برای لینوکس میشود کرد این است که جوی بوجود بیاوریم که افراد بدون درک از اینکه هدفشان چیست، به این امید که همه مشکلاتشان حل شود آن را نصب کنند. به هرحال... به عنوان مشارکت در این بحثها، این مقاله مشهور (Linux is NOT Windows) را اینجا ترجمه می کنم.
=!
مشکل ۱: لینوکس دقیقا ویندوز نیست
شاید تعجب کنید ولی خیلیها از این موضوع اظهار شکایت میکنند. این آدمها از ویندوز به لینوکس میآیند تا یک سیستمعامل دقیقا مشابه ویندوز ولی آزاد داشته باشند. حتی در مواردی میبینیم که این حرف که لینوکس دقیقا مشابه ویندوز است را طرفداران افراطی لینوکس برای جلب ویندوزیها میگویند.
دلیل آمدن افراد به لینوکس متنوع است اما شاید بشود همه آنها را در یک دلیل خلاصه کرد: داشتن سیستمعاملی بهتر. اما بهتر بودن را چگونه باید سنجید؟ فاکتورهای بسیاری در بهتر بودن و بدتر بودن یک سیستم عامل مهمند. مثلا هزینه، حق انتخاب، کارایی، ایمنی و خیلی چیزهای دیگر. اما به هرحال شکی نیست که هر کسی که از ویندوز به لینوکس میآید، این کار را میکند تا به چیز بهتری برسد.
اما یک مشکل هست.
از نظر منطقی غیر ممکن است چیزی از چیز دیگر بهتر باشد بدون اینکه با آن تفاوت داشته باشد. اگر کسی لینوکس را امتحان کند و انتظار داشته باشد که با چیزی بهتر از ویندوز رو برو شود، باید هم انتظار داشته باشد که با چیزی متفاوت روبرو شود. خیلیها این واقعیت را نادیده میگیرند و وجود هر تفاوت را به عنوان نقص در لینوکس استنباط میکنند.
به عنوان مثال، به مساله به روز رسانی درایورها دقت کن. در ویندوز آدمها برای به روز رسانی درایورها به وب سایت تولید کننده میروند و نسخه جدید را دانلود و اجرا میکنند. در لینوکس این کار با به روز رسانی کرنل انجام میشود.
در واقع در لینوکس دانلود یک کرنل و نصب آن کل درایورها را به روزرسانی میکند در حالی که در ویندوز باید به کلی سایت سر بزنید و هر کدام از به روز رسانیها را به شکل جداگانه انجام دهید. این دو روش کاملا با هم فرق دارند ولی کماکان خیلی ها شکایت می کنند که چرا در لینوکس امکان آپدیت درایورها وجود ندارد بدون اینکه بدانند هر به روز رسانی کرنل، تمام درایورها را هم به روز رسانی میکند.
یا مثلا به فایرفاکس نگاه کنید که این روزها مشهورترین نمونه موفقیت نرمافزارهای بازمتن است. این نرمافزار مشهور شد چون از اکسپلورر بهتر بود. اگر قرار بود شبیه آن باشد هیچ وقت نمیتوانست جایش را بگیرد. فایرفاکس از همان اول از برگهها (تبها) پشتیبانی میکرد، بوکمارک زنده داشت، امکان جستجو داشت، تصاویر PNG را نشان میداد، میتوانست جلوی تبلیغات ناخواسته را بگیرد و ... قابلیت جستجو در نوار ابزاری در قسمت پایین نمایان شده و به دنبال همانندهایی که تایپ کردهاید میگردد، وقتی نتیجهای به دست نیاید قرمزرنگ میشود. در عوض IE تب که ندارد، از RSS سر در نمیآورد، خودش جای جستجو در گوگل و یاهو و ... ندارد و اگر بخواهید چیزی را جستجو کنید باید یک پنجره باز کنید و بعد OK را بزنید و اگر چیزی پیدا نشد ایراد Not Found را ببینید. این نمونهای است از اینکه چرا یک نرمافزار بهتر، با تفاوتی که دارد پیروز میشود. اگر فایرفاکس، کپی آی.ای. بود هیچ امیدی نداشت. دقیقا همانطور که اگر قرار بود لینوکس عین ویندوز باشد، به هیچ دردی نمیخورد.
پس راه حل ایراد اول این است که به یاد بسپاریم که لینوکس با ویندوز فرق دارد. درست است که این دو شبیه هم هستند و تقریبا همانطور که با ویندوز کار میکردید میتوانید با لینوکس هم کار کنید ولی تلاش لینوکس به هیچ وجه این نیست که شبیه ویندوز باشد. لینوکس یک ویندوز بهتر نیست. اگر به لینوکس آمدهاید خوش آمدهاید، اینجا چیزها با ویندوز فرق دارند چون فقط با همین کار است که میتوانند بهتر باشند.
مشکل ۲: لینوکس خیلی با ویندوز فرق دارد
حالا با کسانی طرفیم که پذیرفتهاند لینوکس و ویندوز دقیقا یک چیز نیستند، اما تفاوتی که میبینند بیشتر از آن است که انتظارش را دارند. شاید بهترین مثال، حق انتخاب بسیار وسیع در لینوکس باشد. اگر کسی به شما بگوید که یک کامپیوتر ویندوز XP خریده، کاملا میدانید که بعد از زدن به برق با چه شکلی و چه نرمافزارهایی روبرو خواهد شد: آن پسزمینه تکراری، وردپد، اکسپلورر، آوت لوک اکسپرس و ... . اما همچین چیزی در مورد لینوکس غیرممکن است. حتی کل رابط گرافیکی ممکن است متفاوت باشد. از گنوم و کی.دی.ای. گرفته تا فلاکسباکس و اوپنباکس از اوپرا و فایرفاکس گرفته تا کانکوئرور و گالئون و دیلو و .. .
خیلی پیش میآید که کاربر ویندوز که به اینهمه تنوع عادت ندارد گیج یا حتی وحشتزده شود. آیا واقعا این میزان از تنوع لازم است؟ مگر سیستم عامل چیزی بیشتر از یک برنامه است که به ما اجازه میدهد برنامههای دیگر را اجرا کنیم؟ برای جواب به دنیای اتومبیلها نگاه کنید. مگر ماشین چیزی بیشتر از وسیلهای است که به ما اجازه میدهد از نقطه الف به نقطه ب برویم؟ شاید با خودتان بگویید که تفاوت خودروها فقط در رنگ و قیافه است وگرنه همه یک فرمان دارند و یک گاز و چند دنده و ... . موتورسیکلت چی؟ تراکتور؟ هواپیما؟ (: ماشین کورسی چی؟
رفتن از یک ویندوز به یک ویندوز دیگر مثل عوض کردن یک ماشین معمول به یک ماشین معمول دیگر است (: اما تغییر از ویندوز به لینوکس مثل عوض کردن خودرو با موتورسیکلت، ماشین کورسی و ... است. هنوز هم از برنامهای برای اجرای برنامههای دیگر استفاده میکنید اما دیدگاه کاملا عوض شده است. مثلا در خودروی ویندوز لازم بود حتما آنتی ویروس نصب کنید تا از شر مزاحمان در امان بمانید اما مزاحمان جاده (چه ویروسها، چه هکرها و چه تبلیغات) از نظر فنی امکان ورود به کاروان لینوکسی شما را ندارند.
یا از یک زاویه دیگر:
خودروی لینوکس از اول برای چندین مسافر طراحی شده در حالی که موتورسیکلت ویندوز تک سرنشین طراحی شده. از اول برنامه این بوده که هر کسی روی موتورسیکلت ویندوز نشست، همه کاره این وسیله نقلیه باشد ولی در اتوموبیل لینوکس کسی خودرو را کنترل می کند که پشت فرمان نشسته و بقیه میتوانند سوار و پیاده شوند ولی الزاما پشت فرمان ننشینند.
خیلی چیزها هستند که استفاده از موتور یا ماشین، در آنها تفاوتی ایجاد نمیکند. مثلا استفاده از بنزین، جاده، قوانین راهنمایی و رانندگی، علامت دادن قبل از پیچیدن و محدودیتهای سرعت.
اما چیزهایی هم هستند که تفاوت دارند. در ماشین لازم نیست کلاه ایمنی بگذارید، موتورسوارها کمربند ایمنی ندارند، ماشینها با چرخاندن فرمان دایرهای کنترل میشوند و موتورها با چپ و راست کردن یک دسته و وزن بدن و ...
مشکل سوم: شوک فرهنگی
زیرمشکل ۳ الف: فرهنگی که از قبل وجود دارد
کاربران ویندوز - حداقل در صورتی که نرم افزار را ندزدیده باشند - یک رابطه مشتری و فروشنده با ارائه دهنده سرویس دارند. آنها برای نرم افزار افزار، گارانتی، پشتیبانی و هر چیز دیگر پول میدهند. آنها انتظار دارند که نرم افزاری که خریده اند تا حد قابل قبولی درست کار کند و نسبت به آن احساس حق میکنند: آنها پول دادهاند و حق دارند که آن را کامل و با پشتیبانی دائمی تحویل بگیرند. در عین حال طرف حساب آنها شرکت ها هستند نه افراد.
کاربران لینوکس بر خلاف حالت قبل، تشکیل یک جامعه را میدهند. آنها برای نرم افزار و خدمات پول نمیدهند. نرم افزار را به رایگان دریافت میکنند و از طریق اینترنت از جامعه یا نویسندگان کمک میگیرند. آنها با آدمها طرف هستند نه شرکتها.
اگر کاربر ویندوز با همان عقاید و رفتارهایی که سابقا داشته، به دنیای لینوکس بیاید، به چیزی که میخواهد نخواهد رسید.
این تضاد را شدیدا در فرومها می بینید: کاربر اول که تازه به دنیای لینوکس آمده یک سوال مطرح میکند. وقتی جوابی که میخواهد را نمیگیرد، شروع به انتقاد میکند و کمک بیشتری میطلبد. این همان چیزی است که در دنیای تجاری اتفاق میافتد. مساله این است که اینجا کسی برای کمک، حقوق نمیگیرد. اینجا آدمهای داوطلبی هستند که میخواهند به بقیه کمک کنند چون اینکار برایشان جذاب است.
دقیقا به دلیل بالا، در دنیای ویندوز شرکتها تا نرمافزارشان به سطح کاملا قابل قبولی از پایداری نرسد، آن را منتشر نمیکنند چون توان پشتیبانی تجاری یک نرمافزار تکمیل نشده را ندارند. اما در دنیای لینوکس، هر نرم افزار از اولین نسخههایش به تست عمومی گذاشته میشود. با اینکار کسانی که به آن علاقمند هستند میتواند در اولین لحظات نوشته شدن از آن استفاده کنند و حتی برنامه نویسان میتوانند بخشی از نوشتن بقیه آن را بر عهده بگیرند. در این حالت کل جامعه درک میکند که این نرمافزار هنوز به مرحله نهایی نرسیده است.
در این جهان، یک تازه وارد ویندوزی ممکن است حس کند برنامهای که استفاده میکند قابلیتهای فنی لازم را ندارد و شروع به غر زدن کند. تصور کنید جوابی مثل این بشنود که «اگر نمی خواهی، همانقدر که پول دادهای را پس بگیر و برو!» و به این نتیجه برسید که چه حسی به این تازه وارد دست خواهد داد.
برای فائق آمدن به این مشکل به یاد داشته باشید که نرم افزار را رایگان دریافت کردهاید و به کسی هم برای پشتیبانی پول ندادهاید.
زیرمشکل ۳ ب : جدید در مقابل قدیم
لینوکس به عنوان یک سرگرمی یک هکر ابداع شد. بعد هکرهای دیگر جذب آن شدند و حتی تا یکی دو سال بعد هم هیچ کس به جز گیکهای حرفهای نمیتوانستند یک کامپیوتر لینوکسی را راه اندازی کنند. لینوکس در ابتدا یک نرم افزارها «از گیک، برای گیک» بود و حتی امروز هم اکثریت کاربران لینوکس، کسانی هستند که با افتخار خودشان را گیک مینامند.
این یک مزیت ایجاد میکند: اگر با سخت افزار یا نرم افزار مشکلی داشته باشید، کلی گیک در دنیا هستند که حاضرند روی مشکل شما کار کنند.
اما لینوکس از آن روزها پیشرفت زیادی کرده. این روزها توزیعهایی (در واقع انواع مختلفی از گنو لینوکس) وجود دارند که برای نصب نیاز به هیچ سواد فنی ندارند. توزیع هایی هستند که به شکل دیسک زنده بوت میشوند و بدون هیچ دخالتی از جانب شما، همه سخت افزارها را میشناسند (چیزی که در ویندوز غیر ممکن است). این روزها بعضی از غیرگیکها هم دارند به لینوکس به عنوان یک سیستم عامل امن، بدون ویروس، سریع و آزاد علاقمند میشوند.
این دو شاخه مختلف لینوکس، گاهی با هم بحثشان میشود یا با هم تضاد پیدا میکنند. چیزی که باید به یاد داشته باشید این است که دو طرف این بحث، با وجود داشتن دیدگاههای متفاوت میتوانند با هم کنار بیایند. هیچ یک از این دو دیدگاه، بد ذات نیستند و نمیخواهند طرف مقابل را تخریب کنند. بگذارید دقیقتر نگاه کنیم.
در طرف اول، گیکهای حرفهای هستند که فکر میکنند هر کس از لینوکس استفاده میکند باید یک گیک باشد. گیک بودن یعنی داشتن دانش فنی عمیق یا علاقه و آمادگی به کسب آن. این سبک زندگی گاهی منجر به خشونت در کلام نسبت به کسانی که نمیخواهند این دانش را کسب کنند میشود.
در طرف دوم، آدمهای غیرفنیای هستند که بعد از یک عمر استفاده از سیستمهای تجاری دیگر، به دنیای لینوکس آمدهاند. این آدمها به نرمافزارهایی عادت دارند که هر کسی میتواند بعد از یک نصب ساده، شروع به استفاده از آن کند.
مشکل اینجا حاد میشود که گروه یک دوست دارد بتواند سیستم عامل را تا عمیقترین لایه تنظیم و بازسازی کند در حالی که برای گروه دوم، سیستم عامل چیزی است که باید بدون هیچ دخالت و دردسری، نصب و اجرا شود.
بذارید با لگو مثال بزنم. همان مکعبهای کوچکی که با وصل شدن به هم میتوانند هر چیزی بسازند. این صحنه را تصور کنید:
تازه وارد: من دنبال یک ماشین اسباب بازی جدید بودم و دیدم همه در مورد باحال بودن لگو حرف میزنند. پس رفتم و یک ماشین لگویی خریدم اما وقتی به خانه رسیدم کلی مکعب و چرخ و این جور چیزها در جعبه بود. پس ماشین من کجاست؟قدیمی: خب باید ماشینات را از همان مکعبها درست کنی دیگر. این دقیقا چیزی است که قرار است لگو باشد.
تازه وارد: چی؟ من چه میدانم چطور باید ماشین ساخت! من که مکانیک نیستم. از کجا قرار است ماشین ساختن بلد باشم؟
قدیمی: حتما در جعبه یک راهنما هم هست. راهنما دقیقا میگوید که ماشین چطور باید ساخته شود. لازم نیست چیزی را از قبل بدانی. فقط باید راهنماها را دنبال کنی.
تازه وارد: آه درست است. راهنما اینجاست. ولی درست کردنش ساعتها طول میکشد! خب چرا یک ماشین کامل در جعبه نگذاشتهاند؟ مگر من باید ماشین را درست کنم؟
قدیمی: خب تو حتما لازم نیست بخواهی ماشین درست کنی. اما کسانی که دوست دارند، لگو میخرند. خوبیش این است که میتوانی از لگو هر چیز دیگری هم درست کنی. کل ایده همین است.
تازه وارد: ولی من که نمیفهمم چرا باید ماشین درست کنم! خب چرا مثل آدم یک ماشین کامل در جعبه نبود تا اگر کسی خواست بازش کند و دوباره خودش بسازدش... به هرحال... حالا که بعد از چند ساعت کار ماشین را ساختهام جالب شده ولی گاهی بعضی از قسمتها جدا میشود. میشود آنها را با چسب بچسبانم؟
قدیمی: خب میشود.. ولی دیگر لگو نخواهد بود. این سیستم درست شده تا قطعاتش قابل جدا کردن و وصل کردن دوباره باشد.
تازه وارد: ولی من دوست ندارم قعطاتش جدا شود! من فقط میخواهم یک ماشین اسباب بازی داشته باشم
قدیمی: خب لعنتی! پس چرا لگو خریدهای؟!!
همه میدانند که لگو به درد کسانی که میخواهند فقط یک ماشین اسباب بازی داشته باشند نمیخورد. کسی که لگو میخرد، دوست دارد با آن بازی کند و چیزهایی که میخواهد را بسازد. اگر علاقمند به ساختن چیزهایی که در ذهنتان هست نیستید، لگو به درد شما نمیخورد. این کاملا واضح است.
تا جایی که به کاربر قدیمی مربوط میشود، لینوکس هنوز همان لگوی دوست داشتنی قدیمی است: یک سیستم بازمتن و آزاد که کاملا قابل تنظیم شدن توسط کاربر است. این بهترین ویژگی لینوکس است. اگر نمیخواهید با اجزای تشکیل دهنده سیستم عامل خودتان ور بروید، چه دلیلی دارد سراغ لینوکس بیایید؟
اما اخیرا تغییرات زیادی به نفع کاربر تازه وارد انجام شده و لینوکس بیشتر و بیشتر با نیازهای غیرهکرها سازگار شده است. البته گفتگوهایی مثل متن بالا هنوز هم تکرار میشوند. کاربران تازه وارد از اینکه برای استفاده از چیزی باید راهنما بخوانند، تعجب میکنند ولی به هرحال از نظر آنها، چیزی که دریافت میکنند یک لگوی از پیش ساخته است که اگر کسی بخواهد میتواند آن را از هم باز کند و اگر نخواهد میتواند تا ابد از همان ماشین اسباب بازی که در کارخانه سر هم شده، لذت ببرد. البته هنوز این شکایت را هم میبینیم که انتخاب بین توزیعهای مختلف زیاد است یا انتخابهای زیادی هستند برای نصب هر نرمافزار یا بعضی سختافزارها سازگاری لازم را ندارند. این مثل این است که کسی شکایت کند که لگو انواع مختلفی اسباب بازی میسازد و ناراحت باشد از اینکه لگو سعی میکند تمام اسباب بازیهایش را قابل باز شدن و دوباره ساختن، ارائه دهد.
پس برای جلوگیری از زیرمشکل ۳ ب باید به یاد داشته باشید که این روزها لینوکس دقیقا آن چیزی که قدیمها بود نیست. اما کماکان حجم زیادی از جامعه پشت لینوکس - از جمله هکرها و توسعه دهندگان آن - آن را به همان دلایل قدیمی دوست دارند.
مشکل چهار: طراحی شده برای طراح
در صنعتی مثل صنعت اتوموبیل، تقریبا محال است ببینید همان کسی که موتور خودرو را طراحی کرده، بدنه را هم رنگآمیزی کند. همین مساله در دنیای نرمافزار هم صادق است؛ در اکثر موارد کسی که اصل برنامه را مینویسد با کسی که رابط گرافیکی را طراحی میکند متفاوت است.
اما در دنیای لینوکس، پروژهها معمولا توسط یک نفر شروع میشوند و به عنوان یک سرگرمی (: در ابتدای کار یک نفر همه کارها را میکند و به همین دلیل او بیشتر دنبال نوشتن برنامههای حرفهای است تا درست کردن رابطهای کاربر پسند: کاربر اول این برنامه خود برنامهنویس است و همه چیز در مورد برنامه را میداند. سادگی استفاده برای او اصلا مهم نیست. مثلا vi را در نظر بگیرید. این برنامه دقیقا برای کسی طراحی شده که کار با آن را بلد است. یک کاربر تازه وارد ممکن است برای خارج شدن از آن، مجبور شود کامپیوترش را بوت کند!
یک تفاوت مهم دیگر هم بین نرمافزارهای آزاد و بازمتن (FOSS) و نرمافزارهای تجاری هست: برنامه بازمتن معمولا به خاطر استفاده برنامهنویس توسعه پیدا میکند در حالی که برنامه تجاری برای استفاده شدن توسط مشتری نوشته میشود. این مساله تیغ دو لبه است: از یک طرف کاربر با برنامهای مواجه است که استفاده از آن چندان راحت نیست ولی در مقابل کاربر نهایی مطمئن است که این برنامه برای استفاده خود نویسنده طراحی شده و در نتیجه او تمام تلاش خود برای بالا بردن کیفیت برنامه را کرده است. در عین حال در این حالت کاربرنهایی دقیقا میداند که نویسنده برنامه درک میکند کاربرنهایی چه میخواهد چون خودش هم یکی از کاربران برنامه خواهد بود؛ درست برعکس یک برنامه تجاری.
بازهم به vi نگاه کنید؛ رابط کاربری آن بسیار برای یک کاربر تازه کار سخت است اما در عوض آنقدر قوی است که هنوز هم به عنوان اصلیترین ویرایشگر متن، استفاده میشود.
پس رابطهای کاربری لینوکس معمولا برای کاربر تازه کار کمی عجیب هستند و چیزی مثل vi اصولا برای تازه کاری که میخواهد چند تغییر در یک فایل ایجاد کند، اصولا چیز مناسبی نیست. در عین حال اگر در حال استفاده از نسخههای اولیه و در حال توسعه یک نرمافزار باشید، احتمالا رابط کاربری خوب و راحت و زیبا فقط در بخش ToDoی برنامه یافت خواهند شد. اولویت اول یک برنامه نویس، هسته اصلی برنامه است نه رابط گرافیکی آن. هیچ برنامه نویس بازمتنی اول یک رابط گرافیکی مکش مرگ من طراحی نمیکند تا بعدا سر فرصت سراغ نوشتن کارکرد اصلی برود. در این دنیا، اول کارکرد اصلی برنامه نوشته میشود و بعد قدم به قدم رابط گرافیکی بهبود مییابد.
پس برای جلوگیری از مشکل ۴: به سراغ برنامههایی بروید که برای راحتی کاربر طراحی شدهاند یا بپذیرید که در این دنیا روند یادگیری استفاده از برنامهها ممکن است کندتر باشد. ایراد گرفتن از این که چرا استفاده از vi راحت نیست، باعث خواهد شد همه باور کنند که شما اصولا نکته را نگرفته اید (:
مشکل ۵: افسانه کاربرپسندی
یک مساله جدی. عبارت کاربرپسند یا User Friendly آنقدر مهم است که یکی از سایتهای کاریکاتور بسیار مشهور هم اسمش را همین گذاشته (در ایران فیلتر است، چون در مورد برنامه نویسی است). اما این عبارت، عبارت ناجوری است.
ایده اصلی خوب است: نرمافزار باید بر اساس نیازهای کاربر نوشته شود. اما نمیشود به این مساله نگاهی تک بعدی داشت.
اگر در تمام طول زندگی مشغول تحلیل فایلهای متنی باشید، نرمافزار مورد پسند شما یک نرمافزار سریع و قدرتمند خواهد بود که به شما اجازه بدهد بیشترین حجم کار را در کمترین وقت انجام دهید. شما از داشتن چند کلید میانبر و عدم نیاز به استفاده از ماوس برای کنترل برنامه، لذت خواهید برد.
اما اگر خیلی کم با فایلهای متنی کار داشته باشید و فقط گاه گاهی بخواهید یک نامه تایپ کنید، بهتر است نیازی به یادگیری هیچ کلید میانبری نداشته باشید. در این حالت شما نیازمند منوهای خوب و شکلک/آیکنهای واضح خواهید بود. نوارابزارها هم در این حالت میتوانند حسابی مفید باشند.
شکی نیست که نرمافزاری که بر اساس نیازهای کاربر اول طراحی شده باشد، برای دومی مفید نیست. و البته برعکس. حالا به چه نرمافزار ویرایش متنی باید کاربرپسند بگوییم؟
جواب ساده: کاربرپسندی، لغت ناواضحی است که سعی میکند یک مفهوم پیچیده را ساده جا بزند.
کاربرپسند واقعا به چه معنا است؟ در واقع کاربرپسندی را باید به این معنی دانست: نرمافزاری که یک کاربر، بدون داشتن تجربه قبلی بتواند در حد معقولی از آن استفاده کند. توجه کنید که بنا بر این تعریف، برنامههایی که از منوهای بد ولی آشنا برای شما استفاده کنند، کاربرپسند به نظر خواهند رسید.
زیرمشکل ۵ الف: آشنا، مورد پسند است
واقعیت این است که این روزها در اکثر ویرایشگرهای متن آشنا و کاربرپسند شما میتوانید با Ctrl+X و Ctrl-V متون را Cut و Paste کنید. این دو کلید واقعا بیربط به کاری که میکنند هستند اما چون آشنا هستند، کاربرپسند به نظر میرسند.
حالا اگر کسی سراغ vi بیاید و ببیند که d برای cut استفاده میشود و p برای paste، این به نظرش ناکاربرپسند خواهد رسید چون به آن عادت ندارد.
حالا کدام مفیدتر است؟ vi (:
با داشتن Ctrl+X، چطور میتوانید با کیبرد یک کلمه را cut کنید؟ اول باید به اول کلمه بروید و بعد Ctrl+Shift+Right را بزنید و بعد از اینکه انتخاب شد، Ctrl+X را فشار دهید.
در vi؟ dw یا در اصل delete word.
حالا اگر بخواهید پنج کلمه را Ctrl+X کنید چه؟ به اول کلمه بروید و بعد Ctrl+Shift+Right را فشار دهید و بعد
Ctrl+Shift+Right
Ctrl+Shift+Right
Ctrl+Shift+Right
Ctrl+Shift+Right
Ctrl+X
و در vi؟ d5w که در اصل همان Delete 5 words است.
میبینید که روش vi کاملا سریعتر و منطقیتر است. X و V هیچ ربطی به cut و paste ندارند اما d و w حروف اول delete و word هستند. اما... اما ما به x و v عادت کردهایم و vi به نظرمان غیردوستانه میآید و اگر ادیتوری ببینید که شبیه ویندوز باشد، به نظرتان دوستانه خواهد آمد. یادتان هست؟ مشکل شماره ۱ این بود که لینوکس عین ویندوز نیست؛ دقیقا به همین خاطر برای یک تازه وارد لینوکس در اوایل غیردوستانهتر میآید.
برای غلبه بر مشکل ۵الف، باید به یاد داشته باشید که «کاربر پسند» به معنی «چیزی که کاربر به آن عادت دارد» نیست.
زیرمشکل ۵ ب: کاربرپسند، غیرکارا است
این یک واقعیت دوست نداشتنی است. متاسفانه هر چقدر راه دستیابی به کارکرد مورد نظر دورتر باشد، برنامه کاربرپسندتر به نظر خواهد رسید. چرا؟ چون اصولا کاربرپسندی، با اضافه کردن نشانههای تصویری به قابلیت اصلی اضافه میشود و هر چقدر این نشانهها بیشتر باشند، برنامه کاربرپسندتر میشود. فرض کنید یک تازه وارد کامل به دنیای دیجیتال، پشت یک ویرایشگر متن ویزیویگ بنشیند (ویزیویگ یعنی برنامهای که دقیقا چیزی را پرینت خواهد گرفت که شما روی صفحه میبینید، مثل برنامه ورد مایکروسافت یا رایتر اوپن آفیس) و بخواهد بخشی از یک متن را سیاهتر / بولد کند. احتمالا:
- باید حدس بزند که فشردن Ctrl+B متن را سیاهتر میکند، که بعید است.
- باید دنبال نشانهها بگردد. احتمالا از منوی Edit شروع میکند و وقتی موفق نمیشود به سراغ منوی Format خواهد رفت و از آنجا Font را انتخاب خواهد کرد و به گزینه Bold خواهد رسید!
دفعه بعد که ویرایشگر متن تان را باز کردید، سعی کنید همه کارها را از طریق منوها انجام دهید. نه از میانبرها استفاده کنید و نه از آیکونهای روی نوارابزار. وقتی با سرعت لاک پشت پیش رفتید کشف خواهید کرد که چرا کاربرپسند بودن، غیرکارامد است.
در این دیدگاه، «کاربر پسند بودن» مثل گذاشتن چرخهای تمرینی در کنار چرخهای اصلی دوچرخه است. با چنین دوچرخهای هر کسی با هر سطحی از توانایی می تواند سوار دوچرخه شود. این چرخها برای یک نوآموز فوق العاده اند اما هیچ کسی که دوچرخه سواری بلد باشد به آنها علاقهای نشان نمیدهد و هیچ کس هم مدعی نمیشود که همه دوچرخهها را باید به آنها مجهز کرد.
اکثر برنامههای لینوکس برای کسانی که هنوز نیازمند چرخهای آموزشی هستند، نوشته نشدهاند. تصور برنامهها این است که شما علاقهمند هستید پیشرفت کنید. هیچ کس برای همیشه نوآموز نمیماند و میدانید که اگر چیزی یاد بگیرید، برای همیشه آن را بلد خواهید بود. این استدلال به اینجا میرسد که اکثریت آدمها، در وضعیت صفر نیستند و کمتر کسی است که در دنیای کامپیوتر نیازمند چرخهای آموزشی باشد.
شاید این استدلال را علیه این بشنوید: به هرحال ورد مایکروسافت هم همه این منوها را دارد ولی آیکونهای نوارابزار و کلیدهای میانبر را هم دارد. در واقع این نرمافزار خوبیهای هر دو دنیا را یکجا جمع کرده؛ کاربرپسند و کارا.
اما این دیدگاه را هم اضافه کنید: اول اینکه منوها و نوارابزار و همه این چیزها نیازمند برنامهنویسی هستند. برنامهنویسان لینوکس برای کارشان حقوق نمیگیرند پس سعی میکنند کدی که به آن علاقه ندارند را ننویسند. دوم اینکه اصولا کاربران خیلی حرفهای از نرمافزارهایی مثل ورد مایکروسافت استفاده نمیکنند. آیا تا به حال برنامهنویسی فوق حرفهای را دیدهاید که از مایکروسافت ورد استفاده کند؟ نه. آنها از emacs و vi استفاده میکنند.
چرا اینطور است؟ اول اینکه بعضی از کاراییهای «کاربرپسند» مجبورند قدرت را پایین بیاورند: مانند مثال cut و paste که در بالا زدیم. مساله دوم این است که اکثر قابلیتهای نرمافزاری مثل ورد در منوهایی هستند که در هر صورت مجبور به استفاده از آن هستید. شما فقط تواناییهای عمومی را در میانبرها و تولبارها پیدا میکنید و هنوز باید برای کاربردهای حرفهای که معمولا حرفهای ها به آن نیاز دارند، به سراغ منوهای پر دردسر بروید.
راستی این را هم در نظر داشته باشید که چرخهای آموزشی، معمولا بخش اصلی نرمافزارهای لینوکس نیستند ولی در بسیاری از موارد، در صورت نیاز میتوانید آنها را نصب کنید.
مثلا برنامه پخش کننده mplayer را در نظر بگیرید. برای پخش یک فایل باید mplayer filename را در ترمینال وارد کنید. در حین پخش، کلیدهای چپ و راست و صفحه بالا و پایین، میتوانند پخش را سریع به جلو یا عقب بروند. این چیزی نیست که معمولا به آن عادت دارید. پس بهتر است از gmplayer filename استفاده کنید تا به همان رابط گرافیکی همیشگی که معمولا علاقمند به دیدنش هستید، برسید.
یا بگذارید سراغ تبدیل یک CD صوتی به MP3 (یا بهتر از آن Ogg) بروید: در خط فرمان باید از برنامه cdparanoia استفاده کنید تا فایلهای دیسک را بخوانید. بعد باید از یک کد کننده استفاده کنید که (حداقل به نظر من) کار پچیدهای است. پس اگر من باشم چیزی مثل Grip را نصب میکنم تا با یک رابط گرافیکی دوبرنامه قبلی را در پشت صحنه اجرا کند و تبدیل سی.دی. به فایل صوتی را به کاری ساده تبدیل کند.
نتیجه؟ برای پیشگیری از مشکل ۵ب: به یاد داشته باشید که چرخهای آموزشی در دنیای لینوکس یک ابزار قابل نصب هستند و نه بخشی اصلی از سیستم. گاهی هم پیش مییاد که برنامهای اصولا چیزی به اسم چرخ آموزشی ندارد.
مشکل ۶: تقلید در برابر همگرایی
یکی از چیزهایی که همیشه پیش میآید این است که وقتی آدمها کشف میکنند لینوکس دقیقا همان ویندوز نیست، شروع میکنند به گفتن اینکه لینوکس اصولا از اول دقیقا قرار بوده همین باشد و اگر هم کسی سعی کند بخشی از آن را شبیه ویندوز کند، در اشتباه است. استدلال مخالف هم میشود:
لینوکس یک صفحه متنی خط فرمان بوده و همین که الان گرافیکی است یعنی مشغول کپی کردن از ویندوز است
تئوری بانمک، ولی اشتباهی است: اولین X Windowing System در سال ۱۹۸۴ نوشته شد که ادامه راه سیستم W Windowing System بود که پیش از این در دنیای یونیکس وجود داشت. ویندوز نسخه ۱، در سال ۱۹۸۵ منتشر شد که تازه تا سال ۱۹۹۰ که نسخه ۳ ویندوز آمد، کاربرد خاصی نداشت. در ۱۹۹۰ سیستم ایکس، به X11 رسیده بود که تقریبا همان چیزی است که این روزها هم استفاده میشود. توجه کنید که پروژه لینوکس تازه در سال ۱۹۹۱ شروع شد. نتیجه؟ لینوکس GUI (رابط گرافیکی) را از ویندوز کپی نکرده: لینوکس از رابط گرافیکیای استفاده کرده که مدتها پیش از ویندوز، وجود داشته.
ویندوز ۳، جایش را به ویندوز ۹۵ داد که تغییری عظیم در رابط گرافیکی مایکروسافت بود. این نسخه تعداد زیادی ابداع و خصوصیت جید داشت: درگ و دراپ (بگیر/بنداز)، نوارابزار و ... . لینوکس هم کمی بعد، این قابلیتها را به خودش اضافه کرد...
اپل در ۱۹۸۴
... نه (: همه این قابلیتها و خصوصیتهای جدید، از قبل هم وجود داشتهاند. NeXTSTep یا قدم بعدی که عموی سیستم عامل امروزی اپل / مک محسوب میشود، تمام این قابلیتها را داشت و نسخه اول آنها مدتها پیش از ویندوز ۹۵، یعنی در سال ۱۹۸۹ نوشته شد. این سیستم عامل آخرین نسخه خود را در سال ۱۹۹۵ به بازار عرضه کرد.
قبول قبول! مایکروسافت این قابلیتهایی که در ویندوز هست را خودش کشف نکرده اما به هرحال یک شکل و شمایلی به ویندوز داده که لینوکس سعی میکند آن را کپی کند
برای بحث در این مورد، بهتر است سراغ بحث همگرایی تکاملی برویم. این بحث میگوید که دو موجود کاملا مستقل و مجزا، احتمالا در طول روند تکاملی به هم شبیه میشوند. در زیست شناسی این موضوع کاملا شناخته شده است. مثلا به کوسه و دلفین نگاه کنید. هر دو موجودات دریایی ماهیخوار هستند و اندازه ای مشابه دارند. هر دو باله پشتی دارند. هر دو بالههای کناری دارند، هر دو روی دمهایشان باله دارند و فرم بدنیشان یک چیز است.
اما کوسهها از ماهی تکامل یافتهاند و دلفینها از پستانداران چهارپای خشکی. دلیلی شباهت بیش از حد آنها به همدیگر این است که هر دو گونه سعی کردهاند در حین تکامل به بالاترین بهرهوری یک موجود دریازی برسند. هیچ پیشا-دلفینی، به کوسهها نگاه نکرده و نگفته «اوه... به این بالهها نگاه کن! چقدر خوبند. من هم باید یک باله برای خودم دست و پا کنم».
به همین روش به مدیرپنجرههای اولیه لینوکس مثل FVWM و TWM نگاه کنید و ببینید چطور به نمونههای امروزیتری مثل Gnome و KDE با همه تسکبارها و آیکونها و جینگولکبازیهای امروزی مزین شدهاند. هیچ شکی هم نیست که این تغییرات شبیه تغییراتی است که در ویندوز حاصل شده. خود ویندوز هم دقیقا همنطور است. ویندوز ۳ هم نه تسک بار داشت و نه دگمه استارت.
یونیکس مجهز به X در ۱۹۹۰
لینوکس در ابتدا میزکاری شبیه به میز کار ویندوزهای امروزی نداشت. مایکروسافت هم نداشت. حالا هر دو دارند. ایا این نشان دهنده چیزی به جز تکامل است؟
این به ما میگوید که هر دو اردوگاه برای رسیدن به بهرهوری بالاتر رابط گرافیکی کار کردهاند و راه حلهای مشابهی را انتخاب کردهاند.
مشکل ۷: جریان نرمافزار آزاد و بازمتن یا همان FOSS
اینجا یکسری مشکل هست. بحث این است که نرمافزار آزاد و بازمتن چیز فوقالعادهای است و در دنیای لینوکس یک مفهوم محوری است. درک دقیق این مفهوم و فهمیدن تفاوت آن با نرمافزارهای بسته و انحصاری، استدلالی کافی برای خیلیها است که به دنیای لینوکس قدم بگذارند.
در بحثهای قبلی به چند مورد از این تفاوتها اشاره کردهایم. مثلا اینکه در اینجا مردم به اشتباه فکر میکنند که دیگران وظیفه دارند به آنها کمک کنند. اما بحث از این گستردهتر است.
شعار تبیین کننده هدف مایکروسافت این است «یک کامپیوتر روی هر میز کار» و مشخص است که این کامپیوتر باید از ویندوز استفاده کنند. هم مایکروسافت و هم اپل، سیستم عامل میفروشند و تمام تلاش آنها این است که مردم بیشتر و بیشتر از محصولات آنها استفاده کنند. این شرکتها، تجاری هستند و به دنبال پول بیشتر.
اما ما فاس (نرم افزار آزاد و بازمتن) را داریم که حتی امروز هم در بیشتر موارد غیرتجاری است.
قبل از اینکه ایمیل بزنید یا کامنت بگذارید و در مورد زوزه و ردهت و لینسپایر و .. بگویید، خودم باید بنویسم که که میدانم این شرکتها لینوکس «میفروشند». آنها دوست دارند که لینوکس در تمام دنیا مشهور شوند، آن هم لینوکس خاص خوشان. اما نباید ارائه دهندهها را با سازندهها قاطی کنیم. هسته (کرنل) لینوکس در یک شرکت نوشته نشده و کسی هم نمیخواهد از آن پول در بیاورد. ابزارهای گنو ، تجاری نیستند و توسط آدمهایی که سود مادی از اینکار نمیبرند، توسعه داده میشوند. سیستم X11 که تا امروز، مشهورترین فراهم کننده امکانات گرافیکی است هم همینطور. در مورد نرمافزارهای کاربردی و میزهای کار هم همینطور: گنوم،فلاکس باکس، اینلایتمنت و غیره. میبینم که آدمهایی هستند که در دنیای لینوکس کار تجاری بکنند ولی فعلا در اقلیتند.
زیاد شدن استفاده از نرمافزارهای انحصاری و تجاری به معنی سود مستقیم توسعه دهندگان آن در شرکتهای صاحب نرمافزار است. در فاس، وضع اینطور نیست. اینجا هیچ توسعه دهنده آزاد و بازمتنی از استفاده شدن برنامهاش سود مستقیم نمیبرد. اما سودهای جنبی همیشه وجود دارد: افتخار شخصی، احتمال کشف بیشتر باگها، احتمال جذب توسعهدهندگان جدید، احتمال دریافت پیشنهاد شغل بهتر و ...
لینوس توروالدز از اینکه مردم بیشتر و بیشتر از لینوکس استفاده کنند، استفاده مادی نمیبرد. ریچارد استالمن با بیشتر شدن استفاده گنو، پولدار نمیشود. تمام سرورهایی که از اپن بی اس دی و اپن اس اس اچ نصب میکنند، یک ریال هم نصیب پروژه اوپن بی اس دی نمیکنند. این ایجاد کننده یکی از مشکلات پیچیده دنیا است:
تازه واردهای دنیای بازمتن کشف میکنند که کسی مشتاق دیدن آنها نیست.
تازه واردها، از دنیاهایی میآیند که در آنها اصلیترین هدف سیستم عاملها، «کاربرپسند» بودن و «تمرکز بر مشتری» بوده و حالا ناگهان کشف میکنند سیستم عاملی که تازه به سراغ آن آمدهاند هنوز از صفحات man به عنوان راهنما استفاده میکند و تنظیمات اصلی آن از طریق چند فایل متنی و جستجو در گوگل قابل تغییرند. اگر این آدمها شروع به غر زدن کنند، کسی از آنها عذر خواهی نمیکند و حتی ممکن است خیلی سرراست، آنها را به در خروجی راهنمایی کنند.
بله! کمی اغراق کردم. ولی مطمئن هستم اگر با کسانی که به لینوکس آمده و برگشتهاند گپ بزنید، این چیزی است که از خیلی از آنها خواهید شنید.
به یک مفهوم عجیب، آزادی و بازمتنی روشی بسیار خودخواهانه در توسعه نرمافزار است: مردم فقط روی چیزهایی که دوست دارند کار میکنند. از نظر اکثریت این آدمها، نیازی نیست لینوکس برای تازه واردها جذاب شود: همین الان لینوکس اکثر چیزهایی که خود این آدم ها میخواهند را به خوبی انجام میدهد و دیگر چه نیازی است که برای نیازهای دیگران تلاش کنیم؟
فاس در بسیاری از جنبهها شبیه اینترنت است: شما به کسی که وبلاگ/وبسایت/نرمافزار مینویسد پول نمیدهید تا آن را بخوانید/نصب کنید. یک روند ساده برای وصل شدن به اینترنت/رابط گرافیکی برای کسی که در حال حاضر به اینترنت متصل است/نرمافزار را استفاده میکند ارزش چندانی ندارد. نویسندگان/برنامهنویسان نیازی ندارند خواننده/کاربر زیادی داشته باشند تا وبلاگ/برنامه شان را بنویسند. خیلیها هستند که از این کارها پول در میآورد ولی نه به شیوه قدیمی «این مال من است و برای استفاده باید پول بدهی» بلکه این آدمها از تبلیغ و تجارت الکترونیکی / پشتیبانی پول درمیآورند.
لینوکس علاقهای به سهم بازار ندارد. لینوکس چیزی به اسم مشتری ندارد. لینوکس برای پول درآوردن نوشته نشده. هدف لینوکس این نیست که پرکاربردترین سیستم عامل سیاره شود.
چیزی که لینوکسیها میخواهند یک سیستم عامل خوب، آزاد و پرقابلیت است. اگر این مساله باعث شود که لینوکس پرکاربردترین سیستم عامل جهان شود، عالی است. اگر این باعث شود که لینوکس زیباترین و راحتترین رابط کاربری را داشته باشد، عالی است. اگر هم این باعث شود که لینوکس یک بازار تجاری چند میلیارد دلاری درست کند، عالی است.
اینها عالی هستند ولی هدف نیستند. هدف این است که لینوکس بهترین سیستمعاملی شود که جامعهاش توان نوشتناش را دارند. آنهم نه برای دیگران، برای خوشان. عبارتهای مرسومی مثل اینکه «لینوکس هیچگاه سیستمعامل اول جهان نخواهد شد مگر اینکه فلان کار را بکند» اصولا عبارتی بیربط است. متنفرین از مایکروسافت و لینوکس پرستان و شرکتهای تجاری که از لینوکس پول در میآورند، ممکن است پر سر و صدا باشند ولی در دنیای لینوکس، اقلیتند.
این چیزی است که جامعه لینوکس میخواهد: سیستمعاملی که هر کس که آن را بخواهد، بتواند نصبش کند. پس اگر به مهاجرت به لینوکس فکر میکنید، دقیقا به این فکر کنید که شما دنبال چه چیزی هستید.
اگر دنبال سیستمعاملی هستید که دست شما را نبندد، دستتان را باز بگذارد و اجازه بدهد در صندلی راننده بنشینید و انتظار داشته باشد که شما میفهمید دارید چکار میکنید، لینوکس انتخاب خوبی است. برای استفاده از این سیستم عامل باید کمی وقت صرف کنید اما وقتی کمی آن را یاد گرفتید، هر کار که دوست دارید از عهدهاش بر خواهد آمد.
اگر فقط به دنبال یک ویندوز هستید که مشکل امنیتی نداشته باشد و ویروس نگیرد سراغ چند راهنمای کامپیوتر بروید و برنامه ضدویروس درستی نصب کنید که فایروال بگذارید و مواظب بدافزارهای باشید و به جای اینترنت اکسپلورر از یک برنامه امنتر مثل فایرفاکس استفاده کنید و همه به روزرسانیهای امنیتی را نصب کنید. آدمهایی هستند (از جمله خودم) که از زمان ویندوز ۳.۱ تا به XP از آن استفاده کردهاند بدون اینکه یکبار مشکل حاد ویروس یا دردسر امنیتی داشته باشند. شما هم میتوانید همین احساس را تجربه کنید. اگر به دنبال یک ویندوز بدون ویروس هستید، لینوکس شما را ناامید خواهد کرد.
اگر هم دنبال ایمنی و قدرت یونیکس هستید و در عین حال تمرکز بر مشتری و کاربرپسندی و پشتیبانی تجاری را هم میخواهید، به اپل و مک فکر کنید.