[HN Gopher] A rabbit hole full of Lisp ___________________________________________________________________ A rabbit hole full of Lisp Author : mpereira Score : 107 points Date : 2021-01-13 10:43 UTC (12 hours ago) (HTM) web link (www.murilopereira.com) (TXT) w3m dump (www.murilopereira.com) | jimmyvalmer wrote: | tldr -- Author is inexplicably surprised how slow retrieving a | directory listing of 70,000 files is over ssh. He installs a fast | version of UNIX `find` on remote machine, and writes an elisp | wrapper around an rpc to it. | | "Rabbit holes" suggest a circuitous journey towards a deceptively | simple goal fraught with red herrings and wrong turns. Author | appears to be under illusion that reading a play-by-play of that | laborious process is somehow entertaining or rewarding. | edeion wrote: | This article can be seen as an introduction to emacs hacking. It | features profiling, hooks, advice, and more emacs developer | tricks. I haven't read it fully yet but this looks like a nice | way to get to know emacs deeper. | travv0 wrote: | I use Emacs pretty casually, so it's cool to see the thought | process of someone that actually knows their way around it when | customizing it. | macintux wrote: | Extensive discussion about the longer piece of which this is a | subset: https://news.ycombinator.com/item?id=25622756 | DDSDev wrote: | Learning the concepts and ideas behind lisp really expanded my | horizons as a programmer. For me, that all started with emacs. | Though elisp isn't very fast and has some pain points, emacs as a | whole gave me an extremely established customizable code base | that I could play around and learn in. | | Though it's cliche and often listed as a negative, emacs really | gives the user more than just a program to edit text. | patrec wrote: | > Though it's cliche and often listed as a negative, emacs | really gives the user more than just a program to edit text. | | I would not recommend emacs as an editor these days to most | developers, but it absolutely still remains one of the most | visionary and well thought out pieces of software ever written. | It is both hilarious and depressing how emacs has been | literally decades in the future over all of its 45 years of | existence, without even the most obvious clearly superior | aspects diffusing into the sea of idiocy surrounding it at a | rate faster than one or two decades per feature. | | Not everything about emacs is great, or even were great, | without downside (for example the extreme malleability and | customizable bring a raft of problems as well). But a couple of | things really were and in some cases still are just _obviously_ | , massively, better without the rest of the world being in any | seeming hurry to adopt them. | | Incremental search is the prime example. It has finally become | ubiquitous, and yet Emacs was basically the only thing that had | it for well over a quarter century. As Raskin quipped in The | Humane Interface (2000), search is either incremental or | excremental (unfortunately he seemingly also tried to steal the | credit -- he had an interesting mode-less variant of | incremental search in Copy Cat which deserves notice, but it | still postdated emacs by quite a few years, and I've never seen | him acknowledging emacs as prior art). So I would really love | to understand why neither netscape or basically anything else | in the 90ies had incremental search, despite often being | written in large parts in emacs by people living and breathing | emacs such as JWZ. | | And to this day emacs remains one of very few programs with a | proper (i.e. non-linear) undo system or a clipboard not | suffering from severe dementia, or the ability to actually ask | "what happens when I click here?". | dmortin wrote: | I don't have anything against Lisp, I program Emacs with it, | but wouldn't you get mostly the same features if Emacs used | Javascript for its programming, for example? | timonoko wrote: | There are plenty of Emacses programmed in C-like languages. | Oldest I can remember was Epsilon. "Epsilon was first | released in 1984, long before Emacs was available on personal | computers, and modestly priced, so it provided an attractive | alternative to the usual DOS editors for those accustomed to | Emacs." | timonoko wrote: | Correccion:"Programmed" in C, but "programmable" in EEL, | simplified C-language. | Jtsummers wrote: | I've been pondering this for a while. I think you _could_ | have a JS-based editor that approaches or achieves what emacs | offers, but I haven 't encountered it. One useful thing about | emacs and elisp is that lisp is one of the primary modes of | interaction for users, whereas (IME) many JS-based editors | seem to hide JavaScript from you to some extent. | | Not in the sense that it's not there, or that there's a | second language that the JS interprets. But when you open | emacs without specifying a file to open you are dropped into | a buffer called *scratch* which lets you directly executed | elisp code. It really is a central part of the experience of | using emacs. Similarly, your configuration file(s) are | written in elisp, versus often a subset of JavaScript | (perhaps JSON) used in JavaScript-based editors. And you're | not just supplying configuration _data_ , but _extending_ the | program. | | And then there's completeness. While emacs has parts written | in C, that portion really exists to enable elisp. Essentially | every capability of the editor is directly reachable through | lisp. The same doesn't seem (or at least feel) true of | JavaScript-based editors I've tried. In those, it often feels | more like the creators have selected a portion of the | internals to expose to users, but it's more the minimal | amount needed rather than the maximal amount possible that | emacs strives for. | | EDIT: I've finally figured out how to insert an asterisk | around a word on HN without needing spaces. Is this | documented anywhere? Just use double asterisks on either end | like **foo** | | *foo* | | Turns out this is in the FAQ, it's been a while since I | looked at the formatting part of that so I guess it changed | since 10 years or so ago or I'd forgotten. | DDSDev wrote: | I think this is a good counter point, which is why I made a | version of emacs fully scriptable from javascript and | typescript [0] | | [0] https://github.com/emacs-ng/emacs-ng Disclosure I've | posted about this on HN in the past, but I felt it was very | relevant to the parent comment. | codemonkey-zeta wrote: | Macros and symbols (even though he technically has Symbols) | come to mind as indispensable aspects of elisp which cannot | be replicated in JavaScript. Ignoring the fact that Emacs | predates JavaScript significantly of course. | tarruda wrote: | Aren't macros a just form of code generation? | mpereira wrote: | Hey Thiago! | | You are mentioned in the essay that contains the article | in this HN post btw :) | | Check out the Neovim section in | https://www.murilopereira.com/how-to-open-a-file-in- | emacs/#t... | samstave wrote: | Its too bad you didnt title it: | | (((a rabbit hole of lisp))) | jinwoo68 wrote: | Rather (of (rabbit hole) lisp) ? | felixr wrote: | I think it should be (of lisp (hole rabbit)) | samstave wrote: | haha... I havent written any lis since 2000 or so.... so I | forgot any proper format... | | edit: Why TF was this flagged??? | sidpatil wrote: | https://en.wikipedia.org/wiki/Triple_parentheses ___________________________________________________________________ (page generated 2021-01-13 23:00 UTC)