{"id":8256,"date":"2019-08-20T10:33:19","date_gmt":"2019-08-20T14:33:19","guid":{"rendered":"https:\/\/irreal.org\/blog\/?p=8256"},"modified":"2019-08-20T10:33:19","modified_gmt":"2019-08-20T14:33:19","slug":"the-emacs-problem-revisited","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=8256","title":{"rendered":"The Emacs Problem Revisited"},"content":{"rendered":"<p>Saturday, I wrote about <a href=\"https:\/\/irreal.org\/blog\/?p=8249\">Slava Akhmechet\u2019s The Nature of Lisp<\/a>, which discussed why Lisp is such a powerful language. A day or two afterwards, I serendipitously came across a tweet pointing to Steve Yegge\u2019s old post, <a href=\"https:\/\/sites.google.com\/site\/steveyegge2\/the-emacs-problem\">The Emacs Problem<\/a>. That\u2019s a really great post and if you haven\u2019t read it yet, you definitely should. I\u2019ve written about it a number of times including <a href=\"http:\/\/irreal.org\/blog\/?p=384\">here<\/a> and the series of posts starting with <a href=\"http:\/\/irreal.org\/blog\/?p=391\">this one on treating data as code<\/a>. Those last posts are among my favorites in the Irreal canon. Among other things they demonstrate the power of Emacs viewed as a kind of Lisp Machine.<\/p>\n<p>Yegge\u2019s and Akhmechet\u2019s posts are complementary. They both start by considering XML as the solution for a problem and show that<\/p>\n<ol class=\"org-ol\">\n<li>Expressing the data structure as an S-expression makes it less verbose and much easier to read.<\/li>\n<li>Once expressed as an S-expression, the data can be thought of as code and made to perform useful transformations on itself.<\/li>\n<\/ol>\n<p>A lot of this boils down to Lisp being really good at text manipulation or, as Yegge puts it, the <i>only<\/i> language that\u2019s really good at it\u2014at least for non-trivial data. Yegge\u2019s post starts by considering the notion that Lisp is terrible for text manipulation, that Emacs proves that, and that Emacs should be rewritten in some other language such as Ruby. By the end of his post, that notion is a smoldering heap of ashes.<\/p>\n<p>Akhmechet, on the other hand, doesn\u2019t consider Emacs at all. He just lays out the case that Lisp, although hard to grasp at first, is a very powerful language and very often the right solution. Emacs is, I submit, proof of that assertion.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saturday, I wrote about Slava Akhmechet\u2019s The Nature of Lisp, which discussed why Lisp is such a powerful language. A day or two afterwards, I serendipitously came across a tweet pointing to Steve Yegge\u2019s old post, The Emacs Problem. That\u2019s &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=8256\">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-8256","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\/8256","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=8256"}],"version-history":[{"count":1,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8256\/revisions"}],"predecessor-version":[{"id":8257,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8256\/revisions\/8257"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}