فلسفه وجودی خدا در علم کامپیوتر
The philosophy of God’s existence in computer scienceاگر برنامه نویس باشید، حتما با تعاریف شی گرایی آشنایی دارید. ما در شی گرایی، سعی می کنیم هر هویت "فیزیکی" یا "معنوی" را در یک "تعریف" خلاصه و به صورت یک "کلاس" آن را پیاده سازی کنیم. به عنوان مثال، هویت "دست" می تواند به تنهایی یک کلاس و هویت "انسان" نیز کلاسی دیگر باشد.
تعریف دیگری که در شی گرایی داریم، تعریف "ارث بری" می باشد، به عنوان مثال، هویت "دست" می تواند از هویت بالاتر خود (پدر خود) یعنی "انسان" ارث بری داشته باشه و در حقیقت هویت "انسان" را کامل تر کند. ضمن اینکه تا خود "انسان" ظرفیت پذیرش "دست" را نداشته باشد، آن "دست" نمی تواند از آن ارث بری کند، اما در نهایت، تکمیل کنندهء "انسان" است.
لطفا به کلمه "هویت" بیشتر توجه کنید، هویت یک "انسان" به تنهایی نمی تواند تمامی آنچه یک "انسان" می تواند انجام دهد را انجام دهد، اما مسلما نبود هویتی به نام "انسان" به عنوان یک ظرف (container) برای هویت "دست"، ارزش و اهمیت "دست" را از بین می برد و دست از انجام آنچه وظیفهء آن است، ناتوان است.
بد نیست برای درک بیشتر، گریزی بزنیم به کتاب C++ Nuts and Bolts: For Experiences Programmers (نوشته هربرت شیلد و ترجمه مهندس شادمان پور) تا از ارث بری در شی گرایی بهتر و بیشتر بدانیم (لطفا به بخش های پر رنگ شده بیشتر دقت کنید):به طور کلی فرایند ارث بری با تعریف یک کلاس مبنا آغاز می شود. این کلاس مبنا همه آن کیفیاتی که در تمام کلاس های مشتق شونده از آن مشترک خواهند بود، تعریف می کند. در اصل کلاس مبنا بیان کننده کلی ترین توصیف از مجموعه ای از خصوصیات است. یک کلاس مشتق شونده، این خصوصیات را به ارث برده و خواصی که خاص خودش است به آنها اضافه می کند.
دوباره روی عبارت "کلاس مبنا بیان کننده کلی ترین توصیف از مجموعه ای از خصوصیات است" تاکید می کنم… عبارت "کلی ترین توصیف" نماد خوبی برای خدا است! در ادامه روند ارث بری "دست" از "انسان"، می توان به اینجا رسید که "انسان" نیز، بعد از چند مرحله، از "زمین" یا "طبیعت زمین" ارث می برد و این روند تا "منظومه"، "کهکشان"، "جهان" و "خدا" ادامه پیدا خواهد کرد و در نهایت، کلی ترین توصیف، مربوط به "خدا" می باشد.
در بین این "فلسفه" و "قوانین موجود در شی گرایی"، هنوز فواصل و مشکلاتی وجود دارد:
- به نظر می رسد، برای پشتیبانی کردن تمامی حالات موجود در دنیا، در شی گرایی، باید ارث بری چندگانه نیز پشتیبانی شود. متاسفانه یا خوشبختانه، دنیا همیشه پیچیده تر از آن چیزی است که ما فکر می کنیم!!
- در این بین، جای "قوانین" طبیعی بسیار خالی است، مثل قوانین فیزیکی، شیمیایی و غیره. برخی از این قوانین، توسط عباراتی مثل public، private یا کد های برنامه نویسی قابل پیاده سازی می باشد، اما آن کلیت و جامعیت که در طبیعت وجود دارد، در شی گرایی نیست. در نهایت، "قوانین" را می شود در ابعاد خیلی خیلی کوچکتر، به صورت یک "کلاس" تعریف کرد، که باز مشکل جامعیت دارد. از نگاهی دیگر، به تازگی، "قوانین" را می شود توسط "event" ها یا "رویداد" ها نیز پیاده سازی کرد، که به نظر می رسد آینده بهتری برای نزدیک شدن به دنیای واقعی دارد، ضمن اینکه به نظر می رسد، می تواند جامعیت مورد نیاز را داشته باشد.
- در برخی موارد ارث بری و شبیه سازی جز به کل، مشکلاتی وجود داشت. به عنوان مثال، آیا "دست" از "انسان" ارث بری می کند یا از "پوست" و "گوشت" و غیره؟ اگر این روند ادامه یابد، همه چیز به "مولکول"، "اتم"، "الکترون"، "پوزیترون" و اجزای کوچک تر از آن ختم خواهد شد. (آن موقع، "خدا" را باید در کوچک ترین و بیشترین جز ِ دنیا جستجو کرد و کلاس هایی برای کوچک ترین، اما جامع ترین ذرات ایجاد کرد!)
این مطلب به پایان رسید، شاید به این مطلب بخندید یا براتون جالب باشه یا … به هر ترتیب، نگارش این مطلب، اول، به دلیل مستند سازی و طبقه بندی کردن مشغله های پیش زمینه موجود در ذهنم بود و دوم، واداشتن مخاطبان به تفکر. امیدوارم که اندکی مفید واقع شده باشد.
نوشته شده توسط امید