{"id":7767,"date":"2019-01-18T15:59:36","date_gmt":"2019-01-18T20:59:36","guid":{"rendered":"https:\/\/irreal.org\/blog\/?p=7767"},"modified":"2019-01-19T15:14:29","modified_gmt":"2019-01-19T20:14:29","slug":"multics-emacs","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=7767","title":{"rendered":"Multics Emacs"},"content":{"rendered":"<p>Back in 1979, Bernard Greenberg wrote a long document about <a href=\"https:\/\/www.multicians.org\/mepap.html\">Emacs on Multics<\/a>. If you\u2019re interested in the history of Emacs and how it evolved, you\u2019ll probably enjoy reading through the document. It\u2019s fairly long and detailed but all that detail is revealing.<\/p>\n<p>It\u2019s hard today to appreciate how difficult it was to implement Emacs\u2014or any video editor\u2014on a large mainframe like the H6000 system that Multics ran on. The problem was that the hardware didn\u2019t really support per-character input and processing\u2014let alone echoing the characters to the display\u2014so special effort, including patching the OS, was necessary to make it work.<\/p>\n<p>Multics was written in Multics PL\/I, which despite being a complete, well designed language was not suited to incremental development. It was, therefore, a poor choice to implement Emacs with its extensibility. Instead, the controversial decision to use Lisp was made\u2014remember that the original ITS Emacs was built as a set of macros on top of the TECO editor. That fateful decision with its profound effect on Emacs extensibility is still with us today. It\u2019s success should give pause to those suggesting alternative languages such as Python, JavaScript, Ruby, or whatever as the Emacs\u2019 implementation\/extension language.<\/p>\n<p>By reading Greenberg\u2019s account, you see why Emacs is the way it is today. Although the text representation was different from today\u2019s <a href=\"https:\/\/en.wikipedia.org\/wiki\/Gap_buffer\">gap buffer<\/a>, many of the original implementation details can still be seen in the current versions of GNU Emacs.<\/p>\n<p>As I said, it\u2019s a long document but worth reading if you\u2019re interested in Emacs\u2019 history and beginnings.<\/p>\n<p><b>UPDATE<\/b> <span class=\"timestamp-wrapper\"><span class=\"timestamp\">[2019-01-19 Sat 15:10]<\/span><\/span>: Goldberg \u2013&gt; Greenberg<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in 1979, Bernard Greenberg wrote a long document about Emacs on Multics. If you\u2019re interested in the history of Emacs and how it evolved, you\u2019ll probably enjoy reading through the document. It\u2019s fairly long and detailed but all that &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=7767\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[18],"class_list":["post-7767","post","type-post","status-publish","format-standard","hentry","category-general","tag-emacs"],"_links":{"self":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7767"}],"version-history":[{"count":3,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7767\/revisions"}],"predecessor-version":[{"id":7771,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7767\/revisions\/7771"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}