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

Emacs "مادر همه ویراستاران" 50 ساله است

دِ رجیستر۱۴۰۵ آبان ۱۰, یکشنبه، ساعت ۱۵:۲۱حدود 8 دقیقه مطالعه

بر حسب تصادفی خیره کننده، رقیب سرسخت آن، Vi

مرجعی کمتر از MIT Technology Review می گوید که ویرایشگر Emacs 50 ساله شده است. اما پس از آن، مغرضانه است - Emacs در آزمایشگاه هوش مصنوعی MIT اختراع شد.

مقاله سیمسون گارفینکل به سادگی EMACS 50 ساله می شود نامیده می شود، اما عنوان فرعی توضیح می دهد که چرا اهمیت بیشتری دارد:

چگونه ویرایشگر متن آزمایشگاه هوش مصنوعی MIT جنبش نرم افزار آزاد را به وجود آورد.

زمان‌بندی‌ها و گزارش‌های متعددی از منشأ Emacs وجود دارد، و این یک برنامه یکپارچه نیست. این نام مخفف "E diting MAC ro S" است و ویرایشگر اصلی که این مجموعه ماکروها برای آن توسعه داده شد TECO بود - "ویرایشگر متن و تصحیح کننده" که توسط دن مورفی در سال 1962 نوشته شد. مورفی اوایل امسال در سن 83 سالگی درگذشت.

جیمی زاوینسکی بی‌نظیر یک جدول زمانی دایره‌المعارفی Emacs دارد – همانطور که در ابتدا اشاره کرد، علاقه‌اش این بود که مدت‌ها پیش یک چنگال از Emacs گنو، که در اصل Lucid Emacs نامیده می‌شد، نگهداری می‌کرد. هنوز هم با نام بعدی XEmacs وجود دارد. فورک‌ها و پیاده‌سازی‌های مجدد Emacs زیادی وجود دارد، و ما قصد نداریم به همه آنها بپردازیم، وگرنه این مقاله تبدیل به یک کتاب می‌شود - کتابی که فقط برای برنامه‌نویسان-باستان‌شناسان جالب است (برای استفاده از اصطلاحی که ورنر وینج بزرگ فقید ابداع کرده است).

با این حال، در مورد اینکه چه کسی این ویرایشگر ماکروها را نوشته است، تاریخ دیگری نقل قول هایی از چندین نفر از افراد درگیر دارد: در مورد منشأ Emacs در سال 1976. (توجه داشته باشید - برخی از نقل‌قول‌ها همچنان دارای علامت‌های | هستند که متن نقل‌قول‌شده را علامت‌گذاری می‌کنند.)

این به Lisp Boffin Guy L. Steele Jr با اثر اصلی در سال 1975 اعتبار می دهد، اما استیل در آن می گوید:

"RMS مسئول نام‌های "E" و "EMACS" است. RMS هنوز برای گرفتن بسته‌ای از ماکروهای TECO و تبدیل آن به قوی‌ترین ویرایشگر روی کره زمین، مستحق 99٪ یا 99.9٪ یا 99.99٪ یا 99.999٪ از اعتبار است."

RMS البته ریچارد استالمن است، و این صفحه همچنین برخی از ایمیل‌های RMS را در 23 و 31 اکتبر 1976 نقل می‌کند. توجه داشته باشید، فقط چند سال پس از این رویداد، در یک سخنرانی در سال 1981 که اکنون در وب‌سایت گنو نگهداری می‌شود، استالمن گفت: "من توسعه EMACS را در سال 1974 با بهبود TECO آغاز کردم". مانند تمام بهترین FOSS، حتی در مراحل اولیه آن، این یک تلاش مشترک بود - اما در اواخر اکتبر 1976، زمانی بود که RMS بخش عمده ای از توسعه را در اختیار گرفت.

از میان بسیاری از فورک‌های Emacs در طول نیم قرن توسعه‌اش، برخی از آن‌ها هنوز در حال تعلیق هستند. هنگامی که لینک XEmacs را جستجو کردیم، با تعجب دیدیم که نسخه جدیدی وجود دارد: XEmacs 21.5.37 "lattuce" همین ماه گذشته ظاهر شد. و حتی چنگال ها نیز چنگال دارند: در این مورد، SXEmacs، آخرین بار در سال 2020 به روز شده است.

بسیاری از تغییرات در XEmacs و SXEmacs در نهایت راه خود را به سمت بالادست GNU Emacs باز کردند، که هنوز در حال توسعه فعال است، اگرچه همانطور که ثبت در سال 2008 گزارش کرد، RMS دیگر نگهدارنده اصلی نیست. گنو Emacs 31.1 در ماه اوت ظاهر شد.

کارت‌های روی جدول استعاری: این کرکس کاربر Emacs نیست. ما تلاش کرده ایم. یکی از نویسندگان مورد علاقه میز Reg FOSS، نیل استفنسون، که در سال 1999 مقاله ای به نام در آغاز... خط فرمان بود، منتشر کرد. (این کتاب بعدا به عنوان یک کتاب نسبتا کوتاه دوباره منتشر شد، اما متن آن هنوز آنلاین است.) او در آن می گوید:

"در دنیای گنو/لینوکس دو برنامه اصلی ویرایش متن وجود دارد: vi مینیمالیستی (که در برخی از پیاده‌سازی‌ها با نام elvis شناخته می‌شود) و emacs حداکثری. من از emacs استفاده می‌کنم که ممکن است به عنوان یک واژه‌پرداز گرما هسته‌ای در نظر گرفته شود. توسط ریچارد استالمن ساخته شده است؛ به اندازه کافی گفته شد. به Lisp نوشته شده است. فایل های متنی، یعنی بدون فونت، بدون خط پررنگ، بدون خط کشی.

به عبارت دیگر، ساعت‌های مهندسی که در مورد مایکروسافت ورد، به ویژگی‌هایی مانند ادغام نامه‌ها و قابلیت جاسازی تصاویر متحرک بلند در یادداشت‌های شرکتی اختصاص داشت، در مورد emacs، با شدت دیوانه‌وار بر مشکل ساده و فریبنده ویرایش متن متمرکز بود. اگر شما یک نویسنده حرفه‌ای هستید – یعنی اگر شخص دیگری برای نگرانی در مورد نحوه قالب‌بندی و چاپ کلمات شما پول می‌گیرد – emac از همه نرم‌افزارهای ویرایشی دیگر تقریبا به همان روشی که خورشید ظهر بر ستاره‌ها می‌زند، برتری می‌دهد.

Emacs یک نرم افزار با قدمت 50 ساله است و نشان می دهد. این یک برنامه بزرگ و پیچیده است: دهه ها پیش، شوخی این بود که EMACS مخفف "هشت مگ و مبادله مداوم" است. این یک برنامه آسان برای یادگیری نیست. با وجود مستندات مجلل و آموزش داخلی، این نرم افزار به قدری قدیمی است که اصطلاحات آن پیش از ریزپردازنده ها و رایانه شخصی است.

کتابچه راهنمای جامع آن 804 صفحه دارد و برای انتخاب چند نمونه بی اهمیت، اصطلاحات آن برای بخش‌هایی از صفحه نمایش از «قاب» به معنای چیزی که اکنون پنجره نامیده می‌شود و «پنجره» به معنای چیزی است که اکنون پنجره نامیده می‌شود، استفاده می‌کند. در بخش کلیدها، کلیدهای کنترل و متا را مورد بحث قرار می دهد. این یک مشکل کوچک است: شما یک کلید متا ندارید و نویسندگان Emacs هم ندارند. این یک کلید در کیبورد تقریبا افسانه‌ای کمیاب Space Cadet بود که ویکی صفحه‌کلید Deskhority می‌گوید:

"به جام مقدس کیبوردها معروف است."

می توانید یک ماکت مدرن، کیبورد Keymacs بخرید. آنها در جمهوری چک دست ساز هستند و بسته به اینکه دقیقا چه مدل و مشخصاتی را می خواهید، از 2998 یورو برای Lispsaver تا 6878 یورو برای A624N Space Cadet هزینه دارند.

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

یکی از مشکلات این اصطلاحات تاریخی که برای هرکسی که در دهه 1970 برنامه نویسی نکرده بود ناآشنا است، این است که معانی جابجا می شوند. در زمینه Emacs، "Meta" به معنای Alt یا Opt on Mac است. با این حال، KDE از کلید متا نیز استفاده می‌کند – اما آنچه در اسناد KDE «متا» نامیده می‌شود، کلید ویندوز یا فرمان در مک است. مانند اکثر افراد لینوکس، اسناد GNOME آن را Super key می نامند.

اسامی مهم هستند. آنها مهم هستند. حق با کیست، دوستان Emacs یا KDE؟ خوب، هیچکدام: هیچ کس دیگر کلیدهای متا ندارد. ما Ctrl، Alt و Cmd/Super/Windows داریم.

تلاش‌های شجاعانه‌ای برای مدرن‌سازی Emacs و تطبیق آن با رابط کاربری و اصطلاحات مدرن صورت گرفته است. این کرکس سعی کرد Aquamacs را بیاموزد، که Emacs را با رابط کاربری بومی macOS مدرن کرد، اما متأسفانه دیگر نگهداری نمی‌شود.

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

پیکربندی Emacs آنقدر پیچیده است که چندین توزیع از پیش پیکربندی شده Emacs وجود دارد، مانند Doom Emacs یا Emacs Solo مینیمالیستی. ما آرزو می کنیم که شخصی پیکربندی "CUA-Macs" را با ErgoEmacs یکپارچه کرده و بتواند پیکربندی صفحه کلید موجود شما را انتخاب کند.

بیایید به آن، پروژه Gershwin Desktop که سال گذشته به همراه GhostBSD ذکر کردیم در حال توسعه فعال است و بر اساس GNUstep است. شاید توسعه دهندگان آن بتوانند Aquamacs را انتخاب کنند و آن را با GNUstep تطبیق دهند.

تاریخچه طولانی از چنین لیفت های صورت Emacs وجود دارد. یکی از نمونه‌های آن واژه‌پرداز Borland’s Sprint است که یکی از نقاط قوت آن این بود که می‌توانست از رابط‌های کاربری اکثر واژه‌پردازهای پیشرو MS-DOS آن روزگار (دقیقا قبل از اینکه همه آنها در IBM CUA همگرا شوند) شبیه‌سازی کند. قبل از اینکه بورلند آن را به دست آورد، اسپرینت The Final Word نام داشت که توسط سازندگان تجهیزات موسیقی Mark of the Unicorn ساخته شد. فاینال ورد بر اساس یک کلون Emacs به نام MINCE ساخته شد.

رقیب بزرگ

یکی دیگر از توزیع‌های معروف Emacs Spacemacs است که Emacs را به گونه‌ای تطبیق می‌دهد که رابط کاربری بیشتر شبیه Vi داشته باشد.

همانطور که نقل قول استفنسون در بالا ذکر کرده است، Vi ویرایشگر متن اصلی یونیکس است. همانطور که این مقاله درباره Origins and the Evolution of Vi & Vim اشاره می‌کند، تاریخ آن نیز به سال 1976 بازمی‌گردد. در واقع، دلیل انتخاب سال در این داستان به همین دلیل است: Tilde، یک ویرایشگر متنی که مانند سال 1976 کار نمی‌کند. یکی از ویژگی‌های Tilde که ما از آن لذت می‌بریم این است که از استفاده از ماوس حتی در کنسول لینوکس پشتیبانی می‌کند – که عنوان ویژگی جدید گنو Emacs 31.1 است.

وی امروز بسیار زنده و سرحال است. گنو Emacs بر اساس کد منبع اصلی است، اما Vi عمدتا به عنوان پیاده سازی مجدد زنده می ماند. تفریحی که استفنسون به آن اشاره می کند، الویس، امروز به شکل nvi زندگی می کند.

با این حال، تا حد زیادی شناخته شده ترین Vim است که توسط برام مولنار تا زمان مرگش در سال 2023 نگهداری می شود. در سنت بزرگ فورکینگ FOSS، آن نیز دارای چنگال هایی است، از جمله Neovim، همانطور که در Omarchy استفاده می شود، و اخیرا، Vim Classic بدون هوش مصنوعی - یک پروژه جدید به رهبری Drew DeVault، که به تازگی AlpineBSD بدون LLM را راه اندازی کرده است. ®

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

'Mother of all editors' Emacs is 50

By a startling coincidence, so is its arch-rival Vi

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