تائوی برنامه نویسی
نویسنده :جفری جیمز
مترجم :آیدین غریب نواز
https://aidinhut.com/fa/
این کتاب با اجازٔه رسمی از مولف آن ترجمه و منتشر شده است. نسخه برداری و انتشار مجدد این کتاب به صورت کلمه به کلمه و بدون تغییر ،در هر رسانه ای و در سراسر جهان به صورت رایگان ،بدون نیاز به پرداخت حق تالیف مجاز میباشد ،با این شرط که این اعلان/حق تالیف حفظ گردد.
کتاب اول - پوچی خاموش
استاد برنامه نویس بدین گونه به سخن درآمد:
»هنگامی که آموختی چگونه یک کد اشتباه را از دام قالب بیرون کشی ،زمان رفتن برای تو فرا خواهد رسید«.
۱.۱ چیزی راز آلود شکل گرفته ،درون پوچی خاموش به دنیا آمده .تنها و بدون حرکت منتظر است ،او در حین ساکن بودن ،همواره در حرکت است .او سرچشمٔه تمام برنامه ها است .من نامش را نمیدانم ،بنابراین او را تائوی برنامه نویسی خواهم نامید. اگر تائو کامل باشد ،سیستم عامل نیز کامل خواهد بود .اگر سیستم عامل کامل باشد ،کامپایلر کامل خواهد بود .اگر کامپایلر کامل باشد ،نرم افزار کامل خواهد بود .کاربر خشنود بوده و همآهنگی در جهان حکم فرما خواهد بود. تائوی برنامه نویسی تا دوردستها روان می شود و با نسیم صبحگاه باز می گردد.
۱.۲ تائو به زبان ماشین حیات بخشیده است .زبان ماشین به اسمبلر حیات بخشیده است. اسمبلر به کامپایلر حیات بخشیده است .حال ده هزار زبان وجود دارد. هر زبان ،هر چقدر هم که حقیر باشد ،هدف خویش را دارد .هر زبان Yinو *Yangنرمافزار را توصیف می کند .هر زبان در درون تائو مکان خویش را دارا است. اما تا آنجا که میتوانید از برنامه نویسی در COBOLاجتناب ورزید.
۱.۳ در آغاز تائو بود .تائو به زمان و فضا حیات بخشید .به همین دلیل فضا و زمان Yinو Yangبرنامه نویسی هستند. برنامه نویسانی که تائو را درک نمی کنند همواره با کمبود زمان و فضا مواجه هستند .برنامه نویسانی که تائو را درک می کنند همواره زمان و فضای کافی برای دستیابی به اهداف خویش را دارا هستند. چگونه به شکل دیگری میتواند باشد؟
۱.۴ با برنامهنویس خردمند دربارٔه تائو سخن گفته شد و او آن را دنبال کرد .با برنامهنویس متوسط دربارٔه تائو سخن گفته شد و او به جستجویش برخواست .با برنامهنویس نادان دربارٔه تائو سخن گفته شد و او به آن خندید. اگر مسخره کنندهای نبود ،تائو نیز وجود نداشت. صداهای بلند سخت تر به گوش میآیند به پیش رفتن روشی برای عقب نشینی است استعداد شگرف خود را دیر نمایان می کند حتی یک برنامٔه کامل نیز هنوز باگ دارد * Yinو Yangدو مفهوم فلسفی در چین باستان هستند .چینیان معتقد بودند که همه چیز در جهان از برخورد و تاثیر ) Yinمؤنث ،تاریک ،غیرفعال و منفی( و ) Yangمذکر ،روشن ،فعال و مثبت( به وجود آمده است.
کتاب دوم – اساتید کهن
استاد برنامهنویس بدین گونه به سخن درآمد:
»هنگامی که سه روز بدون برنامه نویسی سپری شود ،زندگی معنای خود را از دست خواهد داد«.
۲.۱ برنامهنویسان گذشته ژرف و اسرار آمیز بودند .ما نمی توانیم افکارشان را درک کنیم ،بنابراین تمام آنچه انجام می دهیم توصیف ظاهر آنها است. آگاه ،همانند روباهی که از آب عبور می کند .هوشیار ،همانند ژنرالی در میدان جنگ .مهربان ،همانند بانوی صاحبخانه که به میهمانان خویش خیر مقدم می گوید .ساده ،همانند قطعه چوبهای برهنه .مبهم ،همانند برکه ای در دل غارهای تاریک. چه کسی میتواند رازهای قلب و ذهنشان را بازگو کند؟ پاسخ تنها درون تائو نهفته است.
۲.۲ روزگاری استاد بزرگ ،تورنیگ ،در رویا دید که یک ماشین بوده است .هنگامی که از خواب برخواست ،گفت:
»نمیدانم که آیا این من ،تورینگ هستم که در خواب خود را یک ماشین میبینم ،یا یک ماشین خواب میبیند که من تورینگ هستم!«
۲.۳ یک برنامهنویس از یک شرکت بزرگ در یک گفتگوی نرم افزاری شرکت جست و سپس بازگشت تا به مدیر خود گزارش دهد. گفت:
» :اینان چگونه برنامهنویسانی هستند که برای شرکتهای دیگر کار می کنند؟ آنان رفتاری ناشایسته دارند و برای ظاهر خویش اهمیتی قائل نیستند .موهایشان بلند و نامرتب و لباسهایشان چروک خورده و کهنه بود .آنان اتاق مهمانان ما را درهم شکستند و در طول سخنرانی اصوات غیرمؤدبانه ای از خود خارج می ساختند«.
مدیر گفت:
«من نباید تو را به آن گفتگو می فرستادم .آن برنامهنویسان در ورای این دنیای فیزیکی زندگی می کنند .آنان زندگی را مضحک و اتفاقی می پندارند .آنان بدون توجه به محدودیت ها رفت و آمد می کنند .بی هیچ غمی ،تنها به خاطر برنامه های خود زنده اند .چرا آنان باید با رسوم اجتماعی خود را به دردسر بیاندازند؟« «آنان درون تائو زنده اند«.
۲.۴ یک نوآموز از استاد پرسید» :برنامه نویسی وجود دارد که هرگز برنامههای خود را طراحی ،مستندسازی و آزمایش نمیکند .با این وجود تمام اشخاصی که او را میشناسند به عنوان بهترین برنامهنویس جهان ستایشاش می کنند .چرا این چنین است؟« استاد پاسخ داد» :آن برنامهنویس بر تائو تسلط یافته است .او فراتر از نیاز به طراحی رفته است؛ هنگامی که سیستم به مشکل برخورد می کند ،خشمگین نمی شود ،تنها جهان را بدون توجه می پذیرد .او فراتر از نیاز به مستندسازی رفته است؛ دیگر اهمیتی نمی دهد که شخص دیگری کدی را که نوشته ببیند .او فراتر از نیاز به آزمایش کردن رفته است؛ تمام برنامه های او در خویشتن خود کامل ،متین و زیبا هستند ،هدف آنها آشکار است .در حقیقت ،او به اسرار تائو داخل شده است«.
کتاب سوم – طراحی
استاد برنامهنویس بدین گونه به سخن درآمد:
»وقتی آزمایش برنامه ای شروع شد ،دیگر برای تغییر طرح دیر خواهد بود«.
۳.۱ روزگاری مردی بود که به یک نمایشگاه کامپیوتر رفت .هر روز که به آنجا وارد می شد ،به نگهبان در می گفت: »من دزدی بزرگ هستم ،به خاطر مهارت در بلند کردن جنس مشهور هستم .از قبل به تو اخطار می کنم ،این نمایشگاه از غارت من در امان نخواهد ماند«. این سخنان نگهبان را بسیار مضطرب ساخت چرا که آنجا میلیون ها دلار تجهیزات کامپیوتری وجود داشت .بنابراین او مرد را به دقت زیر نظر گرفت .اما آن مرد تنها از غرفه ای به غرفٔه دیگر می رفت و به آرامی با خود زمزمه می کرد. هنگامی که مرد می خواست آنجا را ترک کند ،نگهبان او را به کناری کشید و تمام لباسهایش را گشت ،اما چیزی نیافت. روز بعد ،مرد بازگشت و نگهبان را سرزنش کرد» :من دیروز با مقدار بسیاری غنیمت فرار کردم ،اما امروز حتی از آن هم بهتر خواهد بود «.بنابراین نگهبان او را با دقت بیشتری زیر نظر گرفت ،اما چیزی به دست نیاورد. در آخرین روز نمایشگاه ،نگهبان نتوانست کنجکاوی خود را بیش از این پنهان کند .او گفت» :جناب دزد ،من سردرگم شده ام، نمی توانم از اینجا بروم .لطفا مرا روشن کنید .شما چه چیزی می دزدیدید؟« مرد لبخند زد» :من ایده ها را میدزدم«.
۳.۲ زمانی یک استاد برنامهنویس وجود داشت که برنامه های بدون ساختار می نوشت .یک برنامهنویس نوآموز که از او پیروی می کرد ،شروع به نوشتن برنامه های بدون ساختار کرد .هنگامی که نوآموز از استاد خواست تا برنامه اش را ارزیابی کند ،استاد او را به خاطر نوشتن برنامه بدون ساختار سرزنش کرده و گفت» :آنچه در خور استاد است برای نوآموزان شایسته نیست .قبل از آنکه بخواهی از ساختار رهایی یابی ،باید تائو را درک کرده باشی«.
۳.۳ * روزگاری برنامه نویسی بود که در درگاه فرمانروای Wuخدمت می کرد .فرمانروا از برنامهنویس پرسید» :طراحی کدامیک ساده تر است :یک نرمافزار حسابداری و یا یک سیستم عامل؟« برنامهنویس پاسخ داد» :سیستم عامل« فرمانروا فریادی از سر ناباوری برآورد» :به طور یقین در مقابل پیچیدگی سیستم عامل ،نرمافزار حسابداری ناچیز است«. برنامهنویس گفت» :نه آنطور که به نظر می رسد ،هنگامی که برنامهنویس یک نرم افزار حسابداری را طراحی می کند باید سلیقه متفاوتی را برآورده سازد :نرمافزار چگونه باید عمل کند ،گزارش هایش چگونه باید باشند ،و چگونه باید با قوانین مالیاتی هماهنگ باشد .در مقابل ،یک سیستم عامل با دنیای بیرون خود محدود نشده است .هنگام طراحی یک سیستم عامل برنامهنویس به دنبال سادهترین هماهنگی میان ماشین و سیستم عامل می گردد .و به این دلیل است که طراحی سیستم عامل ساده تر است«. فرمانروای Wuلبخندی زد و پرسید »بسیار خوب ،اما اشکال زدایی کدام یک ساده تر است؟» برنامهنویس پاسخی نداد.
۳.۴ یک مدیر به همراه مستندات یک برنامه به نزد استاد برنامهنویس رفت .مدیر از استاد پرسید» :اگر من پنج برنامهنویس را برای انجام این کار در نظر بگیرم ،چه میزان طول خواهد کشید تا کار انجام شود؟» استاد بیدرنگ پاسخ داد» :یک سال زمان خواهد برد«. »اما ما این سیستم را فورا ً و یا حتی زودتر از آن میخواهیم! اگر ده برنامهنویس برای این کار بگذارم چه مقدار طول خواهد کشید؟« استاد برنامهنویس ابروهایش را در هم کشید» .در این صورت ،دوسال زمان خواهد برد«. »و اگر صد برنامهنویس برای آن بگذارم؟« استاد برنامهنویس شانه ای بالا انداخت و گفت» :در آن صورت طراحی آن هرگز به پایان نخواهد رسید«.
کتاب چهارم – کدنویسی
استاد برنامهنویس بدین گونه به سخن درآمد:
«برنامه ای که خوب نوشته شده بهشت خودش است ،برنامه ای که بد نوشته شده جهنم خودش است«.
۴.۱ یک برنامه باید سبک و سریع الانتقال باشد ،روالهایش همانند رشته ای از مروارید به یکدیگر متصل باشند .روح و نیت برنامه باید همواره حفظ شود .نه باید چیزی زیاد باشد و نه چیزی کم ،نه چرخه هایی که به آنها نیازی نیست و نه متغیرهای بیفایده، نه کمبودی در ساختار و نه انعطاف ناپذیری. یک برنامه باید از »قانون کمترین سرگشتگی « پیروی کند .این قانون چیست؟ به این معنی است که برنامه باید همواره به نوعی به کاربر پاسخ دهی کند که کمترین میزان سرگشتگی را به همراه داشته باشد. یک برنامه ،هرچقدر هم که پیچیده باشد ،باید همانند یک واحد یکتا عمل نماید .یک برنامه باید به وسیلٔه منطق درونی خویش هدایت شود و نه ظواهر بیرونی. اگر برنامهای این التزامات را برآورده نکند ،در حالتی از بینظمی و آشفتگی قرار خواهد گرفت .تنها راه تصحیح آن بازنویسی برنامه است.
۴.۲ یک نوآموز از استاد پرسید» :من برنامهای دارم که گاهی اجرا می شود و گاهی عمل نمی کند .من از قوانین برنامه نویسی تبعیت کرده ام ،با این وجود گیج شده ام .دلیل این امر چیست؟« استاد پاسخ داد» :تو گیج شده ای چرا که تائو را درک نکرده ای .تنها یک نادان از انسان ها انتظار رفتاری منطقی را دارد .حال تو چگونه چنین انتظاری از ماشینی که به دست انسان ساخته شده داری؟ کامپیوترها جبر گرایی را شبیه سازی می کنند؛ تنها تائو کامل است«. »قوانین برنامه نویسی ناپایدارند؛ تنها تائو جاودان است .بنابراین تو باید قبل از اینکه به درک کامل دستیابی ،در تائو اندیشه کنی«. تازه وارد پرسید» :اما چگونه بدانم که به درک کامل دست یافته ام؟« استاد پاسخ داد» :برنامه ات بدون اشکال اجرا خواهد شد«.
۴.۳ استادی طبیعت تائو را برای یکی از نوآموزان اش توضیح میداد» .تائو درون تمام برنامه ها تجلی می یابد – صرفنظر از ناچیز بودن آن«. نوآموز پرسید» :آیا تائو در یک ماشین حساب دستی وجود دارد؟« استاد پاسخ داد» :بله ،وجود دارد«. نوآموز ادامه داد» :آیا تائو در یک بازی کامپیوتری وجود دارد؟« استاد گفت» :حتی در یک بازی کامپیوتری نیز وجود دارد«. »و آیا تائو در سیستمعامل DOSبرای کامپیوترهای شخصی هم وجود دارد؟« استاد سرفهای کرد ،کمی جابهجا شد و گفت» :درس برای امروز کافی است«.
۴.۴ برنامه نویسی که در خدمت شاهزاده وانگ بود برنامهای می نوشت .انگشتانش بر روی صفحه کلید به رقص درآمدند .برنامه بیهیچ پیغام خطایی کامپایل شد و مانند نسیمی ملیم اجرا شد. شاهزاده با تعجب فریاد زد» :عالی بود! شگرد تو بیاشکال است!« »شگرد؟« برنامه نویس به آرامی برگشت» ،چیزی که من دنبال میکنم تائو است – فراتر از تمام شگردها! هنگامی که برای اولین بار شروع به برنامه نویسی کردم تمام برنامه را به تمامی پیش روی خویش همانند توده ای می دیدم .بعد از سه سال دیگر توده ای وجود نداشت ،از روالها استفاده می کردم .اما حال هیچ نمی بینم .تمام موجودیت من به صورت خلائی بی شکل وجود دارد .حواسم کاری انجام نمی دهند .وجودم آزاد است ،بدون هیچ طرحی کار می کند ،از غریزه خویش پیروی می کند .سخن کوتاه ،برنامه من خودش ،خود را می نویسد .البته ،گاهی مسائل مشکلی وجود دارد .آنها را می بینم که به سمت من می آیند، سرعتم را کم می کنم ،در خاموشی به نظاره می نشینم .سپس ،خطی از کد را تغییر می دهم و مشکلات همانند بخار ناپدید می شوند .سپس برنامه را کامپایل می کنم .آرام می نشینم و اجازه می دهم که لذت کار وجودم را دربر گیرد .چشمانم را برای لحظه ای می بندم و از سیستم خارج می شوم«. شاهزاده وانگ گفت» :ای کاش تمام برنامهنویسان من چنین خردی داشتند!«
کتاب پنجم – نگهداری کد
استاد برنامهنویس بدین گونه به سخن درآمد:
»وجود برنامهای را تصور کنید که تنها سه خط طول دارد ،روزی باید از آن مراقبت شود«.
۵.۱ دری که همواره استفاده شود نیاز به روغنکاری ندارد. جریانی خروشان ساکن نخواهد ماند. صدا و فکر نمی توانند از میان خلاء عبور کنند. اگر از نرم افزار استفاده نشود فاسد خواهد شد. اینها اسراری بزرگ هستند.
۵.۲ یک مدیر از برنامه نویسی پرسید که چه مقدار طول خواهد کشید تا او برنامهای را که هم اکنون بر روی آن کار می کند به اتمام رساند .برنامهنویس بیدرنگ پاسخ داد» :فردا آن را تمام خواهم کرد«. مدیر گفت» :تصور میکنم کمی غیر واقعی سخن میگویی .صادقانه ،چه مقدار طول خواهد کشید؟« برنامهنویس برای لحظهای تفکر کرد .و بالاخره پاسخ داد» :دوست دارم تعدادی قابلیت به آن بیافزایم .فکر کنم دستکم دو هفته ای طول بکشد«. مدیر پافشاری کرد» :حتی این نیز فراتر از انتظار است .خوشحال خواهم شد که هنگامی که برنامه به پایان رسید به من اطلاع بدهی«. برنامه نویس موافقت کرد. چندین سال بعد ،مدیر بازنشست شد .هنگامی که از جشن بازنشستگی خویش باز میگشت ،برنامه نویس را پشت یکی از ترمینالها خفته یافت .او تمام شب را برنامه نوشته بود.
۵.۳ زمانی یک برنامهنویس تازه کار را به کار نوشتن یک نرم افزار سادٔه اقتصادی گماشتند. تازهکار چندین روز با جدیت کار کرد ،اما هنگامی که استاد برنامٔه او را بازبینی نمود ،متوجه شد که برنامه شامل یک ویرایشگر تصویری ،مجموعهای از روالهای گرافیکی ،و یک واسِط هوش مصنوعی است ،اما هیچ نشانی از اقتصاد وجود ندارد. هنگامی که استاد در این مورد جویا شد ،تازه کار خشمگین شد و گفت» :ناشکیبا نباشید ،عاقبت بخش اقتصادی را در آن قرار خواهم داد«.
۵.۴ آیا یک باغبان خوب از آنچه کاشته است غافل می شود؟ آیا یک آموزگار خوب حتی از پست ترین دانش آموز خود چشم پوشی می کند؟ آیا یک پدر خوب اجازه می دهد حتی یکی از فرزندانش گرسنگی بکشد؟ آیا یک برنامهنویس خوب از نگهداری کد خویش سرباز می زند؟
کتاب ششم – مدیریت
استاد برنامهنویس بدین گونه به سخن درآمد:
»اجازه دهید برنامهنویسان بسیار و مدیران کم باشند – آنگاه همگان فعال خواهند بود«.
۶.۱ وقتی مدیران جلسات بی پایان برگزار می کنند ،برنامهنویسان بازی می نویسند .وقتی حسابداران از یک چهارم شدن سود می گویند ،بودجٔه توسعه تقریبا قطع می شود .وقتی دانشمندان عالی رتبه از آسمان آبی سخن می گویند ،ابرها وارد می شوند. در حقیقت ،این تائوی برنامه نویسی نیست. هنگامی که مدیران متعهد می شوند ،برنامه های بازی نادیده انگاشته می شوند .هنگامی که حسابداران طرحهای بلند مدت ارائه می دهند ،هماهنگی و نظم باز می گردد .هنگامی که دانشمندان عالی رتبه به مشکلات موجود اشاره می کنند ،مشکلات به زودی حل می شوند. در حقیقت ،این تائوی برنامه نویسی است.
۶.۲ چرا برنامهنویسان غیر مولد هستند؟ چرا که وقتشان در جلسات به هدر می رود. چرا برنامهنویسان سرکش هستند؟ چرا که مدیران بیش از حد دخالت می کنند. چرا برنامهنویسان تک تک استعفا می دهند؟ چرا که بیش از حد از آنان کار کشیده می شود با کار کردن برای مدیریت ضعیف ،دیگر برای شغل خود اهمیتی قائل نمی شوند.
۶.۳ مدیری تقریبا اخراج شده بود ،اما برنامه نویسی که برایش کار می کرد برنامهای جدید خلق کرد که بسیار محبوب شد و به خوبی به فروش رفت .در نتیجه مدیر شغل خود را از دست نداد. مدیر تلاش کرد تا به برنامهنویس پاداشی بدهد ،اما برنامهنویس آن را رد کرده و گفت» :من برنامه را نوشتم چرا که فکر می کردم فکر جالبی است ،بنابراین انتظار هدیه ندارم«. مدیر با شنیدن این حرف اظهار کرد» :این برنامهنویس ،تصور می کنم پستی کم ارزش را در اختیار دارد ،وظیفه شناسی او به عنوان یک کارمند تحسین برانگیز است .بگذار مقام او را به معاون مدیر ارتقاع دهم!« هنگامی که این را بر زبان آورد ،برنامهنویس بیش از قبل امتناع کرده و گفت» :من به دنیا آمدهام تا برنامه بنویسم .اگر ترفیع رتبه بگیرم ،تنها وقت دیگران را به هدر خواهم داد .حال میتوانم بروم؟ مشغول کار بر روی برنامهای هستم«.
۶.۴ یک مدیر به نزد برنامهنویسان رفته و به آنان گفت» :من ساعات کاری شما را تغییر داده ام :مجبور خواهید بود که در ساعت نه صبح آمده و در ساعت پنج بعد از ظهر اینجا را ترک گویید «.با شنیدن این سخن ،تمامی آنان خشمگین شده و تعدادی بیدرنگ استعفای خود را اعلام نمودند. بنابراین مدیر گفت» :بسیار خوب ،در این صورت خودتان ساعت کاری را تعیین کنید ،البته تا زمانی که برنامه ها به موقع تحویل داده شوند «.برنامهنویسان که حال خشنود شده بودند ،شب ها می آمدند و تا نزدیک صبح کار می کردند.
کتاب هفتم – ِخرد جمعی
استاد برنامه نویس بدین گونه به سخن درآمد:
»میتوان برنامهای برای هیئت مدیرٔه شرکت نوشت ،اما نمی توان یک کامپیوتر ادیب ساخت«.
۷.۱ نوآموزی از استاد پرسید» :در شرق نوعی ساختار درختی وجود دارد که نام ‘ساختمان مرکزی’ را بر آن نهادهاند .شکل آن به دست مشاور هیئت مدیره و حسابداران اش تغییر یافته .تعداد بسیاری یادداشت تولید می کند که هرکدام می گویند' :از اینطرف برو!' یا ‘از آن طرف برو!’ و هیچکس نمی داند که معنی آن چیست .هر سال نام های جدیدی درون شاخه ها قرار داده می شود اما هیچکدام در دسترس نیستند .چطور چیزی چنین غیر طبیعی میتواند وجود داشته باشد؟« استاد پاسخ داد» :تو این ساختار بیکران را درک کرده ای و از اینکه هدفی ندارد مشوش شده ای .چرخه های بی پایانش باعث سرگرمی تو نیست؟ از بی آزاری و سادگی برنامه نویسی اش که در زیر شاخه ها پناه گرفته اند لذت نمیبری؟ چرا بابت بیفایدگی اش خود را ناراحت می کنی؟«
۷.۲ در شرق کوسه ای وجود داشت که از تمام ماهیان دیگر بزرگتر بود .او به پرنده ای تبدیل شد که بالهایش همانند ابرهایی بودند که آسمان را می پوشانند .هنگامی که این پرنده بر فراز سرزمینها در پرواز بود ،پیغامی از ' ساختمان مرکزی' حمل می کرد .این پیغام را در میان برنامهنویسان رها کرد ،درست همانطور که مرغ دریایی نشان خود را بر فراز ساحل می گذارد .سپس پرنده بر بادها سوار شد و با آسمان آبی بر پشتش به خانه بازگشت. برنامهنویس نوآموز با شگفتی به پرنده خیره شد ،چرا که آن را درک نمی کرد .برنامهنویس متوسط از آمدن پرنده وحشت کرد، چرا که محتوای پیغام او را نگران می کرد .استاد برنامهنویس پشت ترمینال خویش مشغول کار بود ،چراکه نمی دانست پرنده ای آمده و رفته.
۷.۳ جادوگر برج عاج ،آخرین اختراع خویش را نزد استاد برنامهنویس آورده بود تا آن را امتحان کند .جادوگر جعبٔه سیاه بزرگی را به درون دفتر استاد غلتاند ،در حالی که استاد خاموش و منتظر بود. جادوگر چنین آغاز کرد» :این یک کامپیوتر مجتمع ،توزیع شده و همه کاره است ،کامل ارگونومیک طراحی شده و سیستم عاملی اختصاصی دارد ،شامل زبانهای نسل ششم است ،و رابط گرافیکی هنرمندانه و با کیفیتی دارد .ساخت این دستگاه چند صد نفر سال زمان دستیاران من را گرفته است .جالب نیست؟« استاد ابروانش را اندکی بال برده و گفت» :حقیقتا جالب است«. جادوگر ادامه داد» :ساختمان مرکزی دستور داده است که همگان از این کامپیوتر به عنوان سکویی جدید برای برنامه ها استفاده کنند .آیا شما موافق هستید؟« استاد پاسخ داد» :مطمئنا ،من فورا این را به مرکز داده ها ارسال خواهم کرد!« و جادوگر راضی و خشنود به برج خویش بازگشت. چند روز بعد ،یک نوآموز به دفتر استاد برنامهنویس وارد گردیده و گفت» :نمیتوانم لیست برنامٔه جدیدم را بیابم .می دانید ممکن است کجا باشد؟« استاد پاسخ داد» :بله ،لیست بر بدنٔه سکوی جدید در مرکز داده ها نصب شده است«.
۷.۴ استاد برنامهنویس بدون نگرانی از برنامهای به برنامٔه دیگر می رفت .هیچ گونه تغییری در مدیریت نمی توانست به او صدمه ای رساند .حتی اگر پروژه منحل شود ،او را اخراج نمی کنند .چرا چنین است؟ او از تائو ُپر شده است.
کتاب هشتم – سخت افزار و نرم افزار
استاد برنامهنویس بدین گونه به سخن درآمد:
بدون نسیم ،چمنزار حرکت نمی کند .بدون نرم افزار ،سخت افزار بدون استفاده است«.
۸.۱ تازه کاری از استاد پرسید» :من متوجه شده ام که یک شرکت کامپیوتری بسیار بزرگتر از دیگر شرکتها است .همانند غولی در میان کوتوله ها .هر کدام از بخش های آن می توانند یک کسب و کار کامل را راه اندازی کنند .چرا چنین است؟« استاد پاسخ داد» :چرا چنین سوالات احمقانه ای می پرسی؟ آن شرکت بزرگ است چرا که بزرگ است .اگر تنها سخت افزار تولید می کرد ،هیچ شخصی محصولات اش را نمی خرید .اگر تنها نرم افزار تولید می کرد ،هیچ شخصی از آنها استفاده نمی کرد .اگر تنها از سیستم ها نگهداری می کرد ،مردم با او همانند مستخدمین رفتار می کردند .اما این شرکت تمام این ها را با هم ترکیب کرده و مردم به او همانند یکی از خدایان مینگرند! از آنجایی که به دنبال نزاع نیست ،بدون هیچ تلاشی فتح می کند«. ۸.۲ روزی استاد برنامهنویس بر یک نوآموز گذر کرد .او دریافت که نوآموز با یک دستگاه بازی دستی مشغول است .او گفت: »ببخشید ،ممکن است امتحاناش کنم؟« تازه کار از جا جست و دستگاه را به دست استاد سپرد .استاد گفت» :می بینم که دستگاه ادعا می کند که سه سطح مختلف بازی دارد :آسان ،متوسط و سخت .اما هر دستگاهی همانند این یک سطح بازی دیگر نیز دارد که در آن دستگاه به دنبال پیروزی یافتن بر انسان نیست ،و انسان نیز به دنبال پیروزی یافتن بر دستگاه نیست«. نوآموز با تمنا گفت» :درود بر شما ای استاد بزرگ ،چگونه شخص میتواند به این قابلیت اسرار آمیز دست یابد؟« استاد دستگاه را به زمین افکند و آن را زیر پا خرد کرد .و در آن لحظه نوآموز بیدار شد.
۸.۳ روزگاری برنامه نویسی وجود داشت که بر روی ریزپردازنده ها کار میکرد .او به یک برنامهنویس کامپیوتر که برای ملاقات آمده بود گفت» :نگاه کن که من چه چیزی در اختیار دارم ،سیستم عامل و سخت افزار ذخیره سازی داده مختص خودم .من مجبور نیستم که ابتکارم را با دیگران شریک شوم .نرمافزار کامل با خودش سازگار است و به سهولت قابل استفاده .چرا از کار کنونی خود دست نمی کشی و به من نمی پیوندی؟« سپس برنامهنویس کامپیوتر شروع به تشریح سیستم خود برای دوستش کرده و گفت» :کامپیوتر همانند راهبی از روزگار کهن در میان مرکز داده ها به مراقبه مشغول است .دیسک های سخت اش همانند اقیانوسی از ماشین آلات در کنار یکدیگر خفته اند. نرم افزار صورت های بیشماری همانند الماس دارد و به پیچیدگی جنگلهای باستانی است .برنامهها ،هر کدام منحصر به فرد، همانند رودخانهای خروشان از میان سیستم حرکت می کنند .و به این دلیل است که در جایی که هستم خوشحالم«. برنامهنویس ریزپردازنده با شنیدن این سخنان خاموش ماند .اما آن دو برنامهنویس تا آخرین روزهای حیات دوست یکدیگر باقی ماندند.
۸.۴ نرمافزار و سختافزار در جادٔه چانگتهسه به یکدیگر برخوردند .نرمافزار گفت» :تو Yinهستی و من .Yangاگر ما با یکدیگر سفر کنیم مشهور خواهیم شد و ثروت بزرگی به دست خواهیم آورد «.و از آن پس آنان با یکدیگر ماندند ،در فکر فتح جهان. به زودی به سفتافزار* برخورد کردند که ردایی ژنده به تن و عصایی خاردار به دست داشت .سفتافزار به آنان گفت» :تائو جایی فراتر از Yinو Yangاست .او خاموش و همانند آبگیر است .او به دنبال شهرت نیست و بنابراین کسی نمی داند که وجود دارد .به دنبال مال اندوزی نیست ،چرا که در درون خویش کامل است .او فراتر از فضا و زمان است«. سختافزار و نرمافزار شرمسار شدند و به خانه بازگشتند.
کتاب نهم – پایان
استاد برنامهنویس بدین گونه به سخن درآمد:
»زمان رفتن برای تو فرا رسیده است«.