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

چنین فرمود استاد برنامه نویس :
((برنامه ای که به درستی نوشته شده، بهشت خودش و برنامه ای که بد نوشته شده جهنم خودش است.))
۴٫۱
برنامه باید سبک و سریع باشد، رویه های آن باید مانند رشته های مروارید به هم متصل باشند. روح و معنای برنامه باید در سراسر آن حفظ شود . نباید خیلی کم یا خیلی زیاد باشد، حلقه های زاید و متغیر های بی استفاده نداشته باشد، نه تنها نقص ساختار بلکه استحکام بیش از حد نیز نداشته باشد.
یک برنامه باید از ((قانون حداقل شگفتی)) پیروی کند. این قانون چیست؟ به طور ساده برنامه باید همیشه طوری به کاربر پاسخ دهد که حداقل شگفتی را برای او ایجاد کند.
یک برنامه، هرچقدر هم که پیچیده باشد، باید کاری خاص را انجام دهد. برنامه باید بر اساس منطق درونی خودش عمل کند نه با نماد بیرونی. اگر برنامه اینگونه نباشد، برنامه ای نا مرتب و به هم ریخته است . تنها راه اصلاح آن، بازنویسی برنامه است.
۴٫۲
کارآموز از استاد پرسید: ((برنامه ای دارم که گاهی اجرا می شود و گاهی نمی شود .کلیه قوانین برنامه نویسی را رعایت کرده ام، اکنون کاملا گیج شده ام . علت این امر چیست؟))
استاد پاسخ داد: ((تو گیج شدی چون دائو را درک نکردی . فقط یک شخص نادان انتظار رفتار منطقی از افراد عامی را دارد. از دستگاهی که ساخته دست بشر است چه انتظاری داری؟ رایانه ها قطعیت را شبیه سازی می کنند؛ فقط دائو کامل است.))
((قوانین برنامه نویسی ناپایدار هستند؛ فقط دائو ابدی است . بنابراین باید به دائو بیندیشی قبل از آنکه به دانائی برسی.))
کارآموز پرسید: ((اما چگونه بفهمم که به دانائی رسیده ام؟))
استاد پاسخ داد: ((آنگاه برنامه تو به درستی اجرا خواهد شد.))

۴٫۳
استاد برنامه نویس ماهیت دائو را برای یکی از کارآموزانش شرح می داد. استاد گفت : ((دائو در تمام نرم افزارها متجلی است، هرچند ناچیز٫))
کارآموز پرسید: ((آیا دائو در یک ماشین حساب جیبی نیز وجود دارد؟))
پاسخ آمد: ((وجود دارد.))
کارآموز ادامه داد: ((آیا دائو در یک بازی ویدئویی هم وجود دارد؟))
استاد گفت : ((حتی در بازی ویدئویی هم وجود دارد.))
((آیا دائو در سیستم عامل داس رایانه شخصی هم وجود دارد؟))
استاد سرفه ای کرد و به آرامی اندکی از جایش تکان خورد و گفت : ((درس امروز تمام شد.))
۴٫۴
برنامه نویس شاهزاده ونگ در حال نوشتن برنامه بود. انگشتانش بر روی صفحه کلید می رقصید. برنامه بدون هیچ پیغام خطائی ترجمه شد و همچون نسیمی آرام اجرا گردید.
شاهزاده فریاد زد: ((عالی بود! تکنیک تو بدون خطاست!))
برنامه نویس از جلوی ترمینالش چرخید و گفت: ((تکنیک؟ آنچه من از آن پیروی می کنم دائوست، ماورای همه تکنیک ها! وقتی شروع به برنامه نویسی کردم قبل از خودم همه حجم موضوع را یکجا دیدم. بعد از سه سال دیگر هرگز این حجم را ندیدم . در عوض از زیر برنامه ها استفاده کردم. اما حالا هیچ چیز نمی بینم . تمام وجود من در
یک فضای بی شکل زنده است. حواس من بیکار است. روح من برای کار کردن بدون برنامه، آزاد است و از غریزه اش پیروی می کند . به طور خلاصه، برنامه های من،
خودشان خودشان را می نویسند. درست است، گاهی مسائل سختی وجود دارد. آنها را می بینم که می آیند، من کندتر حرکت می کنم و با آرامش نگاه می کنم. سپس خطی
از کد را تغییر می دهم و سختی ها ناپدید می شود مانند دود سیگار . سپس برنامه را ترجمه می کنم. آرام می نشینم و اجازه می دهم لذت کار وجودم را لبریز کند .
چشمهایم را برای لحظه ای می بندم و سپس از سیستم کامپیوتر خارج می شوم.))
شاهزاده ونگ گفت : ((ای کاش تمام برنامه نویسان من اینقدر خردمند بودند.))