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