پرش به محتوای اصلی

Emacs 50 ساله شد

هکرنیوز۱۴۰۵ آبان ۶, چهارشنبه، ساعت ۱۶:۵۵حدود 6 دقیقه مطالعه

آدرس مقاله: https://www.technologyreview.com/2026/10/20/1145399/emacs-turns-50/ آدرس نظرات: https://news.ycombinator.com/item?id=50273171 امتیاز: 288 # نظر: 115

برنامه نویسی قبلا تجربه ای بسیار متفاوت از آنچه امروز می شناسیم بود. در واقع، اولین برنامه نویسان اصلا کد نمی نوشتند. شش زنی که در سال 1946 در دانشگاه پنسیلوانیا بر روی ENIAC، یکی از اولین کامپیوترهای جهان کار می‌کردند، این کار را با پیکربندی فیزیکی سوئیچ‌ها، کابل‌ها و پلاگین‌ها انجام دادند.

چند سال بعد، مهندسان MIT Whirlwind را با پانچ کردن کد بر روی نوار کاغذی برنامه‌ریزی کردند که سپس در حافظه رایانه بارگذاری شد و آن را در زمره اولین ماشین‌های «برنامه ذخیره‌شده» قرار دادند. بعدا، آن‌ها و دیگران به سراغ کارت‌های پانچ، یکی برای هر خط کد رفتند.

در اوایل دهه 1960، برنامه نویسان با رایانه های تعاملی می توانستند از یک "ویرایشگر خط" برای تایپ کد خود در تله تایپ ها استفاده کنند - ماشین های صفحه کلید و چاپگر بزرگ و پر سر و صدا. آن‌ها هر بار یک خط کد را تایپ می‌کردند و کارشان روی یک هارد دیسک چرخان به اندازه یک ماشین لباسشویی مدرن ذخیره می‌شد. اما هنوز چیزی به نام ویرایشگرهای متن تمام صفحه که اکنون آشنا هستند وجود نداشت که به برنامه نویسان اجازه می دهد خطوط زیادی را در یک زمان روی یک نمایشگر ببینند و تغییر دهند.

یکی از اولین چنین ابزارهایی، EMACS، امسال 50 ساله می شود و هنوز هم به طور گسترده مورد استفاده قرار می گیرد.

EMACS برای اولین بار در سال 1976 بر روی پایانه های ویدئویی اولیه در آزمایشگاه هوش مصنوعی MIT اجرا شد، اما مفاهیم اصلی آن چنان قدرتمند بود که در دهه های بعد برای بسیاری از سیستم عامل ها بازنویسی شد. اپل حتی آن را با Mac OS X توزیع کرد. فراتر از آن، انجمن اشتراک‌گذاری نرم‌افزار که در اطراف EMACS شروع شد، به ایجاد جنبش نرم‌افزار آزاد مدرن و سیستم عامل گنو/لینوکس کمک کرد.

ریشه های EMACS با ویرایشگر متن TECO (در اصل «ویرایشگر و تصحیح نوار») آغاز می شود که دن مورفی '65 در سال 1962 برای رایانه پیشگام PDP-1 در MIT ایجاد کرد. دستورات این برنامه حروف بزرگ بود: کاربر برای درج متن "I"، برای حذف یک کاراکتر "D" و غیره را تایپ می کرد. هنگامی که نوار جای خود را به عنوان یک رسانه ذخیره سازی به فایل های روی یک دیسک مشترک بزرگ داد، "T" در "TECO" مخفف "Text" شد. و با گذشت سالها، TECO به یک زبان کامل تبدیل شد که برنامه نویسان می توانستند از آن برای ایجاد دستورات جدید، به نام ماکرو، برای ویرایش کد خود استفاده کنند.

در پاییز سال 1971، Carl Mikkelsen '76 Control-R را ایجاد کرد، یک برنامه الحاقی برای TECO که از ترمینال های شیشه ای تله تایپ با نمایشگرهای ویدئویی بهره می برد. Control-R بلافاصله تغییرات فایل در حال ویرایش را روی صفحه نمایش می دهد. برنامه نویس دیگر نیازی به چاپ مجدد هر خط برای مشاهده تغییرات ندارد. اشکال: صفحه نمایش می تواند تنها چند خط کد را در یک زمان نشان دهد.

"کاربران باتجربه و پیشرفته دریافتند که EMACS بسیار قابل استفاده تر از هر یک از اشکال قبلی ویرایش است."

سپس، در سال 1976، ریچارد ام. استالمن، محقق آزمایشگاه هوش مصنوعی MIT، در بازدید از آزمایشگاه هوش مصنوعی استنفورد، ویرایشگر تمام صفحه - به نام E- را دید. او با الهام گرفتن به MIT بازگشت و تصمیم گرفت تا Control-R را بهبود بخشد. مهم‌ترین تغییر در ساختار زیربنایی برنامه: هر کلید با فشار دادن ماکرو خود را اجرا می‌کند و سفارشی‌سازی Control-R را بسیار آسان‌تر می‌کند. هکرهای آزمایشگاه با ذوق به کد استالمن رفتند و شروع به تغییر و اضافه کردن دستورات کردند.

این مسئله برای گای استیل جونیور، SM '77، PhD '80 ایجاد کرد. استیل یک دانشجوی فارغ التحصیل در آزمایشگاه، مکررا نیاز داشت تا به سایر اعضای آزمایشگاه کمک کند تا برنامه های خود را اشکال زدایی کنند. او به یاد می‌آورد: «متوجه شدم که کمک به کسی که از یکی از این بسته‌ها استفاده می‌کند، بسیار سخت‌تر است تا TECO مستقیم. "در نهایت، به ذهنم خطور کرد که سعی کنم در مورد یک مجموعه استاندارد از دستورات Control-R که همه می توانند با استفاده از آن موافقت کنند، اجماع ایجاد کنم."

دیوید مون 75، یکی دیگر از اعضای آزمایشگاه، کمک کرد. استالمن نیز به داخل پرید و در نهایت او مسئولیت را بر عهده گرفت. گروه با هم مجموعه ای استاندارد از دستورات را اختصاص دادند که از کلید متا موجود در بسیاری از صفحه کلیدهای اولیه آزمایشگاه استفاده می کرد: Meta-F مکان نما را یک کلمه به جلو می برد، Meta-B آن را یک کلمه به عقب می برد و غیره. آنها نتیجه را EMACS نامیدند که مخفف «Editor Macros» یا «Editing Macros» است. استیل می گوید: «هدف من ساختن یک ویرایشگر متن عالی جدید نبود. من سعی می کردم به یک مشکل اجتماعی رسیدگی کنم.

با این وجود، EMACS یک ویرایشگر متن جدید عالی بود. طبق تاریخچه برنارد اس. گرینبرگ، SM '74، در حالی که Control-R می تواند مشکل باشد، کاربران EMACS با "اصلا هیچ تجربه فنی" نمی توانند نامه ها، ایمیل ها و حتی برنامه ها را "در عرض چند دقیقه یا یک ساعت" ویرایش کنند. در همین حال، "کاربران باتجربه و پیشرفته دریافتند که EMACS بسیار قابل استفاده تر از هر یک از اشکال قبلی ویرایش است."

استالمن شروع به توزیع EMACS برای هر کسی کرد که یک نوار مغناطیسی و یک پاکت برگشتی با هزینه پست برای او ارسال کرد. او در کتابچه راهنمای سال 1981 نوشت: «EMACS هیچ هزینه‌ای ندارد، در عوض، شما به کمون اشتراک‌گذاری نرم‌افزار EMACS می‌پیوندید». "شرایط عضویت این است که شما باید هر گونه پیشرفتی را که انجام می دهید به EMACS بازگردانید."

گرینبرگ، در همین حال، تصمیم گرفت نسخه خود را برای Multics بنویسد، یک سیستم عامل اولیه که در آن زمان متعلق به کارفرمایش، هانیول بود. EMACS گرینبرگ در کنفرانس بین المللی نرم افزار Honeywell در سال 1980 برنده جایزه اول شد و هانیول شروع به فروش آن کرد. هانی ول در بازاریابی نسخه ای از EMACS تنها نبود: جیمز آرتور گاسلینگ، فارغ التحصیل کارنگی ملون که در ادامه توسعه زبان برنامه نویسی جاوا را رهبری کرد، نسخه ای ساخت که در نهایت به عنوان یک محصول تجاری فروخت.

این انتقال از نرم‌افزار رایگان به نرم‌افزار پولی در نهایت استالمن را به راه‌اندازی پروژه‌ای برای ایجاد یک سیستم عامل که می‌توان آزادانه توسط کاربرانش به اشتراک گذاشته و بهبود بخشید، تشویق کرد. او این تلاش را که پروژه گنو نامیده می‌شود، از سیستم‌عامل محبوب یونیکس از آزمایشگاه‌های بل الگوبرداری کرد. «گنو» مخفف «GNU’s Not Unix» بود و اشاره به این واقعیت داشت که برخلاف یونیکس، رایگان خواهد بود.

اولین کاربرد اصلی این پروژه GNU Emacs بود (اکنون با حروف کوچک تغییر شکل داده شده است). سیستم عامل گنو/لینوکس هنوز سال ها با آن فاصله داشت، بنابراین، علی رغم هدف پروژه برای ایجاد یک سیستم عامل کاملا رایگان، گنو ایمکس در ابتدا روی یونیکس اجرا می شد. در نهایت بر روی طیف وسیعی از سیستم عامل ها از جمله لینوکس و همچنین سایر سیستم های مبتنی بر یونیکس اجرا می شود. هنگامی که اپل سیستم عامل Mac OS X را راه اندازی کرد، اولین نسخه از سیستم عامل مبتنی بر یونیکس خود، در سال 2001، GNU Emacs نیز گنجانده شد.

اپل ارسال GNU Emacs را در سال 2019 متوقف کرد، اما این شرکت هنوز برنامه ای به نام mg ("Micro GNU Emacs") دارد. اگرچه از اکثر دستورات EMACS پشتیبانی می کند، اما فاقد یک زبان برنامه نویسی یکپارچه است، و به همین دلیل برخی آن را "ersatz EMACS" می نامند.

در همین حال، بیشتر سیستم عامل اپل هنوز از دستورات EMACS پشتیبانی پنهانی دارد. صفحه کلید فاقد کلید متا است، اما Control-Option-B یک کلمه به عقب و Control-Option-F یک کلمه به جلو حرکت می کند.

ده سال پس از مسابقه AlphaGo در برابر قهرمان Go Lee Sedol، هوش مصنوعی امروزی هنوز از ماشینی استفاده نمی کند که این پیروزی را ممکن کرد.

مصاحبه ای اختصاصی با نیک کامماراتا، محققی که در پست وبلاگ ویروسی 26000 کلمه ای او افراد ایمنی هوش مصنوعی جشن گرفته اند.

ادعاهای نفس گیر در مورد AGI و قابلیت های جدید به سرعت تحت بررسی قرار می گیرند.

دانشمندان امیدوارند که بتوان از آن برای بازسازی افکار درونی، تصاویر ذهنی یا حتی رویاهای فرد استفاده کرد.

پیشنهادهای ویژه، داستان های برتر، رویدادهای آینده و موارد دیگر را کشف کنید.

خواندن متن کامل در هکرنیوزبه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

Emacs Turns 50

Article URL: https://www.technologyreview.com/2026/10/20/1145399/emacs-turns-50/ Comments URL: https://news.ycombinator.com/item?id=50273171 Points: 288 # Comments: 115

همه‌ی اخبار فناوری