[HN Gopher] Emacs Love Tale by sdp ___________________________________________________________________ Emacs Love Tale by sdp Author : SuperNinKenDo Score : 183 points Date : 2021-06-15 14:33 UTC (8 hours ago) (HTM) web link (emacs.love) (TXT) w3m dump (emacs.love) | Barrin92 wrote: | I started to program when I entered university about 10 years | ago, so I guess I'm a little bit younger than the average Emacs | enthusiast at this point given that in particular here people's | stories often go way further back, but I'm extremely grateful | that our professor introduced us to Emacs. | | I think I could have easily missed out on truly getting to learn | a programmable and customizeable environment because IDEs and | finished products in teaching were already pretty dominant at | this point and it wasn't as much about tinkering any more and | more utilitarian. | | But Emacs really made me curious about reading documentation, | tinkering with minor modes, doing simple things like writing my | own status bar, and I think the great thing about it is that | everything is in one place and interacts organically. The ability | to introspect everything, change things on the fly, led me down a | huge rabbit hole of reading about Smalltalk, papers from | Licklider in the 60s about human-computer interaction, at some | point later back to Pharo and a whole bunch of stuff I don't | think I would have ever heard about in my CS education to be | honest. | | And all that aside it's still an incredibly useful piece of | software practically. It's my editor of choice and people keep | building new stuff for it. 'org-roam' is one of the better roam | research alternatives out there I think and it's incredible to me | how there's always someone who has ported some new thing to | emacs. | susam wrote: | For those eager to begin learning Emacs, I would like to share | that Emacs has a very friendly and fun community at #emacs on | irc.libera.chat as well as on r/emacs on Reddit. | | If you have never been on IRC before, you can quickly try it out | via Libera Chat's web interface at | https://web.libera.chat/#emacs. If you are worried about missing | conversations when you log out but do not want to set up an IRC | bouncer (the typical solution), there is a Matrix bridge to the | IRC channel at https://app.element.io/#/room/#emacs:libera.chat | that you can use to stay connected even after you turn off your | computer. | bsedlm wrote: | > I set up a parallel group of keystrokes using super where the | Mac had used command. This meant that her existing muscle memory | (and mine!) | | this is fundamental to me, it's things like this that make me use | linux and prefer KDE, but the way he talks about this (along | other comments in this discussion and generalized software | trends) has got me worried that this level of customization (and | its associated mindset) are an 'endangered species' even among | software engineers. | kwhitefoot wrote: | That's one of the best love stories I have ever read! | systemBuilder wrote: | I'm an old-timer, having used emacs for 41 (!) years. I started | in a LISP class at MIT, but I was always a UNIX-lover so ended up | using Gosling's UNIX emacs throughout the 1980's, and when that | ended I borrowed gosmacs.el and wrote a short .emacs to kept | Gosling's emacs alive as Richard Stallman descended further and | further into madness, breaking CTRL-h and trying to create | thousands of functions keys ... | | I have never done "chording". What is that? | | I don't need an editor with more than about 100 function keys | (CRTL-[a-z], CTRL-[A-Z], ESC-[a-z], ESC-[A-Z]). | | I absolutely hate 'info' and in the age of manpages and webpages | it is an embarrassment to emacs. | | I absolutely love ESC-j (fill-region) for squeezing text into 77 | columns, and ESC-x indent-region for unifying my coding style. | Modern shells understand at least 20 emacs key-bindings (CTRL-e, | CTRL-a, CTRL-k, CTRL-b, CTRL-f, CTRL-d, etc.) and so does the | Chrome browser, apparently. | | Mostly these days I am turning off modes written by pedants who | want to 'force' me to do things I don't want to do. ESC-x text- | mode works just fine for that. | markus_zhang wrote: | I feel sad after reading the whole story :( | cyrialize wrote: | I've thought about writing a blog post trying to capture the | magic of Emacs. | | By "magic" I really just mean having a super low barrier to | having your code running and working in Emacs. You just open your | config files, put in a line of code, and then you're done. | | Of course there are other barriers - Emacs has a huge learning | curve and Elisp is harder to learn if you aren't familiar with | Lisp like languages. | | Still, there are no other programs out there like Emacs. You | always have to either create your own extension, modify the | source code, etc. | | Realizing that you could kinda just make whatever you'd like in | Emacs is an amazing feeling. I don't even use Emacs as my primary | editor at work and I still think about cool things I could hack | in my config files. | nverno wrote: | > there are no other programs out there like Emacs | | Emacs is the most organic feeling software I've used- it really | feels like it has evolved like something in the natural world, | with all sorts of warts and wrinkles. Kinda like a piece of DNA | with large portions seemingly unused and occasionally dropped | or upgraded, but at the end of the day it's all about | functionality and adaptability. May it live forever | yissp wrote: | This is a huge part of the appeal of emacs to me as well. Other | editors / IDEs might offer a comparable level of extensibility | but it feel like there's so much more friction involved in | taking advantage of it. With emacs you don't even need to | restart the application. | sillysaurusx wrote: | Believe it or not, a lot of it is due to a shared global | namespace with global variables as the norm. | | It's hard to capture the qualities you mention without that. | (Raise your hand if you can think of a system that did; I'd | love to know.) | | There's more to it than that, of course - the design is | excellent - but convention matters, and elisp has a convention | not seen in most other large-scale programming systems. | emacsuser31 wrote: | Definitely this. It just feels so natural to have all those | functions in the same scope without dealing with modules, | hierarchies or something involving both. | | I also believe that none of the languages with module | hierarchies are suitable for some kind of REPL driven | development. You can't just dump all of your program into the | REPL and expect it to work. You need globally unique names | for these. And I believe this is a must for a language that | is running inside an editor. | Jtsummers wrote: | Common Lisp has packages and is certainly as suited for | REPL-driven work as Emacs Lisp. | | I'm not convinced that a lack of at least a flat set of | namespaces (like CL) wouldn't be an improvement on Emacs' | "prefix everything" approach. Perhaps more important to | Emacs Lisp is that everything is open. If you took just | something like CL's packages but had every symbol exported | by default you'd get something that's not a far cry from | Emacs' present approach but with better code organization | capabilities. | munificent wrote: | The subtext of "the rest of her life" was a gut punch. Beautiful | story. | jmercouris wrote: | Amazing story. The things we will do for our partners is | incredible. | snicker7 wrote: | > She never lost interest in it, using it for the rest of her | life. | | Oh no! Did she pass away? | olivierestsage wrote: | I appreciate how "fun-oriented" the Emacs community is. Whenever | text editors come up, people usually spar over which is the best | for various productivity concerns, etc. While I do think there is | a strong argument to be made for Emacs as a purely productivity- | oriented choice for certain kinds of users today, the community | is overall geared more toward hacking it as an end in itself: | customizing every little detail, doing willfully goofy things | like play mp3s or run tabletop RPGs, etc. These aren't the sort | of features that will dethrone vscode in terms of general usage, | but I feel that it is valuable as a preserved island of fun and | "hacking for the sake of it" in a world of software that | increasingly seems to have left those values behind. And as this | story shows, sometimes the hackability leads to really positive | things. | tazjin wrote: | > as a preserved island of fun and "hacking for the sake of it" | | Somehow this sentiment is anything but fun to me. Emacs is the | last bastion of a different path down the tree of personal | computing than the one our species took, one in which | individual users are empowered and not - as is now the case - | held hostage by us[0] in our ivory towers of impenetrable | layers of cryptic technology. | | Emacs was made for _humans_ to use as a real _tool_. Barely | anything else in the tech world really qualifies to the same | degree. I 'd love to peek into the parallel universe where we | stuck to introspectable, malleable software and ended up with | something closer to the Houyhnhnm computing stack[1]. Alas, for | now that ship has sailed. | | See also: That old story about Emacs at Amazon, etc. | | [0]: "tech people" | | [1]: https://ngnghm.github.io/ | zozbot234 wrote: | > Emacs was made for humans to use as a real tool. | | If Emacs was made for humans, why do so many humans get | painful RSI trauma ("Emacs pinky") when they try to use it? | How many humans can code in something as clunky as EmacsLISP? | snicker7 wrote: | Reliance of keyboard chording is seriously un-ergonomic. | But Emacs provides a number of escape hatches (evil, | kakoune.el, god-mode), much more than almost any other | computer program. | 70rd wrote: | Emacs pinky is a function of keybindings, which are yours | to rebind. Evil and modal editing are quite popular across | the Styx. | | Elisp is just a product of its time (and Stallman's | dogmatism). The lack of namespacing, lexical scoping (until | recently) and first class concurrency really show its age. | Nothing like the UI locking up because some function is | blocking in the background. | cle wrote: | I've done quite a bit of Elisp hacking and concurrency is | really the only annoying part for me. I haven't run into | any issues with namespacing and dynamic scoping. | | I usually toss a few modern libs in there like dash, s, | f, and cl, and it feels like any other modern lisp at | that point. | blacktriangle wrote: | Dynamic scoping is only a problem because nearly | everything is lexically scoped these days so it comes as | a surprise. In an environment designed to give users the | power to customize everything regardless of if the | original plugin designer thought they should be able to | or not, dynamic scoping is incredibly powerful. | cle wrote: | Agree, an Emacs-like environment might be the only place | where dynamic scoping makes ergonomic sense. Sometimes I | get actively annoyed when something in Emacs isn't | dynamically scoped because it impedes my ability to get | stuff done. | 13415 wrote: | I have Ctrl on capslock and so it's no problem. | | To be honest, existing keyboard layouts are so bad that you | have to remap a few keys anyway, whether you're an Emacs | user or not. Tab and Capslock are gigantic for no reason, | backspace is often too far away, Escape is also hard to | reach and underused in many applications (or, worse, | behaves in unpredictable ways), Enter keys are too small, | and so on. As another example, my small 61 key keyboard has | an extra large "\" key. Why? No idea. | eklitzke wrote: | I've been using Emacs for over 15 years and I've never used | the default keybindings. I first started using viper mode | (vi keybindings) which was and is still is bundled with | Emacs (although I now use evil). And elisp is far from | perfect, but I don't think it's much worse than Javascript, | Python, Ruby, etc. | Naga wrote: | No one is saying emacs is perfect, this is such an odd | comment. Just because it is made as a real tool, as opposed | to a product or something to sell more of, doesn't make it | perfect. Table saws are meant to use in productive | behaviour too and the fact that people cut their fingers | off doesn't make them less of a real tool. | pmoriarty wrote: | _" How many humans can code in something as clunky as | EmacsLISP?"_ | | Apart from some legacy warts, I find eLisp about a million | times more elegant than mainstream languages. | | Scheme would be even better, and hopefully one day emacs | can transition to that. | tephra wrote: | I've never actually heard of anyone getting "emacs pinky" | since one of the first convenience things you'll do is to | make sure Ctrl is somewhere comfortable. | tazjin wrote: | > why do so many humans get painful RSI trauma when they | try to use it? | | Maybe they should use a different way of mapping keys if | the default causes them trouble? Plenty of people do. Emacs | has a very popular implementation of vi for example. It's | up to the user, you don't need to accept somebody else's | choice in this kind of software. | | > How many humans can code in something as clunky as | EmacsLISP? | | People also code in JavaScript and somehow find that | acceptable. Anything can be made to work. For what it's | worth, elisp has pretty neat libraries and tooling these | days (and due to things like magit breaking out UI | components into reusable libraries writing interactive | Emacs applications is becoming ever easier). | neolog wrote: | Emacs shouldn't have a default configuration that | physically injures users who don't change it. | lern_too_spel wrote: | It is perfect on Sun keyboards up to Type 4 and IBM | keyboards up to Model F. Starting with Type 5, Sun | adopted the giant caps lock key next to the pinky layout | that IBM Model M keyboards used, but many Emacs users | remap control back to where it should be anyway. | tazjin wrote: | I have used mostly default keybindings in Emacs for over | a decade and what hurts my wrists the most is web | applications that force me to use the mouse. | kreetx wrote: | Did you ever remap any keys? Can't imagine what it would | be like without setting `caps lock` as `control`. | neolog wrote: | I think Emacs did permanent damage to my hands before I | got a special keyboard. "Works for me, wontfix" isn't a | good position to take on that kind of issue. | asimjalis wrote: | The parent should not be downvoted. There is some real | feedback here that could lead to a much better product. | | I used emacs for 13 years. Then one day I switched to vim | and never looked back. My RSI went away. | | 1/ Regarding the comments about remapping keys as the first | thing people do: there are several issues with this. What | if I am using a new machine? For example, every time I log | into a new EC2 instance or a Cloud 9 environment I would | need to do this remapping. | | 2/ I agree elisp hacking is fun. I prefer that over | vimscript--but, evil mode just doesn't really work in so | many msall ways. For example, putting line numbers in the | first column is non-trivial. | | 3/ Chording is unpleasant and I suspect a recipe for RSI if | used in a full-time job situation. | grogenaut wrote: | The first one has a really simple solution just ask an | initial startup which keyboard layout do you want like | most modern Ides | oblio wrote: | > 1/ Regarding the comments about remapping keys as the | first thing people do: there are several issues with | this. What if I am using a new machine? For example, | every time I log into a new EC2 instance or a Cloud 9 | environment I would need to do this remapping. | | Yeah, but, you know, using Emacs on a terminal that | hasn't been produced since 1980 was ergonomic and it's a | cardinal sin to change defaults, no matter how many | generations of users pass. | | This is especially ironic since supposedly all Emacs | power users customize their setups, so they shouldn't | have to worry about defaults changing, since they don't | use them anyway, right? :-p | mplanchard wrote: | I would hope the reason the GP is downvoted isn't because | of disagreement, but because the comment is a cheap | potshot. Your comment says a similar thing but is much | more substantial and useful to spur further discussion. | | As an evil mode user, I agree there are occasions where | it isn't present or doesn't work, but I've generally | added mappings for those cases or just memorized the | emacs-style chords. What do you mean by putting line | numbers in the first column btw? Like inserting the | current line number at the start of each line? | olivierestsage wrote: | For what it's worth, it was designed for a keyboard that | had ctrl positioned conveniently under the left palm. As | others have pointed out, users today just rebind the key | and they're good to go. | pmoriarty wrote: | For decades, I've just been hitting the control key with | the part of my palm directly under my left little finger. | | No rebinding required, it works great and I don't even | think about it.. no issues with RSI either. | | On the other hand, I've never liked chording, so I use | evil on emacs to make it more vim-like and avoid having | to chord much. | cgdub wrote: | Make your alt keys do control, your win keys do alt, and | your control keys do win. | | No more Emacs pinky. | PaulDavisThe1st wrote: | The "emacs amazon" link makes at least one false claim: | | > The original brilliant guys and gals here only allowed two | languages in Amazon's hallowed source repository: C and Lisp. | | There actual originals (i.e. when it was two people) only | allowed C++. There was no Lisp, and no C, although the C++ | was a fairly limited subset that was perhaps midway between C | and "full C++94". | | Then it compounds this error, makes another: | | > they didn't allow C++ here, and they didn't allow Perl. (Or | Java, for that matter). They knew better. | | Numerous early Amazon utilities were written in Perl. I know | because I wrote them. | | Yegge is entitled to his various views on different | languages. But revisionist history about the early | development at Amazon is not OK, even when in defense of | Emacs, a noble cause if ever there was one. | rejectedandsad wrote: | The site still uses Mason heavily in parts.... | poidos wrote: | Got a link to the Emacs Amazon stuff? | tazjin wrote: | It's part of a larger post by Steve Yegge[0], of which you | can find a copy here: | https://sites.google.com/site/steveyegge2/tour-de-babel | | Look for the heading labeled "Lisp" or just search for | "Emacs" and you'll find the relevant bits :) | | [0]: https://en.wikipedia.org/wiki/Steve_Yegge | 70rd wrote: | https://archive.is/isH3s | | I believe this is the reference. | pmoriarty wrote: | _" the community is overall geared more toward hacking it as an | end in itself: customizing every little detail, doing willfully | goofy things like play mp3s or run tabletop RPGs, etc."_ | | In my experience the "goofy things" you list are a minority use | of emacs. | | Most people are mostly in to things like org-mode or coding | with emacs as their primary use. Of course emacs customization | is very popular too, as if you don't want to customize your | editor you might as well use something else. | olivierestsage wrote: | Yes, I think I could have phrased my comment better in terms | of fun and "goofiness." Emacs definitely has a lot to offer | for straightforward productivity; I'm an org-mode fanatic. | But I think there's a certain lighthearted "spirit" to the | community that gets lost in some discussions. | maxpro wrote: | At the beginning I actually thought it was about emacs | mkl95 wrote: | I haven't used Emacs as my main text editor for a while now, but | Emacs macros are still one of the aces up my sleeve. They save me | a lot of time every now and then. | bsedlm wrote: | this is the open way, the commercial private way with a | marketplace of taxable transactions requires hiring a company or | (coming soon---because hacks---licensed contractor) software | engineer whom with the proper authorization and certifications | will charge hundreds of (taxable) dollars to give you such | customized functionality. | ylee wrote: | I've been using Emacs for more than a quarter century. | | My email client is VM, written in Emacs Lisp. I've used it to | read mail for almost as long as I've used Emacs. Although I run | Emacs in text-only mode, VM (and ancillary tools, like | Personality Crisis and mairix) | | * does a great of job displaying HTML messages. For the very few | that it doesn't, one keystroke sends the message to my web | browser. | | * sends URLs I select (all from the keyboard) to the web browser | | * opens images and attachments | | * auto-adjusts the From: line of outgoing messages depending on | the recipient | | * archives messages to various folders using various criteria | | * search my archived mail going back a quarter century at | lightning speed | | Of course, I can write Emacs Lisp code of my own to extend any or | all of the above. | aardvark179 wrote: | I have also been using emacs for over 25 years. That is a | sobering thought. | | Admittedly the way I use it has changed, because things like | LSP are a game changer for me, but it's still been over 25 | years. | kreetx wrote: | What packages do you use for email? | ylee wrote: | >What packages do you use for email? | | As I said, VM (<https://www.nongnu.org/viewmail/>); 8.2.0b is | recommended. Personality Crisis comes with it. Mairix | (<https://github.com/vandry/mairix>) is separate and does not | require VM. | ylee wrote: | Most people who use a separate Emacs-based email client seem | to use mu4e, Wanderlust, notmuch, or even gnus. It's entirely | possible any or all are superior to VM; I use the latter | because I'm comfortable with it and it does everything I | need. ___________________________________________________________________ (page generated 2021-06-15 23:00 UTC)