نوشته هانسن هسو
به مناسبت چهلمین سالگرد انتشار Smalltalk-80 ، موزه تاریخ رایانه مفتخر است که با دان اینگالز همکاری می کند حفاظت و میزبانی "باغ وحش Smalltalk". در زیر ، دانشمند کامپیوتر آدل گلدبرگ چشم انداز پشت اسمالتالک را توضیح می دهد.
باغ وحش اسمالتالک مجموعه ای از نسخه های تاریخی گرافیک انقلابی است برنامه نویسی و محیط کار Smalltalk ، که در ابتدا در زیراکس PARC توسعه یافته بود ، از نسخه 1972 تا نسخه مدرن "Squeak" که توسعه آن در 1995 آغاز شد. این محیطهای شبیه سازی شده Smalltalk در مرورگر وب شما اجرا می شوند و توسط CHM در smalltalkzoo میزبانی می شوند. thechm.org.
تصویری از Smalltalk-74 در رایانه زیراکس آلتو. © PARC. CHM Object ID 500004657. Smalltalk یک سیستم انقلابی بود که توسط گروه تحقیقات یادگیری (LRG) در زیراکس PARC در دهه 1970 به رهبری آلن کی توسعه یافت. Smalltalk شامل یک زبان برنامه نویسی ، یک محیط توسعه و یک رابط کاربری گرافیکی (GUI) بود که بر روی رایانه پیشگامانه PARC Alto اجرا می شد. در واقع ، بیشتر به دلیل رابط کاربری گرافیکی که استیو جابز را هنگام بازدید از وی و گروهی از مهندسان اپل در PARC در سال 1979 الهام بخشید ، بسیار مشهور است. Smalltalk پیشگام پنجره های همپوشان ، منوهای بازشو و مرورگرهای باز شده بود که همه توسط ماوس کنترل می شدند. همه این عناصر UI امروزه از طریق سیستم هایی مانند Macintosh و Microsoft Windows به دست ما رسیده است. Smalltalk همچنین یکی از اولین و تأثیرگذارترین زبان های برنامه نویسی شی گرا بود که امروزه غالب ترین نوع برنامه نویسی را تشکیل می دهد. زبانهای شیءگرا به گونه ای طراحی شده اند که استفاده مجدد از قطعات کد موجود را آسان کرده ، اما به روشی انعطاف پذیر. پایتون ، جاوا ، روبی و Objective-C و سایر موارد ، همگی مدیون ایده هایی هستند که در Smalltalk ایجاد شده اند.
کارتون دو کودک با استفاده از Dynabooks خود ، طراحی شده توسط آلن کی. از "یک رایانه شخصی برای کودکان در تمام سنین" ، توسط آلن کی ، زیراکس PARC ، 1972. دیدگاه آلن کی برای Smalltalk این بود که استفاده از آن برای کودکان آسان است. این محیط کاربر را برای دیدگاه خود در زمینه محاسبات شخصی ، "Dynabook" ، رایانه ای شبیه تبلت که او مسخره می کرد ، فراهم می کند. کی متوجه شد که رایانه ها نوعی رسانه هستند ، اما برخلاف رسانه های سنتی چاپی یا پخش شده ، می توانند به راحتی با علایق و نیازهای خاص کاربر تنظیم شوند. به عبارت دیگر ، رایانه ای که Smalltalk را اجرا می کند ، "رسانه پویای شخصی" خواهد بود. برای کی ، این بدان معناست که کاربران و به ویژه کودکان باید بتوانند سیستم خود را برنامه ریزی کنند. این ایده ها بر روی کلاس درس کودکان دبیرستانی در یک پروژه آزمایشی طراحی و اجرا شد که توسط دانشمند PARC آدل گلدبرگ انجام شد و در آن دانش آموزان با آزمایشگاه Smalltalk در آزمایشگاه با کامپیوترهای زیراکس آلتو آزمایش کردند. دانش آموزان با اصلاح کد موجود ، توانستند برنامه هایی مانند ابزارهای ویرایش گرافیکی ، ابزارهای متحرک سازی و برنامه های آهنگسازی ایجاد کنند.
بچه ها اسب ها را در Smalltalk-72 روی رایانه آلتو متحرک می کنند. با احترام از کتابخانه PARC. © PARC. CHM Object ID 500004466 این ایده ها در دموهای معروف Smalltalk بیشتر نشان داده شدبه استیو جابز و اپل ، که الهام بخش جابز بود تا رایانه های لیزا و مکینتاش را بر اساس رابط گرافیکی مشابه بسازد. دن اینگالز یکی از تظاهرکنندگان بود. در مشهورترین نسخه ی نمایشی ، دان نشان داد که چگونه یک کاربر می تواند رفتار انتخاب متن را از یک جعبه سیاه جامد با متن معکوس به طرح کلی در اطراف متن تغییر دهد ، همه اینها تنها با تغییر چند خط کد در حین کار سیستم. اکثر سیستم های روز برای اعمال هرگونه تغییر نیاز به تجمیع و بارگیری مجدد دارند.
تصویری از شبیه سازی Smalltalk-78 در حال اجرا در باغ وحش Smalltalk. این نمایشی را که به استیو جابز داده شد نشان می دهد که در آن دان اینگالز رفتار برجسته سازی متن را از جعبه سیاه با متن معکوس (در پنجره های مرورگر مشاهده می شود) به طرح کلی دو پیکسل در اطراف متن انتخاب شده تغییر می دهد. متن واقعی انتخاب شده در اینجا همان کدی است که تغییرات را پیاده سازی می کند. یک قطعه کد مشابه به صورت دستی اجرا شد تا کارتون جن را دو بار وارونه کند ، در نتیجه مستطیل ضخیمی روی جن قرار داد. بعدا در نسخه ی نمایشی ، جابز مشاهده کرد که رفتار پیمایش نمای متن ، تند و تیز است ، نه اینکه صاف و پرسید که آیا می توان آن را نیز تغییر داد؟ پیمایش خط به خط برای ویرایش کد بسیار طبیعی به نظر می رسید ، اما در طول یک استراحت ناهار ، دان برخی از کدها را برای این امکان سازماندهی کرد. هنگامی که جابز بازگشت ، دان نشان داد که با یک تغییر ساده ، او می تواند پنجره را به آرامی ، در هر زمان پیکسل ، به جای خط در یک زمان ، دوباره در حالی که سیستم هنوز در حال کار است ، حرکت دهد. دان این تظاهرات را برای CHM در Xerox Alto بازسازی شده ما ، هم در یک رویداد زنده و هم در دموی ضبط شده زیر ، تکرار کرده است. نسخه ی نمایشی رفتار انتخاب در ساعت 39:04 شروع می شود و نمایشی از رفتار پیمایش در ساعت 44:48 شروع می شود. این نسخه های نمایشی خاص در Smalltalk-76 روی Xerox Alto اجرا می شود.
در حالی که آلن کی به خاطر بیان دیدگاه پشت اسمالتالک (و ابداع اصطلاح "برنامه نویسی شی گرا") مشهور است ، دان اینگالز برنامه نویس اصلی و مسئول بسیاری از ویژگی ها و تغییرات طراحی که با توسعه LRG Smalltalk بیشتر صورت گرفت. اولین نسخه Smalltalk ، نسخه ای که بچه ها با آن بازی کردند ، Smalltalk-72 بود. (هر نسخه از Smalltalk تقریباً برای سال توسعه آن نامگذاری شده است ، و Smalltalk-72 در سال 1972 منتشر شد.) نسخه در حال اجرا Smalltalk-72 در باغ وحش Smalltalk اینجا میزبانی می شود.
تصویری از شبیه سازی Smalltalk-72 در حال اجرا در باغ وحش Smalltalk. Smalltalk-72 دارای تعدادی محدودیت ها ، و برخی پیشرفت های جزئی در نسخه بعدی ، Smalltalk-74 انجام شد. دو مورد از مهمترین پیشرفت ها یک سیستم حافظه مجازی به نام OOZE بود که توسط تد Kaler توسعه یافت و یک روال گرافیکی جدید به نام BitBLT که توسط Ingalls توسعه یافته بود. BitBLT (تلفظ شده "bit-blit") یک گرافیک ابتدایی جدید بود که پیکسل ها را از یک مکان حافظه به مکان دیگر به شیوه ای سریع و کارآمد کپی می کرد. این عملیات با عنوان "blitting" شناخته می شود. این مورد در هر جایی که گرافیک bitmapped برای جابجایی سریع مورد نیاز بود ، مانند پیمایش متن یا انیمیشن مورد استفاده قرار می گرفت. در نسخه های قبلی Smalltalk ،هم متن و هم گرافیک نسخه های خاص خود را از این روال معمول و قابلیت تکراری داشتند. اینگالز آنها را متحد کرد و روال معمول را در میکرو کد Alto پیاده سازی کرد تا سریعتر انجام شود. امروزه از عملیات blitting در همه جا استفاده می شود ، از جمله در بازی های ویدئویی دوبعدی ، جایی که پایه و اساس ایجاد حرکات زنده است.
تصویری از Smalltalk-76 ، تصویری از مقاله ویکی پدیا در Xerox Alto. نسخه اصلی بعدی ، Smalltalk-76 ، ارتقاء حتی بزرگتری بود. Smalltalk-76 طراحی زبان Smalltalk را تغییر داد و ویژگی ای را که اغلب مترادف با برنامه نویسی شی گرا "ارث" شناخته می شود ، در خود جای داد. همچنین یک نحو قابل جمع آوری ، پارامترهای دارای برچسب کلید واژه را معرفی کرد ، چیزی که امروزه برای برنامه نویسان Objective-C و Swift آشنا است. برای خوانندگان فنی علاقه مند ، مقاله دان اینگالز با عنوان "سیر تکاملی Smalltalk: از Smalltalk-72 تا Squeak" دارای جزئیات بیشتری است. Smalltalk-76 طرحی را ایجاد کرد که امروزه اکثر نسخه های Smalltalk از آن پیروی می کنند.
مانند 74 و 76 قبل از آنها ، دو نسخه بعدی Smalltalk در PARC یک به روز رسانی جزئی (78) و به دنبال آن یک نسخه اصلی ( 80) Smalltalk-78 یک بندر Smalltalk-76 به NoteTaker بود ، یک رایانه قابل حمل که عمدتاً توسط داگ فیربرن طراحی شده بود و از ریزپردازنده های Intel 8086 استفاده می کرد. این نسخه از Smalltalk حافظه مجازی OOZE را حذف کرد و تغییرات کلیدی را ایجاد کرد که قابلیت حمل را در مرحله بعدی ، Smalltalk-80 ، تسهیل کرد.
شبیه سازی Smalltalk-78 ، که بسیار شبیه به Smalltalk-76 اجرا می شود ، در باغ وحش Smalltalk اینجا میزبانی شده است.
رابط کاربری گرافیکی Smalltalk-80 ، حدود 1980. از کتابخانه PARC ، © PARC. CHM Object ID 500004472. Smalltalk-80 تلاشی بود که توسط آدل گلدبرگ ، که تا سال 1980 مدیر LRG بود ، برای تبلیغ و در دسترس قرار دادن Smalltalk خارج از زیراکس PARC انجام شد. مجوزها به چهار شریک شرکت اعطا شد که Smalltalk را برای سیستم های شخصی خود توسعه می دهند: Tektronix ، DEC ، Apple و HP. تغییر اساسی در این تلاش ، ترجمه استفاده از نویسه های صفحه کلید ویژه سخت افزار زیراکس به معادل استاندارد ASCII بود. یک شماره ویژه از مجله Byte در اوت 1981 به اسمالتالک اختصاص داده شد و اعضای LRG از جمله اینگالز ، گلدبرگ ، کاهلر ، لری تسلر و دیگران مشارکت کردند. این نشریه تأثیر زیادی بر صنعت رایانه در گسترش ایده های برنامه نویسی شی گرا داشت. به عنوان مثال ، این مسئله Byte براد کاکس را تشویق کرد تا مفاهیم Smalltalk را با زبان برنامه نویسی C ترکیب کند تا Objective-C ایجاد شود. (به "تاریخچه مختصری از Objective-C" همچنین "ریشه های Objective-C در PPI/Stepstone و تکامل آن در NeXT مراجعه کنید." چندین کتاب در مورد Smalltalk ، همچنین توسط محققان LRG ، نیز منتشر شد. (Smalltalk-80: The زبان ، Smalltalk-80: زبان و پیاده سازی آن ، Smalltalk-80: محیط برنامه نویسی تعاملی ، و Smalltalk-80: بخش هایی از تاریخ ، کلمات توصیه ای.) Smalltalk-80 مبنایی برای همه نسخه های تجاری بعدی Smalltalk شد. A نسخه Smalltalk-80 را می توان در اینجا اجرا کرد.
در اواسط دهه 1980 ، کی ، مانند دیگر همکاران سابق PARC ، لری تسلر و دان اینگالز ، به اپل پیوست. در سال 1995 ، پس از وقفه ای از کامپیوتر ، اینگالز مجدداً به گروه کی پیوست تا نسخه ای جدید و قابل حمل از Smalltalk را که از نسخه رایگان Apple Macintosh گرفته شده است ، تولید کند. این نسخه که "Squeak" نام دارد ، از رنگ کامل پشتیبانی می کند.شامل بهبودهای زیادی بود ، از جمله نسخه به روز شده روال BitBLT به نام "WarpBlt" که از جلوه های چرخش و مقیاس پذیری پشتیبانی می کرد. یک نمونه جالب از WarpBlt را می توانید در اینجا پیدا کنید. Squeak همچنین از تلاش جدیدی برای ایجاد محیط محاسبات آموزشی کودکان ، eToys ، پشتیبانی کرد. eToys را می توان در اینجا اجرا کرد. Squeak در سال 1996 به عنوان منبع باز منتشر شد و امروزه در توسعه فعال باقی می ماند. به لطف SqueakJS ونسا فرویدنبرگ (پیاده سازی Squeak در جاوا اسکریپت) ، اکنون می توانید اکثر نسخه های Squeak را در باغ وحش Smalltalk اینجا اجرا کنید.
اثر ماندالای WarpBlt در شبیه سازی Squeak که در باغ وحش Smalltalk اجرا می شود. > در طول تقریباً 50 سال سابقه ، نسخه های زیادی از Smalltalk وجود داشته است ، بسیاری که تأثیرات قابل توجهی بر صنعت رایانه وسیع تری داشته است. از دیدگاه امروز ، که در آن موش ها و رابط های گرافیکی کاربر در همه جا حضور دارند ، تصور اینکه GUI در دهه 1970 چقدر رادیکال بود دشوار است. علاوه بر این ، رابط کاربری گرافیکی اولیه PARC از نظر راه های کلیدی با رابط کاربری که ما امروزه از آن استفاده می کنیم ، متفاوت است ، چه رایانه های شخصی ویندوز و چه آیفون ها. به عنوان یک ، طبیعت پویا و زنده این سیستم ها ، که در آن کاربران برنامه نویس سیستم های خودشان بودند و می توانستند به طور دلخواه همه چیز را تغییر دهند ، به نفع امنیت و ثبات از بین رفته است. توصیفات متنی این سیستم ها به سادگی آنها را عدالت نمی کند. آنها باید دیده شوند. نسخه های نمایشی ضبط شده ، مانند Ingalls و منتشر شده توسط مرکز تاریخ نرم افزار در CHM ، کار بسیار بهتری در ثبت تجربه انجام می دهند.
این طبیعت پویا Smalltalk است و حسی که قفل شده است -رابط های کاربری امروزی پایین انعطاف پذیری و قابلیت بازیابی Smalltalk اولیه را از دست داده است که سازندگان آن را ترغیب به بازگشت به آن و زنده کردن آن کرده است. دیدگاه کامل آلن کی درباره رسانه های پویای شخصی در محاسبات مدرن هنوز محقق نشده است. برای درک آن دیدگاه اصلی و تأثیر انقلابی آن ، باید پویایی اسمالتالک ، "زنده بودن" آن را تجربه کرد. برای انجام این کار ، باید بتوانید نسخه ای از Smalltalk را اجرا کنید ، با آن بازی کنید ، تغییرات را به صورت زنده انجام دهید و نحوه عملکرد آن را ببینید. البته ، اکثر مردم به Xerox Alto کار نمی کنند. خوشبختانه ، سالهاست که دن اینگالز با همکاری دیگران محیط شبیه سازی به نام LivelyWeb را ایجاد کرده است که در جاوا اسکریپت اجرا می شود و در هر مرورگر وب اجرا می شود که می تواند شبیه سازی های تاریخی مختلف Smalltalk ، از Smalltalk-72 تا Squeak را میزبانی کند. به این باغ وحش Smalltalk است: یک سرگرمی شبیه سازی تاریخی Smalltalk که در مرورگر وب شما به صورت زنده اجرا می شود و برای همه قابل دسترسی است.
CHM ، با همکاری Dan Ingalls ، مفتخر است که میزبان باغ وحش Smalltalk است ، که می توانید به آن دسترسی پیدا کنید در smalltalkzoo.thechm.org. سایت Smalltalk Zoo همچنین مقاله مقاله تاریخچه زبانهای برنامه نویسی ACM اینگالز "The Evolution of Smalltalk: From Smalltalk-72 through Squeak" است. به عنوان موسسه برتر غیرانتفاعی متعهد به حفظ و دسترسی به تاریخ رایانه در سالهای آینده ، CHM مکانی ایده آل برای بایگانی وچنین مصنوعات نرم افزاری تاریخی را تجربه کنید.
[1] دانیل اینگالز ، "تکامل Smalltalk: از Smalltalk-72 تا Squeak ،" مجموعه مقالات ACM در زبانهای برنامه نویسی 4 ، شماره. HOPL (12 ژوئن 2020): 85: 1–85: 101 ، https://doi.org/10.1145/3386335.
[2] برد جی کاکس ، استیو ناروف و هانسن هسو ، "ریشه های Objective-C در PPI/Stepstone و تکامل آن در NeXT ،" مجموعه مقالات ACM در زبان های برنامه نویسی 4 ، شماره. HOPL (12 ژوئن 2020): 82: 1–82: 74 ، https://doi.org/10.1145/3386332.
پروژه سیستم آلتو: دان اینگالز Smalltalk
از Smalltalk تا Squeak ، سخنرانی Dan Ingalls
رایانه دیروز فردا: Xerox Alto Adele Goldberg تاریخ شفاهی یافتن کمک به مقالات آدل گلدبرگ
گلدبرگ ، ParcPlace و Xerox PARC نوارهای ویدیویی و DVD
پروژه سیستم آلتو: تظاهرات لری تسلر کولی
تاریخچه های شفاهی لری تسلر:
آلن کی: پایان نامه دکتری دانشگاه دینابوک-گذشته ، حال و آینده
دانشگاه آلن کی یوتا. موتور واکنشی ؛ و Flex
انقلاب رایانه ای هنوز اتفاق نیفتاده است
انجام تصاویر باعث ایجاد نمادها می شود
مقاله های آلن سی کی
آلن کی تاریخ شفاهی (2008)
بازگشت به آینده نرم افزار ، سخنرانی آلن کی:
مدل Dynabook Dynabook ، داستان کامل
40 سالگرد the Dynabook، CHM Lecture by Alan Kay
Smalltalk v286 VisualAge for Smalltalk Smalltalk-80 Virtual Image 2.2/Virtual Machine 1.1 Atari ST Smalltalk/V سیستم برنامه نویسی شی گرا < /p>
کتابچه راهنمای Smalltalk-72 و 80:
زیراکس آلتو:

تصویر سرپوشیده: شماره 1981 مجله Byte شامل Smalltalk زیراکس ، یک محیط گرافیکی و زبان برنامه نویسی پیشگامانه بود که برنامه نویسی شی گرا را به مخاطبان زیادی.
هانسن Hsu است مورخ و جامعه شناس فناوری و سرپرست مرکز تاریخچه نرم افزار CHM. او در تقاطع تاریخچه محاسبات شخصی ، رابط کاربری گرافیکی ، برنامه نویسی شی گرا و مهندسی نرم افزار کار می کند.
ابتدا در https://computerhistory.org در 17 دسامبر 2020 منتشر شد.