گفتگو با فارون لانیر، پیشگام واقعیت مجازی درباره مشکلات و دورنمای صنعت نرم افزار

اسمش فارون لانیر است و برای درک عظمتش کافی است بدانید اصطلاح واقعیت مجازی، اولین بار در دهه 80 از دهان یا قلم او بیرون آمده است 44 سال دارد و پیش از این که سال 1998 به استخدام شرکت معروف sun microsystems در بیابد همه او را به عنوان یکی از پیشتازان و نظریه پردازان واقعیت مجازی و برنامه نویسی رایانه ای می شناختند. قارون هم مثل خیلی از شخصیت های دیگر این صفحه علاوه بر خوره رایانه بودن، موسیفیدان ، آهنگساز و هنرمند نیز هست و در دانشگاههای معروفی بیل، کلمبیا و پنسلیوانیا به ملت دانش رایانه درس داده است قارون لانیر با این پیشینه ،‌آنقدر دانش و اعتماد به نفس داشته که سال 2002 کتابی بنویسد به اسم 50 سال آینده دانش در نیمه اول قرن بیست و یکم و در آن از ایده هایش برای تحول ساختار برنامه نویسی و دیگر شاخه های دانش حرف بزند متن زیر که خلاصه مصاحبه جانیس هیس از سایت شرکت سعد با اوست ممکن است در بعضی چاها کمی پیچیده و غیر قابل فهم به نظر برسد اما باور کنید ایراد از ترجمه نیست دست کم یک مطلب را می شود به روشنی در حرفهایش دید و آن این که ، او هم مثل نواندیشان دیگر عرصه فناوری ، به دنبال الهام از طبیعت و سیستم های طبیعی برای ساده کردن موضوعات است اگر کنجکاو شدید می توانید سری هم به www,jaroulanier.com بزنید.

ایراد روش نرم افزار نویسی امروز چیست؟
به نظر من کلیت روش نوشتن نرم افزار و فکر کردن به ن اشتباه است همه چیز ، عجیب و غریب کار می کند هیچ کس - منظورم واقعا هیچ کس است - نمی تواند برنامه های رایانه ای بزرگ را به روشی منطقی و مطمئن بنویسد اگر ما راه دیگری برای فکر کردن به نرم افزارها و تولید شان پدا نکنیم ،‌قادر نخواهیم بود برنامه هایی بزرگتر از 10 میلیون خط بنویسم و این بستگی به سرعت پردازنده های ما ندارد (پس از چاپ مصاحبه ،‌فارون به این نتیجه رسید که جمله اش باید ازن طور خوانده شود : بزرگتر از 20 تا 30 میلیون خط !) این مقیاس ناپذیری برنامه ها ، یک مساله جهانی است اگر به چیزهای دیگری که مردم درست می کنند مثل پالایشگاهها یا هواپماهای تجاری نگاه کنید می بینید که در آن موارد ما خیلی موثرتر با پیچیدگی ها برخورد می کنیم مشکل ما با نرم افزار این است که ما هیچ وقت یاد نگرفته ایم چطور اثرات جانبی انتخاب ها را – که به آن باگ می گوییم – کنترل کنیم البته نباید بی خیال شویم چون من هنوز اعتقاد دارم که ایده های نابی منتظر خق شدن هستند و یک روز به راههایی برای نوشتن نرم افزار خواهیم رسید که این مشکلات را بر طرف می کنند اصلی ترین علاقه حرفه ای من همین است من می خواهم سهمی در برطرف کردن باگها داشته باشم.
نمی شود گفت که باگها فقط یکجور محدودیت ذهن بشر هستند؟
نه،نه این طور نیست فرق میان باگ و نقص چیست؟ فکرش را که بکنید می بینید اعمال تغییری کوچک در برنامه ای می تواند عملکرد و نتیجه کار برنامه را تا حد زیادی عوض کند اگر طبیعت هم این طور کار می کرد سنگ روی سنگ بند نمی شد جهان روزی دو سه بار هنگ می کردو هیچ تکامل یا حیاتی به وجود نمی آمد در شیوه برخورد طبیعت با مساله پیچیدگی ، چیزها و نکته هایی هست که باعث می شوند وقتی کسی تغییر کوچکی در سیستم می دهد نتیجه هم به قدر کافی کوچک باشد به این ترتیب وقوع چرخه پیوسته و تدریجی تکامل ، ممکن می شود.
همین حالا میان کدهای ژنتیکی و ویژگی های خارج یموجودات یک پیوستگی و ارتباط تقریبا خطی وجود دارد اما در نرم افزار ،‌میان منبع کد و اثرات مشاهده شده در نتیجه برنامه ، رابطه کاملا آشفته است و این همان مشکل ماست برای اصلاح این آفتگی دارم روی چیزهایی کار می کنم، اما چیزی که بیش از همه برایم مهم است باوری است که برنامه نویسان به قابل حل بودن این مشکل دارند در طول 2 دههه گذشته، ما شاهد نوعی فرو رفتن در رضایت بوده ایم هر چه هم که نسلهای تازه برنامه نویسان پا به این عرصه می گذارند ، انگار همه این را پذیرفته اند که چیزها همیشه همین طور بوده و همین طور هم خواهد ماند این رضایت از باگها، ابر سیاهی است که روی همه فضای برنامه نویسی ، سایه انداخته است .
شاید باید به عقب بر گردیم و همه چیز را دوباره شروع کنیم .
اتفاقا این واخر به همین فکر می کردم اگر رد تاریخ برنامه نویسی را بگیریم جاهایی را می بینیم که به خاطر کم تجربگی و پس زمینه های ذهنی موجود در آن زمان ، اشتباه رفته است .
می توان به یک تاریخ متفاوت فکر کرد مثلا به نیمه قرن بیستم برگردیم دوره درخشان اولین نسل از خوره های رایانه ، آدمهایی مثل آلن تورینگ ، جان فون نویمان و کلود شانون ، تجارب و پیشینه ای که آنها از کدینگ داشتند شامل کد کردن اطلاعاتی بود که می شد آنها را با سیم فرستاد چون با پیامهای کد شده تلگراف و تلفن آشنا بودند دانش رایانه و نظریه بنیادی اطلاعات ، بر اساس همین تصور از شیوه ارسال- یعنی حول و حوش سیمها- ساخته شده اند از این دیدگاه کد مرجع برنامه یک شبیه سازی از پالسهایی است که می توان پست سر هم آنها را توی سیم فرستاد خب ، این تصور کارسازی است ، اما به نظر من تنها ایده ممکن نیست و حتی دارد به نوعی ناجور و بدقواره می شود چون این راهی نیست که سیستم های طبیعی از آن استفاده می کنند ، مثلا اگر بخواهید می توانید اتصال میان یک صخره و زمین زیرش را مثل ارسال اطلاعات در یک سیستم توصیف کنید ، اما این بهترین و برازنده ترین راه نیست اگر به صورت کلان به طبیعت نگاه کنید یک راه بهتر برای توصیف اتصال و ارتباط چیزها با یکدیگر تصور وجود یک سطح بین هر دو چیز است که به جای انتقال اطلاعات دقیق الگوهایی کلی را نمایش می دهد.
به همین ترتیب، می توان به دانش اطلاعات در این قالب نگاه کرد که چگونه قطعه های مختلف جهان ، به جای چسبیدن به یک پروتکل و ارسال اطلاعت در یک سیم با تشخیص الگوهای یکدیگر به هم متصل می شوند.
اگر به روش نرم افزار نوشتن الان نگاه کنید، می بیند که ایده فرستادن اطلاعت با یک سیم ،‌مثل کد دورس ، عمیقا روی همه کارهای ما تاثیر گذاشته است مثلا متغیری که در یک برنامه رایانه ای به تابعی پاس داده می شود یک جور شبیه سازی از یک سیم است نمی گویم کار غلطی است ، اما می توانم یک مشاهده تجربی از نتیجه این روش به شما ارائه کنم اگر یک پروتکل مبتنی بر زمان برای ارسال کد در یک سیم د اشته باشید، مقاوم کردن این جور کدینگ نسبت به بروز خطا، روش کارآیی نیست بعکس تحمل ناپذیر کردن آن در براب رخطا خیلی کاراتر است چون به این ترتیب ، خطاها فاجعه بار می شوند و شما رسما شرایطی ر به وجود می آورید که اگر در ارسال متغیر به تبع خطایی بروز کند – ولو یک بیت – تابع کاری انجام می دهد که فقط اشتباه نیست به طرز آشفته و فاجعه باری اشتباه است بی حساب و کتاب، اشتباه است .

مثل یک سری بلوک در حال سقوط می ماند
بله و منجر به ایجاد نوعی از خطا می شود که چیزی یادتان نمی دهد یعنی خطاهای بدی که درباره شان فقط می شود گفت : پسر ! این واقعا داغون شد فکر کنم باید برم خط به خطشو بخونم و درستش کنم نتیجه خطاها، اصلا متناسب با منشا خطا نیستند و این یعنی شما هیچ وقت نمی توانید شاهد یک تحول یا تغییر تدریجی در سیستم باشید.
ما به سیستم هایی نیاز داریم که در آنها، خطاها با منشاء‌خطاء متناسب تر باشند. این کار را چطور می خواهید با روش تشخیص الگو انجام بدهید؟
به خاطر پیشرفت های انجام شده در ساخت پردازنده ها و همین طور تکنیک ها و ایده های جدیدتر، آلان ما در نقطه ای هستیم که رایانه ها می توانند به جای تشخیص انطباق های کامل شباهت ها را هم تشخیص بدهند و این همان چیزی است که به آن تشخیص الگو می گویم اگر بتوانیم از انطباق به شباهت برسیم آن وقت است که می توانیم راه نرم افزار نوشتن مان را دوباره بررسی کنیم یعنی به جای اتکا به پروتکل که در آن هر جزیی باید تا حد یک بیت کاملا با بقیه اجزا منطبق و جور باشد، می توانیم به شباهت تکیه کنیم و در این صورت ، یک جور خطای خیلی آبرومند و خوش ترکیب،‌با نتیجه و هزینه قابل پیش بینی خواهیم داشت به عنوان یک ر ایانه دان می توانم شرط ببندم که این همان قطعه گمشده مورد نیاز برای آفرینش گونه جدیدی از نرم افزار است که من اسمش را فنوتروپیک گذاشته ام .

اگر راه دیگری برای فکر کردن به نرم افزارها و نوشتن شان پیدا نکنیم قادر نخواهیم بود برنامه هایی بزرگتر از بیست – سی میلیون خط بنویسیم

/ 0 نظر / 14 بازدید