چرا از فلان چیز استفاده می‌کنم؟

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

این تکنیک چیزی جز یک پرسش ساده نیست. آگاهانه ابزارهای مورد استفاده‌ام را مورد پرسش قرار می‌دهم. مثلا از خودم می‌پرسم چرا من از zsh استفاده می‌کنم؟ اگر بتوانم به این پرسش پاسخ درخوری بدهم و دلیل قانع‌کننده‌ای داشته باشم آن ابزار سرجایش باقی می‌ماند. اگر نتوانم به این پرسش پاسخ بدهم آن ابزار یا تکنولوژی را با یک چیز ساده‌تر جایگزین می‌کنم یا کلا کنار می‌گذارم.

مثلا در مثال zsh من نتوانستم به پرسش خودم جواب بدهم. پاسخ‌های جسته و گریخته‌ای دادم ولی پاسخ قانع‌کننده‌ای نداشتم. فهمیدم که بلد نبودن کار با bash (که شل پیشفرض سیستم عامل‌های من بوده است) مهمترین دلیلم بوده است. هر چیزی که گفتم با zsh می‌توانم انجام بدهم دیدم که با bash هم می‌شود. البته zsh ویژگی‌های مهمی دارد که فهمیدم من نه به درستی از آنها اطلاع دارم نه هرگز استفاده کرده‌ام. یعنی نادانی از آنچه با ابزار ساده‌تر و پیش‌فرض مقدور بوده باعث شده که ابزار جدیدی به زندگی‌ام اضافه کنم بدون آنکه هیچ کدام را به درستی فرا بگیرم و از مزایای آنها بهره‌مند شوم. بنابراین zsh را بازنشست کردم و به bash برگشتم.

بعد از خودم پرسیدم که آیا من به bash احتیاج دارم؟ شاید sh (همان bourne shell) برای من کفایت کند؟ فعلا با هر دو کار می‌کنم و جرئت نکردم کامل سراغ sh بروم که بزرگترین مخرج مشترک شل‌های رایج است. حسن این دو اینست که تقریبا جهانشمول هستند و روی توزیع‌های مخلتف لینوکس و BSD و مک و مانند اینها یافت می‌شود. از سوی دیگر من از ایمیج‌های Alpine به شدت استفاده می‌کنم که پیشفرض از bourne shell استفاده می‌کند و بنابراین می‌خواهم به نوشتن ساده‌ترین شکل‌اسکریپت ممکن عادت بکنم و در همان محیط هم کار بکنم.

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

$ exec sway

(دستور exec پراسس جاری(شل) را با پراسس جدید جایگزین می‌کند.)

یک عکس هم ضرر ندارد:

sway

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