۱۳۹۲ آبان ۲۴, جمعه

پندهای یونیکسی استاد «فو»




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


مقدمه
شهرت اریک ریموند بیش از آنکه بواسطه مشارکتش در توسعه کدهای برنامه‌های لینوکس و یونیکس و یا به خاطر کتابهای ارزشمندش نظیر  The_Art_of_Unix_Programming باشد٬ مدیون پایه گذاری و گسترش مبانی فکری و فلسفی منبع باز است. او به نوعی سخنگوی جامعه توسعه دهندگان منبع باز است.
نوشتار حاضر با نام اصلی rootless_root یا ریشه‌های بی ریشه٬ به گفته خود نویسنده با الگوبرداری از کوان های ذهن و داستانهای Gateless_Gates بوجود آمده‌اند. از دید من٬ این نوشتارها که با دیدی فلسفی و اشراقی به مفاهیم یونیکس و نرم‌افزار می‌پردازد٬ از زیباترین تلفیق‌های مفاهیم سنتی و تکنولوژیک است. حال و هوای نوشته تا حدی عرفانی و باستانی است و بنا به توصیه خود نویسنده (به بخش The_Unix_Koans مراجعه کنید) سعی شده در ترجمه نیز این حال و هوا حفظ شود. البته ترجمه به هیچ عنوان بدون ایراد نیست و در خیلی موارد بدلیل دانش کم من در زمینه‌های تخصصی ممکن است اشتباه باشد. به همین دلیل در صورتی که در ترجمه اشتباهی می‌بینید یا می‌توانید لغات و جملات بهتر و مناسب‌تری  را پیشنهاد کنید لطفا با نوشتن آنها در بخش نظرات به بهتر شدن مجموعه کمک کنید.
چند توضیح ساده و ابتدایی که شاید برای کسانی که چندان با یونیکس و برنامه‌نویسی آشنا نباشند مفید باشد:

Root
root به معنی ریشه در اصطلاح یونیکس به کاربری گفته می‌شود که دارای بیشترین قدرت و اختیار در یک سیستم باشد. در سیستمهای ویندوز به این کاربر administrator گفته می‌شود. نام این نوشتار نوعی بازی با این کلمه است.

Foo
نامی است که در هنگام صحبت از زبانهای برنامه‌نویسی برای یک تابع فرضی به کار می‌رود. در برابر ان معمولا کلمه bar به کار می‌رود. مثلا Foo(x) = bar . دلیل استفاده از این نام برای استاد Foo شاید نزدیکی این کلمه با لغات چینی نظیر کونگ فو باشد.

Nubi
این کلمه تغییر یافته کلمه newbi است که اصطلاحی است  رایج در دنیای یونیکس و برای کسانی به کار می‌رود که تازه استفاده از یونیکس یا لینوکس را آغاز کرده‌اند. معنای لغوی آن تازه وارد یا تازه کار است.

VAX
سری کامپیوترهای VAX از اولین کامپیوترهایی هستند که در دوران اولیه یونیکس (دهه ۱۹۷۰) از آنها برای توسعه سیستم استفاده می‌شده است. در یکی از داستانها به صورت Three pounds of VAX بکار رفته است. شاید در ترجمه به سه کیلو شمع یا موم ترجمه شود اما در اصل جایگزین کلمه flax در داستان هجدهم دروازه‌های بی دروازه شده است.

GUI
رابط گرافیکی کاربر. در واقع پوسته‌ای است که ظاهر و عملکرد اصلی برنامه را پنهان می‌کند و ساز و کار درونی آن را به صورت گرافیکی برای کاربر نمایش می‌دهد و قابل تعامل می‌سازد. در دنیای یونیکس غالب نرم‌افزارها برای استفاده بصورت غیرگرافیکی یا متنی ایجاد می‌شوند و رابط گرافیکی کاربر به عنوان پوسته بیرونی و کم اهمیت در نظر گرفته می‌شود. برعکس در سیستمهای ویندوز٬ برنامه‌ها غالبا از ابتدا بر اساس یک رابط گرافیکی طراحی و پیاده‌سازی می‌شوند.

MCSE
مدرک مهندسی سیستم مورد تایید مایکروسافت. Microsoft Certified System Engineer. مدرکی است که از سوی شرکت مایکروسافت پس از گذراندن دوره‌های خاص و کسب مهارتهای مختلف به یادگیرنده اعطا می‌شود و خود دارای شاخه‌ها و مهارتهای گوناگون است.
—————————————



استاد فو و ده هزار خط کد

روزی استاد Foo به برنامه نویسی که برای دیدار استاد آمده بود گفت: «طبیعت یونیکسی که در یک خط اسکریپت Shell  نهفته است، از ده هزار خط C بیشتر است.»
برنامه نویس؛ مغرور از استادی خویش در C؛ پاسخ داد: «چگونه چنین چیزی ممکن است؟ C زبانی است که هستی هسته یونیکس بر آن بنا نهاده شده است!»
استاد Foo گفت: «چنین است. اما باز، طبیعت یونیکسی که در یک خط اسکریپت Shell  نهفته است، از ده هزار خط C بیشتر است.»
برنامه نویس شگفت زده تر از پیش گفت: «اما تنها از طریق زبان C است که ما نیز می توانیم درخشش اندیشه استاد Ritchi را درک کنیم. از طریق C است که می توانیم با ماشین و سیستم عامل یکی شده و به کارایی فوق تصوری برسیم.»
استاد Foo پاسخ داد: «هر آنچه گفتی صحیح است و لیکن هنوز طبیعت یونیکسی که در یک خط اسکریپت Shell  نهفته است، از ده هزار خط C بیشتر است.»
برنامه نویس با تمسخر به استاد نگریست و راه خویش در پیش گرفت. اما استاد به شاگردش Nubi؛ که یک خط اسکریپت Shell بر تخته ای در همان نزدیکی نوشته بود؛ اشاره کرد و صدا زد: «استاد برنامه نویس! چنین Pipeline ی را تصور کن که به زبان خالص C پیاده شود. آیا بیش از ده هزار خط نخواهد شد؟»
برنامه نویس به آنچه Nubi نوشته بود نگریست، سری تکان داد و در آخر پذیرفت که اینگونه خواهد بود.
و Nubi پرسید: «و چه مقدار زمان لازم خواهد بود تا این برنامه پیاده سازی و اشکال زدایی گردد؟»
برنامه نویس پاسخ داد: «زمان بسیاری صرف خواهد شد، ولی، تنها یک ابله چنین زمانی صرف آن خواهد کرد، حال آنکه کارهای ارزشمند بسیاری در انتظار انجام شدن هستند.»
استاد Foo چنین گفت:
«و کدام بهتر طبیعت یونیکس را درک کرده است؟ آنکه ده هزار خط کد می نویسد یا آنکه بیهودگی این کار را درک کرده و با ننوشتن کد شایستگی خویش را اثبات می کند؟»
و با شنیدن این سخنان برنامه نویس به روشنایی رسید.
—————————————


استاد فو و جوجه نفوذگر

استاد Foo و شاگردانش در حال صرف صبحانه بودند که غریبه ای از ناکجا آباد به دیدار استاد آمد.
غریبه گفت: «میگن خیلی خفنی!! هرچی بلدی به ما هم یاد بده! ممنون.»
شاگردان استاد شگفت زده از لحن ناصواب غریبه به یکدیگر نگریستند. استاد فقط لبخندی زد و گفت: «پس می خواهی طریقت یونیکس را بیاموزی؟»
غریبه پاسخ داد: «دلم میخواد یه نفوذگر باحال بشم و بتونم سیستم همه رو بترکونم!!»
استاد Foo پاسخ داد: «آموزشهای من از این دست نیستند.»
غریبه با آشفتگی گفت : «هی پیری؛ تو فقط الکی ادعا می کنی. اگر چیزی بلد بودی یاد ما هم می دادی.»
استاد Foo گفت: «راهی هست که ممکن است تو را به سرمنزل خرد رهنمون شود.»
استاد IP آدرسی را روی تکه کاغذی نوشت؛ آنرا به غریبه داد و گفت: «نفوذ به این سیستم چندان برایت مشکل نخواهد بود چون نگهبانانش بی کفایت و ناکارآمدند. برو و چون بازگشتی آنچه یافتی برای ما بگو.»
غریبه ادای احترام کرد و رفت و استاد غذایش را تمام کرد.
روزها و ماهها گذشتند و غریبه دیگر فراموش شده بود.
سالها بعد غریبه از ناکجاآباد بازگشت و گفت: «لعنت بر شما باد. من به آن سیستم نفوذ کردم و چنانکه گفتید بسیار آسان بود. اما FBI مرا دستگیر و روانه زندان کرد.»
استاد Foo گفت: «بسیار خوب. اکنون آماده درس بعدی شده ای.» سپس IP آدرس دیگری را بر روی کاغذ نوشت و به غریبه داد.
غریبه فریاد زد: «دیوانه شده اید ؟ بعد از دردسرهایی که کشیده ام دیگر هرگز به هیچ سیستمی نفوذ نخواهم کرد!»
استاد فو لبخندی زد و گفت:
«و اینجا؛ آغاز دانش و خرد است.»
و با شنیدن این سخنان غریبه به روشنایی رسید.
—————————————



مباحثه در باب دو مسیر

استاد Foo به مریدانش تعلیم می‌داد:
« جزیی از آیین دارما  وجود دارد  که در این سخن استاد اعظم  Mcllroy تجسم یافته است. سعی کن یک چیز را درست انجام دهی. این سخن اشاره و تاکیدی دارد بر نرم‌افزارهای یونیکس که رفتاری ساده و استوار دارند و مشخصاتی که به سادگی می‌توانند در ذهن استفاده کننده درک شده و توسط سایر برنامه نویسان به کار روند.»
«اما جزیی دیگر از آیین دارما نیز وجود دارد که در این سخن استاد Thompson تجسم یافته است. هنگام تردید٬ کورکورانه از نیرویت استفاده کن. همچنین می‌توان آن را در سوتراهای مختلف دید که تاکید می‌کنند انجام دادن نود درصد کاردر حال حاضر بهتر از انجام صد در صد آن در آینده است. اینها بر قدرت و پایداری و سادگی پیاده سازی ها  تاکید می‌کند.»
«اکنون به من بگویید: کدام برنامه طبیعت یونیکس را در خود خواهد داشت ؟»
پس از لختی سکوت Nubi چنین گفت:
«استاد٬ این آموزه‌ها ممکن است ضد و نقیض باشند!»
«پیاده سازی ساده برنامه‌ها معمولا فاقد منطق و الگو برای کنترل موارد حاشیه‌ای نظیر آزادسازی منابع٬ اشکال در بستن پنجره‌ای بلااستفاده و یا خطای زمانی در تراکنشهای نیمه تمام خواهد بود.»
«وقتی چنین مواردی رخ دهند رفتار برنامه نامناسب و غیرمنطقی خواهد بود. و مطمئنا این طریقت یونیکس نخواهد بود؟»
استاد Foo به نشانه موافقت سر تکان داد.
«از سوی دیگر تلاش برای پیش بینی و پوشش دادن این موارد حاشیه‌ای و تضمین سادگی تشریح برنامه٬ در واقع کدی خواهند ساخت که بسیار پیچیده و شکننده خواهد بود و احتمالا دچار باگ شده و هرگز توزیع نخواهد شد. و مطمئنا این طریقت یونیکس نخواهد بود؟»
استاد Foo به نشانه موافقت سر تکان داد.
Nubi پرسید: «پس با این وصف طریقت صحیح دارما چه خواهد بود؟»
استاد چنین گفت:
«آن زمان که عقاب به پرواز درآید٬ آیا لحظه‌ای را که پا بر زمین داشته است فراموش خواهد کرد؟ آن زمان که ببر بر طعمه خویش فرود آید٬ لحظات پرش خویش را از یاد خواهد برد؟ سه کیلو VAX !»
با شنیدن این سخنان Nubi به روشنایی رسید.
—————————————


استاد فو و متدولوژیست

زمانی که استاد Foo و شاگردش Nubi به زیارت مکانهای مقدس رفته بودند، عادت استاد چنین بود که شبانگاه در شهر یا روستایی که در آن اقامت گزیده بودند، جلسه موعظه عمومی برپا می داشت و در آن به نصیحت دوستداران تازه یونیکس می پرداخت.
در یکی از همین ایام متدولوژیستی در میان شنوندگان بود.
استاد Foo گفت: «اگر شما مدام کدهای خود را برای یافتن نقاط حساس بررسی نکنید؛ شبیه ماهیگیری خواهید بود که تورش را در دریاچه ای خالی می گستراند.»
مشاور متدولوژی پرسید: «بنابراین آیا درست نخواهد بود که بگوییم؛ اگر شما بصورت دائم بازدهی خود را در ضمن مدیریت منابع اندازه گیری نکنید، همانند ماهیگیری خواهید بود که تورش را در دریاچه ای خالی می گستراند؟»
استاد پاسخ داد: «زمانی ماهیگیری را دیدم که تور از دستانش رها شد و در دریاچه زیر پایش افتاد. و او مدت مدیدی کف قایق را در جستجوی تورش می کاوید!»
متدولوژیست پرسید: «اما اگر تور او در دریاچه افتاده بود، چرا داخل قایقش را جستجو میکرد؟»
استاد Foo پاسخ داد:
«چون او شنا کردن نمیدانست!»
و با شنیدن این سخنان متدووژیست به روشنایی رسید.
—————————————


مباحثه در باب رابط گرافیکی کاربر

شبی استاد Foo و مریدش Nubi در محفلی از برنامه نویسان که برای آموختن از یکدیگر گرد آمده بودند، حضور پیدا کردند. برنامه نویسی از Nubi پرسید که او و استادش به کدام مکتب تعلق دارند؟ آن هنگام که شنید آنان از پیروان طریقت بزرگ یونیکس هستند؛ شروع به استهزا نمود.
و با تمسخر گفت: «ابزارهای خط فرمان یونیکس بیهوده و کهنه اند. سیستم عاملهای نوین که طراحی مناسبی دارند، همه کارها را از طریق رابط گرافیکی کاربر انجام می دهند.»
استاد Foo سخن نگفت. اما به ماه اشاره کرد. سگی که در نزدیکی بود به اشاره استاد پارس کرد.
برنامه نویس گفت: «چه میگویید ؟ متوجه منظورتان نشدم!»
استاد Foo خاموش ماند و به تصویر بودا و سپس به پنجره اشاره نمود.
برنامه نویس پرسید: «چه میخواهید بگویید ؟»
استاد Foo ابتدا به سر برنامه نویس و سپس به یک تکه سنگ اشاره نمود.
برنامه نویس دوباره نالید : « چرا نمی توانید منظورتان را واضح بیان کنید؟»
استاد Foo متفکرانه چهره در هم کشید. دوبار به بینی برنامه نویس ضربه زد و او را در سطل زباله ای که همان نزدیکی بود انداخت.
هنگامی که برنامه نویس می کوشید آلودگی از تن خویش بزداید، سگی که از آنجا می گذشت، پیشاب خود بر او ریخت.
در این لحظه برنامه نویس به روشنایی رسید.
—————————————


استاد فو و برنامه نویس کهنه کار

برنامه‌نویسی باتجربه از دنیای یونیکس که از خرد استاد Foo سخن‌ها شنیده بود٬ برای راهنمایی به زیارت وی آمد. سه بار تعظیم کرد و به استاد نزدیک شد و گفت:
«استاد Foo ٬ به سختی دچار مشکل شده‌ام. در دوران جوانی من٬ آنان که پیرو طریقت بزرگ یونیکس بودند٬ نرم‌افزارهای ساده و دست نخورده نظیر ed و mailx را به کار می‌بردند. آمروز آنان به vim و mutt روی آورده‌اند. ترسم از آن است که فردا به سراغ KMail و Evolution روند و یونکس نیز به سرنوشت ویندوز گرفتار آید. بادکرده و درهم پیچیده و پوشیده از GUI .»
استاد Foo پاسخ داد : «اما برای طراحی یک پوستر از چه نرم‌افزاری استفاده خواهی کرد؟»
برنامه‌نویس پاسخ داد: «من . . . هیچ گاه چنین کاری نکرده‌ام. لیکن اطمینان دارم که می‌توانم با استفاده از LaTeX یا pic به طریقت صحیح یونیکس و بدون GUI این کار را انجام دهم.»
آنگاه استاد Foo فرمود:
«کدام یک به آنسوی رودخانه خواهد رسید؟ آنکه رویای یک قایق در سرخویش می‌پرورد٬ یا آنکه تا پل بعدی راه می‌پیماید ؟»
با شنیدن این سخنان برنامه‌نویس به روشنایی رسید.
—————————————


استاد فو و ابزارهای پوسته

تازه واردی در دنیای یونیکس به نزد استاد Foo آمده و گفت: «من سردرگم شده‌ام. آیا این طریقت یونیکس نیست که هر برنامه باید بر یک موضوع تمرکز کرده و آن را به درستی به انجام رساند؟»
استاد Foo سر تکان داد.
تازه ‌وارد افزود: «آیا این نیز طریقت یونیکس نیست که چرخ نباید دوباره اختراع شود؟»
استاد Foo دوباره سر تکان داد.
او دوباره پرسید: «پس چرا این همه ابزار با قابلیت‌های مشابه برای واژه پردازی وجود دارد؟ SED  یا AWK و یا Perl ؟  با کدام یک می‌توان طریقت یونیکس را بهتر آزمود؟ »
استاد Foo از تازه‌وارد پرسید: «اگر فایلی متنی داشته باشی٬ و بخواهی نسخه‌ای از آن تکثیر کنی که برخی کلماتش با جمله‌های مورد نظر تو عوض شده باشند از چه ابزاری استفاده خواهی کرد؟»
تازه‌وارد چهره در هم کشید و گفت: «regex های Perl برای چنین کار ساده‌ای بیش از حد سنگین اند. من از AWK چیزی نمی‌دانم ولی در چند هفته اخیر کدهایی با SED  نوشته‌ام. چون اکنون تجربه اندکی با SED  دارم آن را ترجیح خواهم داد. اما اگر این کار تنها یک بار باید انجام شود و نه به تکرار٬  یک ویرایشگر متن کافی خواهد بود.»
استاد Foo سر تکاد داد و چنین پاسخ داد:
«وقتی گرسنه‌ای٬ غذا بخور. وقتی تشنه‌ای٬ آب بنوش. وقتی خسته‌ای٬ لختی بخواب!»
با شنیدن این سخنان تازه‌وارد به روشنایی رسید.
—————————————


استاد فو و تازه کار سردرگم

تازه کاری بود که در خدمت استاد چیزهای بسیاری آموخته بود اما احساس می کرد که در این میان گمشده ای هست. پس از مراقبه و تمرکز فراوان روی تردیدهایش در خود این شهامت را دید که برای گرفتن پاسخ به نزد استاد رود.
پرسید: “استاد Foo، چرا کاربران یونیکس از برنامه های آنتی ویروس استفاده نمی کنند؟ یا از برنامه های Defrag ؟ یا برنامه های ضد بدافزار؟”
استاد Foo با لبخند پاسخ داد: “زمانی که خانه ات درست و استوار بنا شده باشد؛ برای نگه داشتن سقف احتیاجی به افزودن ستون نیست! “
تازه کار پاسخ داد: “با این همه آیا بهتر نخواهد بود که برای اطمینان بیشتر از این ابزارها استفاده کنیم؟”
استاد Foo گلوله ای نخ از کناری برداشت و شروع به پیچیدن نخ دور پاهای تازه کار کرد.
تازه کار شگفت زده پرسید: “چه می کنید؟”
استاد Foo به سادگی پاسخ داد:
“بند کفشهایت را می بندم!”
و با شنیدن این سخنان تازه کار به روشنایی رسید.
—————————————


مباحثه در باب بازگشت به ویندوز

شاگردی چنین گفت: «ما آموخته‌ایم که یونیکس تنها یک سیستم عامل نیست٬ بلکه روشی برای نزدیک شدن به مسایل و حل آنهاست.»
استاد Foo به تایید سر تکان داد.
شاگرد چنین ادامه داد: «پس طریقت بزرگ یونیکس می‌تواند به سایر سیستم عامل‌ها نیز اعمال شود؟»
استاد Foo لختی ساکت ماند و چنین گفت: «در هر سیستم عامل راهی برای رسیدن به طریقت بزرگ وجود دارد٬ به شرطی که بتوان آن را یافت.»
شاگرد ادامه داد: «در مورد ویندوز چه؟ این سیستم عامل از ابتدا بر روی بسیاری از کامپیوترها نصب شده است. و اگرچه غالب ابزارهایش بسیار ابتدایی و ناکارآمد هستند٬ اما استفاده از آنها برای تازه‌کاران ساده است. به یقین کاربران ویندوز هم می‌توانند از فلسفه یونیکس بهره‌مند شوند.»
استاد Foo دوباره سر تکان داد.
شاگرد پرسید: «چگونه خواهد بود اگر ره یافتگان طریقت یونیکس به دنیای ویندوز بازگردند؟»
استاد Foo گفت: «برای بازگشت به ویندوز اما٬ فقط باید آن را بوت کنید.»
شاگرد با سردرگمی چنین گفت: «استاد Foo ٬ اگر این چنین ساده است٬ پس چرا هنوز بسته‌های انحصاری و خراب زیادی در ویندوز وجود دارد؟ نرم‌افزار خوب و کارآمد باید به همراه GUI و رنگهای جذاب نیز ممکن باشد. اما شواهد کمی از وجود آن در دست است. چه بر سر ره یافتگانی که به ویندوز بازگشته‌اند آمده است؟»
استاد Foo پاسخ داد:
«آیینه شکسته دیگر هرگز انعکاسی نخواهد داشت ٬ گلهای از شاخه جدا شده هرگز به شاخه‌ها باز نخواهند گشت.»
با شنیدن این سخنان همه حاضران به روشنایی رسیدند.
—————————————


استاد فو و متعصب یونیکسی

فردی از هواخواهان متعصب یونیکس که از دانش استاد Foo در طریقت بزرگ سخن‌ها شنیده بود٬ برای گرفتن پند به نزد استاد آمد. استاد Foo به او چنین گفت:
«هنگامی که استاد اعظم Thompson یونیکس را اختراع کرد خود آن را درک نکرد. پس آن هنگام که آن را درک نمود دیگر آن را اختراع نکرد.»
«هنگامی که استاد اعظم Mcllory سیستم pipe را اختراع نمود٬ می‌دانست که این سیستم نرم‌افزار را دگرگون خواهد کرد٬ اما نمی‌دانست که اندیشه‌ها را هم دگرگون خواهد کرد.»
«هنگامی که استاد اعظم Ritchie زبان C را اختراع نمود، برنامه‌نویسان را به جهنمی از سرریز بافر، خرابی heap و باگهای پوینترهای فراموش شده محکوم کرد.»
«به درستی که استادان اعظم همه کور و نادان بودند.»
متعصب که سخت از سخنان استاد خشمگین بود به اعتراض گفت:
«این ره‌یافتگان٬ ما را به طریقت بزرگ یونیکس رهنمون شدند. اگر آنها را به سخره بگیریم٬ شایستگی خویش از دست داده و در زندگی بعدی در قالب هیولا و یا مهندس MCSE متولد خواهیم شد.»
استاد Foo چنین پرسید: «آیا هیچگاه کدهای تو پالوده و بی عیب بوده‌اند؟»
متعصب پاسخ داد: «هرگز٬ کدهای هیچ کس چنین نخواهد بود!»
استاد Foo چنین گفت:
«خرد استادان اعظم در این بود که می‌دانستند که نادانند.»
با شنیدن این سخنان متعصب به روشنایی رسید.
—————————————


مباحثه در باب طبیعت یونیکس

شاگردی به استاد Foo گفت: “به ما گفته شده است که شرکتی به نام SCO مالکیت واقعی یونیکس را در اختیار دارد.”
استاد Foo سر تکان داد.
شاگرد ادامه داد: “همچنین به ما گفته شده است که شرکتی به نام OpenGroup مالکیت واقعی یونیکس را در اختیار دارد.”
استاد Foo سر تکان داد.
شاگرد پرسید: “چگونه چنین چیزی ممکن است؟”
استاد Foo پاسخ داد: “به یقین SCO مالک حقیقی کدهای لینوکس است، ولی کد یونیکس خود یونیکس نیست. به یقین OpenGroup مالک حقیقی نام یونیکس است، ولی نام یونیکس خود یونیکس نیست.”
شاگرد پرسید: “پس با این وصف طبیعت یونیکس چیست؟”
استاد Foo پاسخ داد:
“کد نیست. نام نیست. ایده نیست. هیچ چیز نیست. مدام تغییر میکند و در عین حال بدون تغییر است.
طبیعت یونیکس ساده و خالی است. و چون ساده و خالی است از توفان هم نیرومندتر است.
بر اساس قانون طبیعت حرکت می کند، بی رحمانه در ذهن برنامه نویس از هم باز شده و گسترش می یابد. طرحها و ایده ها را شبیه خود می کند.
همه نرم افزارهایی که می خواهند با آن رقابت کنند باید شبیه آن شوند. خالی، خالی، عمیقا خالی و تماما تهی. آری !”
و با شنیدن این سخنان شاگرد به روشنایی رسید.
—————————————

استاد فو و MCSE

روزی مدیر سیستمی مشهور از دنیای ویندوز برای کسب معرفت به نزد استاد Foo آمد و چنین آغاز کرد: «شنیده ام که شما جادوگری توانمند در دنیای یونیکس هستید. آمده ام تا رازهایمان را تبادل کرده و بر دانش خویش بیافزاییم.»
استاد Foo گفت: «چه نیکوست که به جستجوی دانش آمده ای! اما در طریقت یونیکس رازی نهفته نیست!»
مدیر سیستم با درماندگی پرسید: «اما چنین گفته می شود که شما استادی هستید از دنیای یونیکس و واقف بر تمام اسرار درونی سیستمها! همانگونه که من در دنیای ویندوز خبره ام. من MCSE دارم، و همینطور بسیاری مدارک دیگر که در دنیا چندان معمول نیستند. من حتی گمنام ترین کلیدهای رجیستری را چون کف دست می شناسم. توان شرح همه چیز را درباره API ویندوز دارم. بله، حتی رازهایی که ساکنان Redmond نیز کم و بیش از یاد برده اند. حال بگویید کدام دانش و معرفت مخفی است که به شما چنین قدرتی داده است؟»
استاد Foo پاسخ داد: «من هیچ ندارم. هیچ چیز مخفی نیست، هیچ چیز آشکار نیست!»
مدیر سیستم که به خشم آمده بود گفت: «بسیار خوب، اگر شما رازی در دل ندارید، پس به من بگویید چه باید بدانم تا هم تراز شما در طریقت یونیکس قدرتمند گردم؟»
استاد Foo چنین گفت:
«مثال آنکه راز را با دانش اشتباه بگیرد همانند کسی است که در جستجوی نور؛ چنان شمع را در مشت گیرد که دست خویش سوزانده و شمع را خاموش کند.»
با شنیدن این سخنان مدیر سیستم به روشنایی رسید.
—————————————



استاد فو و کاربر نهایی

یکی دیگر از اوقاتی که استاد Foo به موعظه همگانی می پرداخت، کاربری نهایی که داستانها از خرد استاد شنیده بود برای شنیدن پند و موعظه به نزد استاد آمد.
سه بار به استاد Foo تعظیم نموده و چنین گفت: «می خواهم طریقت بزرگ یونیکس را بیاموزم، لیکن ابزارهای خط فرمان مرا گیج و سردرگم می کنند.»
گروهی از شاگردان تازه کاری که به تماشا ایستاده بودند، شروع به استهزا نموده و او را ابله و بی انگیزه نامیدند و گفتند که طریقت بزرگ یونیکس تنها از آن افراد باهوش و سخت کوش است.
استاد به نشانه سکوت دست فراز آورده و پر مدعاترین آنان را به نزد خویش، در جایگاهی که با کاربر نهایی نشسته بودند، فراخواند.
استاد Foo چنین پرسید: «برایمان از کدهایی که نوشته ای و از طرحهایی که به سرانجام رسانده ای سخن بگو!»
شاگرد تازه کار خواست به لکنت پاسخی دهد اما خاموش ماند.
استاد Foo رو به کاربر نهایی کرده و پرسید: «بگو از برای چه به دنبال این طریقت آمده ای؟»
کاربر نهایی پاسخ داد: «من از هرچه نرم افزار در اطراف خویش می بینم ناخورسندم. کارایی شان قابل اعتماد نیست، چشم از دیدنشان و دست از کار با آنها خشنود نمی گردد. شنیده ام که طریقت یونیکس اگرچه سخت تر اما برتر است. اکنون آمده ام تا از بند آزاد شده و خیالات را کنار گذارم.»
استاد Foo پرسید: «و حرفه تو چیست که اینگونه با نرم افزار سر و کار یافته ای؟»
کاربر نهایی پاسخ داد: «حرفه من ساختمان سازیست. بسیاری از عمارت های این شهر تحت نظارت و هدایت من بنا شده اند.»
استاد Foo دوباره روی به شاگرد خویش نموده و چنین گفت:
«گربه خانگی گرچه ممکن است رفتار ببر را تقلید کند، لیکن ناله اش هرگز تبدیل به غرش نخواهد شد.»
با شنیدن این سخنان شاگرد تازه کار به روشنایی رسید.
——————————


نویسنده: اریک ریموند

مترجم: احمد شریف پور

منبع فارسی:

منبع به زبان اصلی :



0 نظرات:

پست کردن نظر