در ماه ژوئن سال جاری، انجمن محاسبات ماشینی(ACM) صد سالگی آلنتورینگ را با برگزاری کنفرانسی جشن گرفت که در آن بیش از سی برنده جایزه تورینگ سخنرانی کردند. کنفرانس، پر بود از سخنرانیها و پنلهای غیرعادی که در رابطه با تورینگ و دنیای محاسبات امروز تنظیم شده بودند. در یکی از زمانهای استراحت، من موفق شدم تا مصاحبهای را با آلنکی ترتیب دهم؛ یکی از برندگان جایزه تورینگ که نوآوریهای بسیاری به وی نسبت داده میشود. کی اعتقاد دارد که بهترین راه پیشبینی آینده، اختراع آن است.
کودکی در هیبت نابغه
بینستاک: بگذارید مصاحبه را با پرسشی در رابطه با یک داستان معروف آغاز کنم. گفته شده که شما تا زمانی که به کلاس اول دبستان بروید، بیش از صد کتاب خوانده بودید و این مطالعات باعث شده بود تا شما متوجه شوید که معلمها به صورت مداوم در حال دروغ گفتن به شما هستند.
کی: بله این داستان نخستینبار در یکی از نوشتههایی مطرح شد که برای یک مجلس یادبود نوشته بودم.
بینستاک: پس شما آنجا در کلاس اول نشسته بودید و فهمیدید که معلمها دروغ میگویند. آیا این موضوع را به دانشآموزان دیگر نیز انتقال دادید؟
کی: در واقع اگر شما یک دیوانه تمام عیار نبوده و از نوع خاصی از خودشیفتگی رنج نبرید، عموماً خود را بسیار نرمال فرض میکنید. بنابراین من خیلی درباره این موضوع فکر نمیکردم. من در کل آدم درونگرایی بودم و سعی میکردم سرم به کار خودم باشد. تنها موقعی، از خود سرسختی نشان میدادم که مجبورم میکردند با آنها همراهی کنم.
بینستاک: پس در نهایت به آنها دروغگوییشان را گوشزد کردید؟
کی: بله. البته چیزی که واقعاً من را منقلب کرد، چند سال بعد اتفاق افتاد. در آن زمان من یک نسخه قدیمی از مجله لایف را پیدا کردم که عکسهای مارگارت بورکوایت از اردوگاه «بوخن والد» نازیها در آن چاپ شده بود. این موضوع مربوط میشود به دهه 1940، در یک مزرعه و بدون دسترسی به تلویزیون. در آن لحظه من فهمیدم که بزرگسالان چهقدر میتوانند خطرناک باشند، منظورم خیلی خطرناک است! من کلاً آن تصاویر را فراموش کردم، اما همواره کابوس میدیدم و فراموش کرده بودم که این تصاویر از کجا وارد ذهن من شدهاند. هفت یا هشت سال بعد، شروع کردم به وصله زدن خاطرات قدیمی.
رفتم و مجله را پیدا کردم. این شاید نقطه عطف زندگی من بود که دیدگاهم را راجع به زندگی تغییر داد. در این نقطه بود که من به آموزش و تحصیلات علاقهمند شدم. علاقه من به آموزش، خیلی حالت خارقالعاده و سحرآمیزی ندارد. من علاقه بهخصوصی به کمک به کودکان ندارم، اما شیفته ساختن بزرگسالانی بهتر هستم.
هجوم اروپایی در علوم کامپیوتر
کی: شما باید با ویلیام نیومن صحبت کنید که همین جا حضور دارد. او بخشی از جنبش فرار مغزهای انگلستان بود. در میان آنها کریستوفر استراچی نیز حضور داشت که من وی را یکی از 10 دانشمند برتر علوم کامپیوتر تاریخ میدانم. آنها همچنین پیتر لندین را داشتند. در واقع آنها پیش از ما مدیریت حافظه و time sharing داشتند. و ناگهان در اوایل 1960 شرایط زندگی در بریتانیا به حالت بحرانی رسید و دانشمندان جوان این کشور راه ایالاتمتحده را درپیش گرفتند.
ویلیام یکی از افرادی بود که به معنای واقعی کلمه، حوزه گرافیک کامپیوتری را بنا نهاد. او نخستین کتاب مشهور این حوزه را با عنوان «اصول گرافیک کامپیوتری تعاملی» به همراه رابرت اسپراول تألیف کرد. ویلیام به هاروارد آمد، تحت نظر ایوان ساترلند تحصیلات تکمیلی خود را آغاز کرد و در سال 1965 یا 1966 دکترایش را گرفت. ویلیام سپس بهدنبال ایوان به یوتا رفت و وقتی زیراکس پارک تأسیس شد، به این مؤسسه تحقیقاتی آمد.
در فرانسه نیز، البته به دلایلی متفاوت، اتفاق مشابهی رخ داد. بنابراین یکی از مواردی که منفعت بسیاری برای ما داشت این بود که توانستیم بریتانیاییها و فرانسویهای بسیار مستعد را با آن فرهنگ خاص و بیمحابایشان جذب کنیم. این افراد از مهمترین بخشهای پیشرفت علوم کامپیوتر در ایالات متحده بودند. به عنوان مثال، نخستین فونتهای آوتلاین توسط پاتریک بادلایر که دکترایش را در یوتا گرفته بود، در پارک ابداع شد. سایهگذاری روی اشیاء سهبعدی به افتخار هنری گورو(Henri Gouraud)، «گورو» نامیده شد. وی نیز در یوتا بود؛ دقیقاً همان زمانی که ایوان نیز در یوتا بود.
فرهنگ پاپ محاسبات
بینستاک: به نظر میرسد که دقت ویژهای در نسبت دادن اعتبار کارها به افراد انجامدهنده آنها دارید و سعی میکنید حتماً نام آنها را ذکر کنید.
کی: خوب، من آدمی سنتی هستم. همچنین من عمیقاً به تاریخ اعتقاد دارم. بی علاقگی به تاریخ چیزی است که امروزه حوزه محاسبات را عمیقاً آزار میدهد.
بینستاک: به یاد دارم که یک بار به محاسبات به عنوان یک حوزه پاپ اشاره کرده بودید.
کی: همینطور هم هست. یک فرهنگ پاپ کامل! من البته مخالف فرهنگ پاپ و عامیانه نیستم. به عنوان مثال، موسیقیهای توسعه یافته و مترقی به یک فرهنگ پاپ نیاز دارند. همیشه تمایل به توسعه بیشتر و رفتن به مرحله بعد وجود دارد. برامس و دیورژاگ در اواخر قرن 19 عمیقاً نیاز به موسیقی جیپسی را حس میکردند. مشکل اصلی جامعه ما این است که توسط رسانههای الکترونیکیای احاطه شده است که برای انتقال مطالب اینچنینی (پاپ) مناسبتر هستند تا انتقال مطالبی پیشرفتهتر. من جاز را به عنوان یک بخش توسعهیافته از فرهنگ متعالی (در برابر فرهنگ پاپ) درنظر میگیرم. هر چیزی که شما روی آن به حد کافی کار کردهاید و توسعه یافته است و میتواند به مراحل بعدی برود.
بینستاک: یکی از موارد جالب درباره طرفداران دوآتشه جاز، این است که آنها علاقه فراوانی به دانستن تاریخ جاز دارند و سعی دارند تا همواره نکات تاریخی را در ذهن داشته باشند.
کی: بله! موسیقی کلاسیک نیز این چنین است. اما فرهنگ عامیانه نسبت به تاریخ علاقهای نشان نمیدهد. تمام داستان فرهنگ عامیانه در رابطه با شناخته شدن و پیدا کردن این حس است که شما نیز در حال مشارکت در یک مسئله خاص هستید. در این فرهنگ همکاری، گذشته و آینده مفهوم ندارد. فرهنگ عامیانه در حال، زندگی میکند. فکر میکنم این موضوع در رابطه با افرادی که برای پول کد مینویسند، نیز درست باشند. آنها هیچ ایدهای ندارند درباره اینکه فرهنگشان از کجا آمده است. اینترنت آنقدر خوب عمل کرده که بسیاری از مردم آن را به صورت یک منبع طبیعی مانند اقیانوس اطلس در نظر میگیرند و اصلاً به یاد ندارند که این موجود ساخته دست انسان است و زمان زیادی برای توسعه آن صرف شده است. آخرین باری که یک فناوری در این وسعت تا این اندازه خوب و بدون خطا عمل کرده است، کی بوده؟ وب، البته، داستان دیگری است و در مقایسه با اینترنت مانند یک شوخی به نظر میرسد. وب توسط آماتورها توسعه داده شد.
مرورگر = یک سوگواری
بینستاک: به هر روی، هنوز هم نمیتوان گفت که وب موفق نبوده است.
کی: من فکر میکنم که میتوان گفت.
بینستاک: خوب به عنوان مثال ویکیپدیا را در نظر بگیرید. این محصول یک همکاری عظیم است.
کی: بله همینطور است. اما به عنوان مثال به سراغ مقالهای در رابطه با Logo (زبان برنامهنویسی) بروید. آیا میتوانید برنامههای Logo را نوشته و اجرا کنید؟ آیا مثالهایی برای آن وجود دارد؟ خیر. این موضوع حتی به فکر سازندگان ویکیپدیا هم نرسیده است؛ حتی با در نظر داشتن این موضوع که آنها در حال کار روی یک کامپیوتر هستند. این دقیقاً همان دلیلی است که باعث میشود من هیچگاه از پاورپوینت استفاده نکنم. پاورپوینت در واقع یک شبیهسازی از همان اسلایدهای اورهد قدیمی است و در نظر من، این یک گناه اخلاقی است. به همین دلیل من همیشه در سخنرانیهایم نهتنها از اشیاء پویا، بلکه از مواردی استفاده میکنم که بتوانم به صورت پویا و بیواسطه با آنها ارتباط برقرار کنم زیرا این همان چیزی است که کامپیوترها به خاطرش ساخته شدهاند. افرادی که اینکار را انجام نمیدهند، یا موضوع را دقیقاً نفهمیدهاند یا احترام لازم را برای آن قائل نیستند.
افراد حوزه بازاریابی، قصد آموزش مردم را ندارند و به همین دلیل شاید یکی از فاجعهآمیزترین ارتباطات با کامپیوترها این بود که شما میتوانید از طریق فروش شبیهسازیهای رسانههای قدیمی و سنتی، پول در بیاورید. همچنین این برنامکها تنها بیشتر ایدههای داگلاس انگلبارت را تداعی میکنند. مرورگر وب، برای سالها و البته هنوز، حتی با وجود اینکه در حال اجرا روی کامپیوتری با تواناییهای X،Y و Z است، تنها میتواند X و نیمی از Y را اجرا کنند.
بینستاک: منظورتان چیست؟
کی: به یک بلاگ بروید یا یک نوع ویکی را پیدا کنید که مانند مایکروسافت ورد WYSIWYG باشد. ورد درسال 1974 نوشته شد. هایپرکارد درسال 1989. یک صفحه وب به من نشان دهید که حتی بهخوبی هایپرکارد باشد. وب بعد از آن ساخته شد؛ اما توسط افرادی که هیچ قدرت تصوری نداشتند. آنها سعی داشتند تا یک نیاز آنی را پاسخ دهند. البته این موضوع عموماً هیچ مشکلی ندارد. اما مشکل وقتی پیش میآید که شما با چیزی مانند انقلاب صنعتی بهتوان ۲ روبهرو میشوید و سعی میکنید تا استانداردهای پایهای را وضع کنید که در این مورد استانداردهای خیلی بدی بودند. زیرا چیزی که شما قطعاً در مرورگر به دنبال آن نیستید، هرگونه ویژگی (feature) است.
بینستاک: هیچ ویژگیای؟
کی: بله. شما میخواهید تا ویژگیها را از اشیاء بگیرید. شما میخواهید تا مرورگر به صورت یک سیستمعامل کوچک عمل کند و کسانی که مرورگرها را نوشتند، آن را به اشتباه یک برنامه (application) فرض کردند. آنها درس مقدماتی سیستمعامل را افتادهاند!
بینستاک: چهطور؟
کی: منظورم این است، به این وضعیت توجه کنید: کار یک سیستمعامل اجرای مطمئن و امن یک کد دلخواه است. سیستمعامل نمیتواند به شما بگوید که چگونه کدی را باید اجرا کنید. بسیاری از سیستمعاملها بیش از اندازه ویژگی دارند. یکی از جالبترین چیزها در مورد یونیکس این بود که وقتی برای نخستینبار عرضه شد، تنها 20 دستور سیستمی داشت و کرنلی که تنها هزار خط بود. این موضوع در رابطه با لینوکس نیز صادق است.
بینستاک: بله.
کی: یکی از راههای نگاه به این موضوع دلیلی است که باعث رشد آرام WYSIWYG در مرورگرها شده است و آن این است که چنین روشهای ارتباط با کامپیوتر میتوانند تجربه تعامل را به آن چیزی که واقعاً باید باشد، نزدیکتر کنند. بنابراین آنها دارند چرخ را دوباره ابداع میکنند. میخواهم بگویم که در گذشته اگر شما چرخ را دوباره ابداع میکردید، بهدلیل عدم مطالعه شما را تنبیه میکردند اما امروز همه در حال ابداع لاستیک پنچر هستند. من به شخصه دوست دارم آنها را در حال ابداع دوباره چرخ ببینم، حداقل این میتوانست یک حرکت رو به جلو باشد. اگر حداقل به دنبال اختراع دوباره چیزی بودند که انگلبارت سالها پیش اختراع کرده بود، ما از وضعیت فعلی بسیار جلوتر بودیم!
اشیاء
کی: مشکل از آن جایی ناشی میشود که C زبانی است با تقید زودهنگام (Early bound) و به واسطه نداشتن تقید دیر هنگام (Late bound) یک سیستم پویا نیست. این باعث میشود که تقریباً بابت هر ویژگیای که بخواهید به زبان اضافه کنید، مجبور شوید از پیش آن را تعریف کنید. آیا زمانی که ما مجبور بودیم کامپیوتر را بوت کنیم، به یاد دارید؟ به این کار نیازی نیست. هیچ وقت به اینکار نیازی نبوده است. آنها این کار را به این صورت انجام دادند و این باعث شد تا ما با مگابایتها ویژگی غیرلازم روبهرو شویم که با یکدیگر پیوند خوردهاند، چه آنها را بخواهید، چه نه. همچنین هزار فراخوانی سیستمی (system call). آنچه ما در واقع میخواهیم، اشیائی هستند که روی شبکه منتقل میشوند و وقتی به منابعی نیاز داشته باشید، آنها را مستقیماً به دست میآورید نه اینکه مجبور باشید از طریق سیستمعامل اقدام کنید. ما هیچ سیستمعاملی در پارک نداشتیم. همچنین application نیز به این معنا وجود نداشت.
بینستاک: بنابراین فقط بارگذارندههای اشیاء بودند؟
کی: در واقع تنها یک تعویضکننده شیء وجود داشت. کار رابطکاربری در واقع تنها این بود که از اشیاء بخواهد خودشان را نشاندهند و آنهایی که لازم بود را از نظر بصری با یکدیگر ترکیب کند.
بینستاک: شما به این ترتیب، میتوانید با در نظر گرفتن هر چیزی بهعنوان یک شیء این ایده را افراطیتر کنید.
کی: نه منظورم این نبود. من در واقع اصطلاح شیء را از خودم ساختم. ما کار را با دید شیء محور آغاز کردیم که دقیقاً همان دیدی بود که در زمینه اینترنت داشتیم. چیزی که بعد اتفاق افتاد، در واقع یک پسرفت بود. وقتی ++C بیرون آمد، آنها سعی کردند تا آن را به برنامهنویسان C ارائه دهند. نتیجه کار این بود که هم از دنیا ماندند، هم از آخرت. این در مورد بیشتر زبانهای برنامهنویسی که امروزه شیءگرا نامیده میشوند، درست است. هیچکدام از آنها طبق تعریف من شیءگرا نیستند. اشیاء یک ایده رادیکال بودند اما بعدها جهت فکری تغییر کرد.
بینستاک: نظرتان در مورد مدل Actor چیست؟
کی: نخستین نسخه Smalltalk در امآیتی ارائه شد و کارل هیویت (Carl Hewitt) و دوستانش چندماه بعد، نخستین مقاله در زمینه Actor را چاپ کردند. تفاوت اینجا بود که مدل Actor عموماً از چیزهایی تشکیل شده بود که من به عنوان خصوصیات خوب شیءگرایی در نظر داشتم. ما در پارک با استفاده از اسمالتاک محاسبات شخصی را در واقع ابداع کردیم. اسمالتاک نهتنها یک زبان برنامهنویسی عملی بود، بلکه به صورت تئوری نیز بسیار جذاب بود. اما فکر نمیکنم سیستمهای کاربردی زیادی با استفاده از مدل Actor در آن زمان موجود بود.
برنامهنویسی
بینتساک: آیا هنوز هم برنامهنویسی میکنید؟
کی: من هیچگاه برنامهنویس خیلی خوبی نبودم. به همین دلیل هم به سراغ ساخت زبانهای برنامهنویسی قدرتمندتر رفتم. من دو نوع برنامهنویسی انجام میدهم: یکی Meta programming و دیگری برنامهنویسی به همان نحوی که کودکان بین 9 تا 13 یا 14 سال انجام میدهند. من زمان زیادی را صرف تفکر در این مورد میکنم که کودکان در سن رشد در چه زمینههایی مهارت بیشتری دارند؟ آموزش یک شمشیر دو لبه است. شما باید از همان جایی که مردم کار را شروع میکنند، آغاز کنید اما اگر در همانجا باقی بمانید، در واقع در حال آموزش دادن نیستید.
فاجعهآمیزترین چیز درباره برنامهنویسی، جنبش بسیار محبوبی است که بر مبنای زبانهای الگویی بنا شده است. زمانی که کریستوفر الکساندر برای نخستینبار این کار را در زمینه معماری صورت داد، در واقع در ذهنش 2000 سال تلاش انسان برای یافتن راههای راحتتر را مد نظر داشت. بنابراین ایده وی به نظر منطقی میرسید زیرا او در حال کار روی ژنومهایی بود که چندان تغییر نکرده بودند. من فکر میکنم او توانست چندصد الگوی مفید را پیدا کند. اما مشکل انجام چنین کاری در برنامهنویسی، این است که ما در مورد این حوزه آنقدر اطلاعات نداریم. بنابراین استخراج الگوها از برنامهنویسی کنونی، تنها باعث اعتبار بخشیدن بیدلیل و بیمنطق به آنها (الگوها) میشود.
بهترین استادی که من در تحصیلات تکمیلی داشتم، تمام ترم را به ویرانکردن هرگونه تصوری که ما از محاسبات داشتیم، گذراند. او یک بتشکن واقعی بود و البته یک نابغه به تمام معنا. بنابراین ما هم حرفهایش را پذیرفتیم. در پایان درس ما احساس آزادی میکردیم زیرا به هیچچیز اعتقاد نداشتیم. ما مجبور شده بودیم این همه چیز یاد بگیریم، اما او همهاش را نابود کرد. او از ما خواسته بود آن چیزی را که تا به حال انجام شده است، درک کنیم اما به آن، ایمان نداشته باشیم.
بینستاک: او چه کسی بود؟
کی: باب بارتون؛ کسی که Burroughs B5000 را طراحی کرد. او در صدر فهرست من از افرادی که باید جایزه تورینگ را دریافت میکردند و نکردند، قرار دارد. این جایزه توسط ACM داده میشود، بنابراین در واقع نشاندهنده جهتگیریهای آکادمیک و نرمافزاریای است که ACM آن را توسعه میدهد. البته همیشه همینطور نبوده است. بارتون بهاحتمال مهمترین فرد زندهای بود که استحقاق این جایزه را داشت. او سال قبل فوت شد. بنابراین دیگر این اتفاق نخواهد افتاد مگر آنکه آنها تصمیم بگیرند جایزههایی به افرادی که در قید حیات نیستند، نیز اهدا کنند.
بینستاک: فکر نمیکنم که چنین برنامهای داشته باشند.
کی: من فکر میکنم باید تجدید نظر کنند. این مانند مشکلی است در عرصههای دیگر هم شاید آن هستیم.
کار گروهی
کی: آیا با وینت سرف (Vint Cerf) مصاحبه کردهاید؟
بینستاک: خیر.
کی: او آدم بسیار خاصی است. نهتنها از نظر مغزی. بلکه او یکی از بهترین سازماندهندهها است. با اینکه اینترنت یک تلاش گروهی بود، اما اگر بخواهید به یک نفر که این جامعه را رهبری کرد اشاره کنید، آن شخص وینت است. او همچنین یکی از افراد توسعه دهنده TCP/IP بود. من واقعا او را دوست دارم. سالها است که او را میشناسم. او جلسههای خیلی سختگیرانه و البته سازمانیافتهای را اداره میکند، اما آنقدر اینکار را خوب انجام میدهد که همه به این جلسهها علاقه دارند.[ در اینجا بحث به مسئله کارگروهی کشیده میشود و این که کسانی در کنار سرف باید جایزههای مختلف علوم کامپیوتر را دریافت میکردند...] جایزهها چیزی نیستند که سایت دکتر دابز نگران آنها باشد، زیرا جایزهها معمولاً به افراد تعلق میگیرند نه به تیمهایی که سعی میکنند پروژههای جدی مهندسی را به انجام برسانند. داینامیک کار فردی و کار گروهی بسیار متفاوت است. بسیاری از افراد وارد محاسبات شدند چون با آدمهای دیگر راحت نبودند. بنابراین کنار هم گذاشتن چهار یا پنج نفر از چنین انسانهایی اصلاً کار آسانی نیست. ما باید سعی کنیم تا بیشتر در مورد همکاری تدریس کنیم و به افراد یادآوری کنیم که دنیای ما براساس همکاری تا به اینجا رسیده است و نه رقابت.
بینستاک: این موضوع نکتهای بسیار مهم در میان ورزشکاران است
کی: دقیقاً! شکی نیست. ورزشهای تیمی. این نزدیکترین مثال موجود است. همه باید در طول بازی با یکدیگر همکاری کنند اما بعضی افراد در حوزههای خاصی از دیگران بهتر هستند.