[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)