نمیدانم این تفکر لایه ای را از عالم کامپیوتر با خود دارم،
یا سابقهی بیشتری در ناخودآگاهم دارد.
اما، واقعا نگاهی است در هنگام کاربردی کردن مسایل ذهنی،
کاملا لازم است.
***
مثلا لایه های حیات+.
ما لایههای حیات را از سالها پیش میشناسیم.
سالها پیش از کنث بیلدینگ،
قشنگ تر و گویاتر اش را از مولوی شنیده بودیم.
و سالها پیش تر از مولوی، حدیثش را از امیرالمومنین شنیده بودیم.
زیبا تر و قشنگ تر.
این که آدمها، لایه لایه اند.
این که در عوالم مختلفی هستند.
به تعبیر بیلدینگ، در مراحل مختلف حیات به سر میبرند.
به تعبیر مولوی،
اولش جمادی بودهاند، بعد نامی (گیاه) شدهاند.
بعد حیوان. بعد انسان.
بعد ملک.
و بعد هم بالاتر از آن.
یا به تعبیر حدیثی که پیشتر ذکرش رفته است+،
بر جسم انسان، ارواحی سوار است:
اول روح البدن.
از آن بالاتر، روح الشهوه.
بالاتر، روح القوه.
و بالاتر، روح الایمان.
و از ملک پران ترش هم روح القدس!
***
این که شما یک میلی در وجودت هست،
باید ببینی ریشه اش کجاست.
خیلی وقت ها تنها منحصر در یک لایه نیست.
گرسنگی -و نیاز به غذا- در انسان هست.
ریشه اش هم در روح البدن (زندگی نباتی) است.
هر موجود زنده، نیاز به تغذیه دارد.
اما این که چه طور این نیاز را ارضاء کند،
به سایر ارواحی که فرد با خود دارد بر میگردد.
نبات، هر چه بریزی پایش را میکشد بالا و میخورد.
حیوان بو میکند. اگر دید خوردنی است، همان طوری میخوردش.
انسان ِمتمدن، میشوید و میپزد؛ دست های خودش را هم میشوید
و تمیز غذا میخورد.
مومن، علاوه بر اینها، غذایش را با گفتن بسم الله شروع میکند.
به حلال و حرامش هم کار دارد.
***
کامپیوتر هم لایه لایه است.
یعنی یک لایهی سخت افزاری داریم که آن زیر است. توی کیس.
یک لایهای بالاتر از آن هست که BIOS مینامیماش.
یک لایهی بالاتر داریم به نام سیستم عامل+. (مثل ویندوز یا لینوکس)
یک لایهی بالاتر داریم که نرم افزارهای کاربردی هستند.
هر لایه ای، زبان و عوامل مخصوص به خودش را دارد.
*
زبان در لایهی سخت افزار، چیزی جز صفر و یک نیست.
صفر و یکی که به انحاء مختلف ایجاد میشوند.
یا با سیگنال ها و ولتاژ برق،
یا با مغناطیسی بودن/نبودن،
یا بازگشت پرتو نور یا ..
*
لایهی بالاتر که BIOS باشد،
هر چند بسیار ساده تر از صفر و یک است،
اما کماکان دستوراتی کاملا نزدیک به سخت افزار دارد.
زبانی که با آن میتوان در این لایه برنامه نوشت، اسمبلی است.
لایههای بالاتر، نیز زبانهای خودشان را دارند.
*
یک کلیک در لایه ی کاربری،
در لایهی زیرین خود (سیستم عامل)، به دهها دستور ترجمه میشود.
و به همین ترتیب هر یک از دستورات لایهی سیتم عامل،
در لایهی BIOS به ده ها دستور دیگر ترجمه میشوند.
و هم چنین در لایهی 0/1 (سخت افزار) یک دستور از لایهی BIOS
به هزاران تحرک و سیگنال ترجمه میشود.
این چنین است که یک کلیک ساده در لایههای بالایی،
میتواند موجب هزاران عملکرد و دستور نانو-ثانیهای در لایههای پایینتر شود.
*
ما زبانهای برنامه نویسی را هم لایه لایه نگاه میکنیم.
و میگوییم،
فلان زبان به سخت افزار نزدیکتر است (زبان سطح پایین).
فلان زبان به کاربر نزدیکتر است (زبان سطح بالا).
***
حالا این قصهها را گفتم برای چه؟
طبق معمول، با اخویمان مباحثه فکری داشتیم.
بحثها معمولا از لایه های کاربری شروع میشوند.
مثلا چرا ما ایرانیها فلان مطلب را این طوری برگزار میکنیم؟
اما چنان چه پیداست، بحث ها در این لایه و در این نقطه محدود نمیماند.
در این جور مواقع،
احتمال رخداد دو اتفاق بسیار بالاست.
حالت اول.
دو طرف؛ یا یکی از طرفین،
از این شاخه به آن شاخه میپرند.
یعنی در همان لایهی شروع بحث، باقی میمانند،
ولی دامنهی آتش را میگسترند و از این شاخه به آن شاخه میپرند.
در نتیجه،
به سبب گستردگی بیش از اندازهی بحث،
دیگر امکان جمع کردن بحث وجود نخواهد داشت و
کسی پیروز یا شکست خورده نخواهد بود.
این حالت، برای کسانی که در آغاز ِآشنایی ِمباحثهای هستند،
بیشتر رخ میدهد.
تا رفته رفته به اخلاق و ادبیات و فرهنگ واژگان یک دیگر آشنا شوند.
حالت دوم.
دو طرف؛ یا یکی از طرفین،
بحث را عمیق کنند و به لایه های پایینتر ببرند.
این طوری، بحث کردن پیچیدهتر میشود
و مستلزم مطالعه و کنکاش بیشتر است.
چنان چه در عالم رایانه مثال زدیم،
یک کلیک در لایهی کاربردی، شاید منجر به 10 دستور در لایه ی سیستم عامل شود.
پس وقتی یکباره دست از لایهی کاربری میشویی و
میخواهی با زبان سیستم عامل و در لایه ی هسته با آن حرف بزنی،
کار، بسیار مشکل تر، تخصصی تر و طولانی تر است.
***
با توجه به این که بیش از 20 سال است که
بنده و اخوی مشغول مباحثه با یکدیگر هستیم
شگردهای فنی یکدیگر را فراگرفته ایم
و به این راحتی نمیتوانیم با یکدیگر در سطح کاربری، بازی کنیم.
و دامنهی بحثها را در سطح بگستریم.
لذا بحثها سریعا عمیق میشود.
و به ریشههای تاریخی و مذهبی و گاه، بحثهای فلسفی کشیده میشود.
و وقتی هم عمیق شد،
مثل منای، سوادش تا یک جایی میکشد.
تا یک حدی کتاب خوانده است و پای درس نشسته است!
از یک حدی پایین تر نمیتواند برود.
آن وقت است که باید کنار بکشد.
***
این قصهها را گفتم که این را بگویم که
روز عاشورا به اخوی گفتم:
«ببین.
ما ها (=اکثریت آدمها) اصلا کاری به برنامهنویسی نداریم.
اینترنت اکسپلورر دنیا را آوردهایم بالا.
کار خودمان را میکنیم.
وبگردی و ولگردیمان را میکنیم.
تازه، یک کسی مثل من و شما که چموش است،
و زور میزند و در این سوراخ و آن سوراخ انگشت میکند، که ببیند چه خبر است؛
حداکثرش «ویژوال بیسیک» نویس هستیم.
شما اگر میخواهی، اسمبلی بنویسی، بنویس.
ولی باید بروی دنبال اسمبلی نوشتن.
خیلی هم خوب است.
دم ات هم گرم!
وقتی ویژوال بیسیک مینویسی،
دیگر با زیرش کاری نداری.
نمیخواهی بفهمی ویندوز آن زیر چه غلطی میکند.
یا «مایکروسافت ویژوال استودیو» چه گندی موقع کامپایل کردن میزند.
نوشتن در آن لایه را انتخاب کرده ای.
عوضش ذهنت را آسوده کرده ای و
میتوانی برنامهی پیچیدهات را هم بنویسی.
و مثل بچهی آدم زندگی ات را بکنی!
اما یک برنامهی ساده با اسمبلی نوشتن، دهان آدم را مسواک میکند.
این راه توست.
اما ترسم این است که ویژوال بیسیک را رها کنی.
اسمبلی نویس هم نشوی.
برای این که از شر قواعد ویژوال بیسیک راحت شوی،
رفته باشی سراغ لایه های پایین تر.
اما -عزیزم!- قواعد اسمبلی بسیار مشکل تر است.
میترسم، برنامه نویسی را بگذاری کنار.
میترسم، برنامه را بگذاری کنار.»