یک سال پس از مهاجرت به لینوکس

پارسال همین موقع‌ها بود که یک نسخه تمیز از اوبونتو روی لپ تاپم نصب کردم. تفاوت این دفعه این بود که روی پارتیشن اصلی نصبش کردم و قرار بود سیستم عامل اصلی و روزانه‌ام باشد. این نوشته، خلاصه‌ای از تجریبات یک سال گذشته‌ام در پی این مهاجرت است، به مناسبت سالگرد این مهاجرت!

از سال ۱۳۸۲ به طور حرفه‌ای (برای پول درآوردن) برنامه‌نویسی می‌کنم و بیشتر آن روی تکنولوژی‌های مایکروسافت بوده. اگر نگویم تمام ابزارها، بیشتر ابزارهایی که در این چند سال استفاده کردم محصول مایکروسافت بود؛

  • ویندوز به عنوان سیستم عامل
  • آفیس برای کارهای اداری
  • Outlook برای ایمیل و تقویم و …
  • Internet Explorer به عنوان مرورگر!
  • استفاده بیشتر از Bing نسبت به Google برای جستجو!
  • گوشی هوشمند با سیستم عامل ویندوز فون ۷ (Mozart 7)
  • صفحه کلید (ارگونومیک) و ماوس مایکروسافت!!!
  • استفاده از نرم‌افزارهای متن باز دات نتی (حتی برای وبلاگ به جای ورد پرس)
  • Visual Studio برای تولید نرم‌افزار (از طراحی تا پیاده‌سازی)
  • SQL Server برای بانک اطلاعاتی
  • زبان سی شارپ و سکوی دات نت
  • و …

windows-tattooهر کاری که میخواستم انجام بدهم حس بهتری داشتم که با محصولات مایکروسافت باشد. چون مایکروسافت به توسعه دهنده‌ها اهمیت میداد و زبان سی شارپ هم کار آنهاست و در کل جایگزینی خوبی برای سی شارپ نداشتم! از آنجایی که من برنامه نویس هستم بیشتر عمرم را مشغول صحبت کردن با یک زبان برنامه‌نویسی هستم پس اهمیت این موضوع که با چه زبانی کار کنم و اینکه این زبان چه امکاناتی داشته باشد روشن است.

با این حال همیشه نیم نگاهی به لینوکس داشتم و یک حس عجیب و دوست داشتنی به سیستم‌عامل‌های متن باز (مخصوصا لینوکس). اما بخاطر زبان سی شارپ و حواشی‌اش نمی‌توانستم از لینوکس استفاده کنم و همیشه در حد سیستم عامل دوم تفننی بر روی یک پارتیشن کوچک در اعماق دیسک سختم باقی میماند.

اما مایکروسافت یک مشکل بزرگ دارد. برای هر کاری شما را به محصولات خودش هدایت می‌کند و شما باید پول نرم‌افزارهایش را بپردازید و همچنین حق ندارید تغییری در محصولاتش ایجاد کنید. من با پرداخت پول برای نرم‌افزار مشکلی ندارم (اگر قیمتش منطقی باشد)! و معمولا هم نمی‌خواهم تغییری در یک نرم‌افزار ایجاد کنم ولی باز هم با این موضوع مشکل داشتم. این حس به من دست می‌داد که داخل یک مجتمع مسکونی زیبا گرفتار شدم. مجتمعی که یک شرکت بزرگ آن را ساخته و عالی هم کار کرده ولی افراد داخل آن در ساخت و تغییر و بهبود آن سهم خیلی خیلی کمی دارند. در صورت نیاز به هر تغییر و یا ساخت و سازی باید با شرکت بزرگ هماهنگ کنند و یا از او بخواهند کاری برایشان انجام دهد. از طرفی اگر بخواهید از این مجتمع خارج شوید بسیاری از امکاناتی که داخل آن است را نخواهید داشت (یا حداقل به سادگی در خارج از آن رویت نمی‌شود).

برای یک پروژه شخصی در حال بررسی سرور و از این قبیل بودم که متوجه شدم خرج زیادی دارد. خواستم از SQL Server استفاده نکنم ولی هرچه گشتم هیچ جایگزین رایگان درست و حسابی برای آن وجود ندارد، اگر هست با بقیه ابزارهای مایکروسافت (مثل EF) جور در نمی‌آید. متوجه شدم این مورد فقط در خصوص SQL نیست و بقیه ابزارها هم همینطور است (همان قضیه مجتمع مسکونی). برای یک برنامه نویس گیر کردن در چنین وضعی مثل این است که یک عقرب را در دیواری از آتش محصور کنی!

خوشبختانه با اسکالا آشنا شدم. تنها زبان برنامه‌نویسی بود که تمام ویژگی‌های سی شارپ را داشت ولی متن باز بود و روی همه پلتفرم‌ها اجرا می‌شد و با انواع بانک‌های اطلاعاتی و کتابخانه‌ها سازگار بود. اسکالا راه ورود من به دنیای متن باز و لینوکس شد!

dawn-700x300

ولی افتاد مشکل‌ها! حالا باید از صفر تا صد همه کارها را در دنیایی متفاوت انجام می‌دادم. من هم ابزارهای زیر را برای کارهایم انتخاب کردم:

  • اوبونتو به عنوان سیستم عامل
  • لیبره آفیس به جای آفیس مایکروسافت
  • Thunderbird (و پلاگین‌هایش) به جای Outlook
  • ابتدا Chromium و بعدها (به خاطر مشکلی امنیتی) Firefox به جای IE
  • استفاده بیشتر از محصولات گوگل
  • گوشی ویندوز فون ۷ را هنوز داشتم (و دارم ولی دلم یک گوشی اندرویدی می‌خواهد که بتوانم رویش Firefox OS یا Ubuntu Touch نصب کنم) ولی یک تبلت اندرویدی گرفتم و تازه دنیای اپ‌ها به رویم باز شد
  • صفحه کلید فراسو و ماوس A4tech!!!
  • استفاده از ورد پرس و پرستا شاپ و نرم‌افزارهای غیر دات نتی (که تعدادشان خیلی بیشتر از دات نتی‌ها بود)
  • Scala IDE (همان Eclipse) و IntelliJ IDEA و بقیه برای توسعه نرم‌افزار
  • MongoDB، Postgres و MySQL برای بانک اطلاعاتی
  • زبان اسکالا و بعدا روبی و پایتون (در کنار اسکالا) برای برنامه‌نویسی (هنوز اسکالا را به شدت نسبت به بقیه ترجیح می‌دهم)
  • و …

و مشکلاتی که داشتم؛

  • هنوز یک پروژه بر روی دات نت داشتم و با استفاده از Virtual Box یک نسخه ویندوز ۷ با VS روی آن بالا می‌آوردم و با بدبختی روی آن کار میکردم؛ بسیار کند بود و وقتی دکمه Alt را می‌گرفتم منوی Unity باز می‌شد و وسط نوشتن یک کد حساس یک حال اساسی به اعصابم می‌داد.
  • دلم می‌خواست روی پروژه‌ای با زبان اسکالا کار کنم ولی کسی حتی اسمش را هم نشنیده بود!
  • من عادت کرده بودم زبان صحفه کلید را با دست راست و با Alt+Shift سمت راست تغییر دهم ولی به دلیل وجود باگی در Ubuntu آن زمان فقط امکان استفاده از Alt+Shift سمت چپ وجود داشت و من هم هنوز بلد نبودم سیستم را هک کنم (منظور فقط کمی ور رفتن با سیستم است) و هر کلیدی که دوست دارم انتخاب کنم و تصورش را هم نمی‌کردم این باگ به سرعت رفع شود برای همین به ترکیب سمت چپ عادت کردم و هنوز هم از کلیدهای سمت چپ استفاده می‌کنم!
  •  کارت گرافیکم به سختی نصب می‌شد و فن لپ تاپ همیشه روشن بود، نصفی از مشکل بخاطر درایور کارت گرافیک بود و نصف برای تنظیمات و درایور مخصوص DELL
  • از نظر مالی شدیدا به مشکل خورده بودم، پول لازم بودم و پروژه‌ای هم در کار نبود و شرایط به شدت برایم سخت شده بود در حالی که با مشکلات بالا هم سر و کله می‌زدم و همزمان اسکالا هم یاد می‌گرفتم

البته توانستم کم کم مشکلات را حل کنم:

  • سعی کردم واقع بین باشم و وقت بیشتری بر روی پروژه دات نتی صرف کنم (اما نه انقدر واقع بین که لینوکس را پاک کنم و برگردم روی ویندوز مثل آدم کار کنم) پروژه به جای خوبی رسید و تقریبا تحویل شد. هر چند چون پروژه دولتی بود و افراد سازمان عوض شدند پروژه اجرایی نشد.
  • با ور رفتن و مطالعه، هر کاری که می‌خواستم را در Ubuntu انجام میدادم، کارت گرافیک و بقیه مسائل حل شد. برای اکثر کارهای تکراری هم یک Bash Script تهیه میکردم. به این ترتیب سرعت کارهایم بیشتر از زمان ویندوز شده بود و روز به روز احساس راحتی بیشتری می‌کردم.
  • من در دوره‌های شناخت توانایی‌های امیر مهرانی شرکت کرده بودم و یکی از چیزهایی که یاد گرفته بودم این بود که باید روی نقاط قوتم تمرکز کنم تا سریعتر به نتیجه برسم. یکی از راه‌های فهمیدن نقاط قوت نگاه به گذشته و بررسی موقعیت‌هایی است که در آن موفق بودیم. من هم همین کار را کردم و به چند سال قبل دقت کردم و همان کارها را تکرار کردم. رزومه‌ام را تکمیل و با ظاهری جدید بازسازی کردم و شروع به معرفی خودم به اشخاص و شرکت‌های مختلف کردم. بعد از ارسال تقریبا ۲۰ ایمیل، چند موقعیت خیلی خوب پیش آمد. با آدم‌های بسیار حرفه‌ای و جالبی آشنا شدم. کیفیت کارها و سطح آدم‌ها بسیار بالاتر از زمانی بود که روی پلتفرم مایکروسافت کار می‌کردم.

در این یک سال به جز استفاده از ویندوز در یک زمان محدود آن هم در Virtual Box با سرعت بسیار پایین، از هیچ نرم‌افزار غیر قانونی استفاده نکردم؛ چه برای توسعه و چه برای نصب و راه اندازی. و از این بابت به شدت خوشحال هستم.

به نظرم هر وقت یک گیک (از نوع برنامه‌نویس) احساس محدودیت کرد باید سریعا دست به ایجاد تغییر و تحول بزند تا دوباره احساس آزادی کند و گرنه خلاقیت و سر زندگی او کمرنگ می‌شود.

ubuntu-boot-small

یک سال است که وقتی کامپیوترم را روشن می‌کنم صفحه بوت شدن اوبونتو را می‌بینم (چند وقت هم بوت شدن Mint و بقیه را دیدم) و هر روز از دیدنشان لذت می‌برم (هر وقت خسته شوم می‌توانم با کمترین دردسر به یک توزیع باحال دیگر مهاجرت کنم). با دیدن این صفحات بوت به این فکر می‌کنم که تمام این نرم‌افزارها و ابزارها حاصل تلاش میلیون‌ها نفر است که بخاطر عقایدشان و علاقه‌ای که به آزادی داشتند از هیچ، به اینجا رسیدند و توانستند حریف بزرگترین غول‌های دنیا شوند. از طرفی اینکه چیزهایی مثل Raspberry Pi و Android و خیلی چیزهای دیگر که با نرم‌افزارهای آزاد و لینوکس کار می‌کنند، در کل دنیا معروف و همه‌گیر شدند. اینکه چندتا سیستم خیلی قدیمی را با استفاده از مدرن‌ترین توزیع‌های لینوکس دوباره راه اندازی کردم که بسیار عالی کار می کنند و یک حس نوستالژیک دارند. اینکه اکثر وب سایت‌ها و سرویس‌های بزرگ دنیا بر روی لینوکس و نرم‌افزار آزاد بنا شده‌اند. همه اینها حس بسیار خوبی به من می‌دهد و کمک می‌کند با انرژی بیشتری کار کنم و چیزهای بهتری تولید کنم.

البته این فقط بخش توصیف شدنی ماجراست و فقط برای گیک‌ها معنی دارد! خلاصه اینکه در زندگی گیکی هیچ وقت تا این حد راضی نبودم و امیدوارم این تجربه برای همه اتفاق بیفتد.

25 دیدگاه برای «یک سال پس از مهاجرت به لینوکس»

  1. امیرجان
    پست زیبایی که گذاشتی رو خوندم و لذت بردم.
    بالاخره تونستی از مایکروسافت دل بکنی! کار خیلی خوبی کردی.
    دنیای جدید ادم رو از دنیای قبلی بیشتر دور می کنه و چیزی جز خاطره و دلتنگی ازش نمیگذاره.
    دلمون برای شما و دوستان خوبت تنگ شده، براتون آرزوی موفقیت می کنم.

  2. جالب بود… نکته‌ای که خیلی‌ها پیش از مهاجرت آن را در نظر نمی‌گیرند همین است که نمی‌شود همه چیز را به یکباره تغییر داد؛ تغییر به زمان نیاز دارد و حوصله، که خیلی‌ها ندارند ؛)
    خوشبختانه مهاجرت برای شما به خوبی و خوشی اتفاق افتاد (^_^)

    1. دقیقا حتی عوض شدن یه ادیتور ساده می‌تونه کلی روی آدم اثر بذاره. ولی من می‌گم کسی که کارش رو دوست داره به این تغییرات نیاز داره و باعث پیشرفتش می‌شه، هرچند هزینه داره.

  3. خیلی پست قشنگی بود. دو بخششو خیلی دوس داشتم. یکی تمرکز بر نقاط قوت و یکی دیگه عقرب داخل آتیش.
    خودمم دقیقن حس عقرب داخل آتیشو دارم. آتیش تو ویندوز بود ولی آتیش من فکر می‌کنم php باشه. خودمم نمیدونم چرا. ولی حس می کنم دیر یا زود باید برم سراغ یه زبون دیگه. به هرچیزی یه ناخونکی زدم. اسکلا – روبی – پایتون – گو و … ولی هنوز نمیدونم برم سراغ کدومش. ولی گو رو از همه قشنگ‌تر دیدم.

    1. من سه تا بخشش رو دوست دارم. اون دوتا که شما گفتید به اضافه اینکه با نرم‌افزارهای آزاد روی هر وسیله‌ای که فکرش را بکنید می‌شه سیستم عامل محبوبت رو نصب کنی و کارهای جالبی بکنی و تقریبا همه استارتاپ‌ها از نرم‌افزار آزاد استفاده می‌کنن و به طور کامل به هیچ شخص یا شرکتی وابسته نیستند. این یه حس درست و حسابی از گیک بودن به آدم میده.

  4. بسیار جالب بود و با اجازه شما من لینک این پست را چند سایت دیگه برای دوستان دیگه میگذارم. من هم توی وبلاگم در مورد مهاجرتم به لینوکس نوشتم اما نه به تفصیل شما و شاید برای دیگر دوستان جالب باشه.

    http://www.geekfarsi.com/%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA-%D9%85%D9%86-%D8%A7%D8%B2-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%A8%D9%87-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/28

  5. یکی از دوستان این لینک رو توی یکی از صفحات منتشر کرده بود و خوندمش
    از نظر من یا این اغراق توی نوشته ها بیش از حد معمول بوده یا شما واقعا معلوم نبوده دنبال چی هستی
    من هم خیلی وقته برنامه نویسی میکنم, اتفاقا هر چند سال هم یک دفعه زبان برنامه نویسی که باهاش کار میکنم و پلتفرمی که روش فعال هستم رو عوض میکنم منتهی این نوع نوشته پر از اغراق هستش که بیشتر جنبه فان گرفته به خودش

    اینم یه نظر بود امیدوارم ناراحت نشی از نظر من 😀

    1. برای من و خیلی از بچه‌ها که می‌بینی اینجا کامنت گذاشتن (و البته خیلی‌های دیگه که کامنت نذاشتن) همه این کارا جنبه فان داره و البته فوق العاده هم ازش لذت میبریم. دلیلش هم اینه که خیلی به کارمون علاقه داریم و امروز و دیروز هم وارد این قضایا نشدیم که بخواییم خیلی سریع هیجان زده بشیم و احساسی عمل کنیم و بعدش زود همه چیز فروکش کنه. من هیچ بزرگ نمایی یا کوچک نمایی نکردم، هر بدی و خوبی به نظرم اومده گفتم. و از همه مهمتر اینکه این یه حس شخصیه. بعضی‌ها با من احساس مشترکی دارن و از خوندن این تجربه لذت بردن یا حتی بعضی‌ها با من هم قدم شدن و همین مسیر رو طی کردن. بعضی‌ها هم مثل شما خوششون نمیاد. نظر شما هم محترمه 😉

  6. بله دقیقا حق با شماس
    منتهی چیزی که برا من جالب بود نظرات اینجا نبود نظراتی بود که توی صفحات دیگه به این داستان داده شده بود, وگرنه برنامه نویسی که وابسته به یک زبان برنامه نویسی و یک سیستم عامل بشه یک موجود مرده هستش از نظر من

  7. راستش یخورده متعصبانه نوشته شده. به نظر من دلیلی نداره که وقتی میشه پول زیادی از یک سیستم در آورد آدم دست به مهاجرت بزنه.
    به نظرم ما برنامه نویس ها باید تابع نیازهای جامعه باشیم.
    وقتی سیستم عامل برتر توی کشور ویندوز هست خب برای ویندوز برنامه مینویسیم و از اون طرف هم چون اندروید سیستم عامل موبایلی برتر هست خب برای اون هم مینویسیم!
    و اینکه لزومی نداره که آدم حتما یا ۰ باشه یا ۱! چه زیادند آدم هایی که مثلا توی ویندوز و تحت ویژوال استدیو برنامه می نویسند ولی کدشون رو به صورت اپن سورس پخش میکنند…
    مثلا من خودم سیستم عامل ویندوز رو توی دسکتاپ به گنو/لینوکس ترجیح میدم ولی از طرفی سیستم عامل موبایل محبوبم اندروید هست و توی سمت سرور هم به نظرم لینوکس و ویندوز هر کدوم مزایا و معایب خودشون رو دارن.

    1. نکته اینه که اصلا هدف ما چی هست؟ هدف من فقط پول نیست. برای من خیلی مهمه از راهی که دوست دارم پول در بیارم. اگر در ایران کسی فقط برای پول وارد این کار بشه کاملا اشتباه کرده و راه‌های بسیار زیاد دیگه‌ای هست که خیلی راحتتر و بیشتر میشه پول در اورد (مثلا دلالی).

      گیک بودن یعنی علاقه داشتن زیاد و خوره بودن یه چیز. این گیک بودن همه این کارها رو توجیه میکنه. ممکنه یکی خیلی به زبان Assembly علاقه داشته باشه ولی نیاز بازار براش خیلی کمه. اما اگه واقعا توی این زبان حرفه‌ای باشه یه موقعیت خیلی خوب گیرش میاد که قطعا بیشتر از برنامه‌نویسی پول درمیاره که یه زبان و یه پلتفرمی بلده که کلی آدم دیگه هم بلدن.

      همونطور که گفتم من خودم موقع مهاجرت به لینوکس مشکل مالی داشتم و کل درآمد زندگی من هم از همین راهه. اما شدیدا از این مسیری که اومدم لذت بردم و بسیار راضی هستم. یکی هدفش از پول در اوردن و در کل فان زندگیش اینه که بره عشق و حال کنه مثلا بره شمال جوجه و مخلفات بزنه و …، یکی دیگه کل فان زندگیش اینه که بتونه از نرم‌افزارهای متن باز و کمتر شناخته شده (ولی باحال) استفاده کنه و قانون کپی رایت رو ۱۰۰٪ رعایت کنه و … (من این رو بیشتر دوست دارم)!

  8. سلام آقای کریمی
    بنده تازه به لینوکس اوبونتو ۱۳.۰۴ مهاجرت کردم. می خواستم ببینم امکانش هست در مورد برخی مواردی که به مشکل برمیخورم از شما کمک بگیرم؟
    با تشکر
    سعید

    1. سلام،

      برای دریافت کمک به نظرم بهتره از فروم‌های موجود در این زمینه کمک بگیرید. و البته عوضیت در تهلاگ (گروه کاربرانی ایرانی لینوکس) به آدرس http://tehlug.org هم خیلی کمک میکنه فقط دقت کن که در لیست پستی Off-Topic سوالات مربوط به مشکلاتت رو مطرح کنی.

      این هم آدرس انجمن‌های اوبونتو فارسی: http://forum.ubuntu.ir

      یه نکته دیگه؛ چرا نسخه ۱۳ رو نصب کردی الان نسخه ۱۶.۰۴ اومده سعی کن آخرین نسخه LTS رو نصب کنی تا راحتتر باشی.

      موفق باشی

      1. با سلام و تشکر از لطف جنابعالی
        راستش رو بخواهید این نسخه رو خیلی وقت پیش دانلود کرده بودم که در اون تاریخ آخرین نسخه اوبونتو بود ولی تو سفر به دنیای لینوکس دودل بودم که اخیرا دلزده شدن از ویندوز این دنیای جدید رو به روم باز کرد.
        با احترام
        سعید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *