29 comments

[ 0.22 ms ] story [ 70.9 ms ] thread
While I still use emacs, I find that that despite the "batteries included" narrative about emacs, the things which are not included are causes of major frustration.

Such essential functionality like grep-find and LSP servers which is required for out of the box auto complete are not bundled with emacs. Most modern IDEs/editors have these functionality baked in.

If you install emacs for windows you find that grep-find doesn't work, because it depends on support from environment. A full text search should be built into the editor.

Emacs in its half-a-century existence afaik never had "batteries included" narrative. Whatever comes bundled in Emacs, either practical or not so much (e.g. tetris) - are recipes and guides for extending it.
Umm. Is this some sort of troll article? It sucks you in with nerd nostalgia and slowly becomes more and more esoteric and insane.

Here’s the final two lines:

> We should know better than to prematurely optimize for order when all of all time arrowpoints in and down to the absolute return 0. Words of wisdom, let it be: your world is a fine stream of consciousness, lacking only a decent editor.

If that feels like your jam, go for it, but personally I feel in need of an exorcist after letting my computer load this…

Under Unix the norm is to return 0 if everything it's OK.
To me the charming thing about Emacs is how introspective a program it is. This goes beyond all the documentation being built-in, and being able to redefine things on the fly. For instance, it's easy to define a keybinding that does "Take me to the source code of the command that's bound to the next keybinding I type". When you use that and land at a destination, it will probably be Elisp code, but in some cases will even be C code - it works either way.
I have never once thought Visual Studio needs some way to edit its own source code on the fly... whats the actual use case?
> I have never once thought Visual Studio needs some way to edit its own source code on the fly... whats [sic] the actual use case?

Writing Visual Studio, for example. Debugging Visual Studio. Extending Visual Studio in more than the ways it has already provided.

It means not being constrained to do only those things someone else had seen fit to permit you to do. It means freedom.

> Extending Visual Studio in more than the ways it has already provided....It means freedom.

if youre able to edit the source code of a program, youre probably a programmer. you already had the freedom. and that can be done with git and the offline source code. its not freedom its convenience if anything

This essay is amazing and delightful, but it is rather densely allusive, like classical Chinese literature; ultimately it is more allusion than plain language. I suspect that most people will find it somewhat impenetrable. But if you want to see Emacs explained by references to Dune, Harry Potter, Gormenghast, Star Wars, A Rape in Cyberspace, Neuromancer, The Matrix, Crowleyian magick, and so on, this essay is for you.

Ultimately such storytelling seems to be the best means that we as humans have to convey our subjective experiences, which purely objective descriptions are not very good at. (This is one of the weak points of the engineering mindset that I was criticizing in https://news.ycombinator.com/item?id=45650941.) So I sympathize with the project. But I wonder if it may end up preaching to the choir a bit: if you remember the intoxication of reading Barlow's Declaration of Independence, probably you already have a settled relationship with Emacs, whether intimate or traumatic, or both?

I didn't want the post to end I didn't want to return to an existence where people don't share these transgressive impulses with me.

This is a robust and comprehensive antidote to nihilism and anyone who has ever missed the internet of the nineties or early 00s as I have would be doing themselves an enormous favour by reading it, and then rereading it as I intend to.

It lost me for a moment at Implicity and I was worried the spell had be broken but the profound blows didn't stop.

That he burned 11,000 words on his text editor tells you why emacs users are unemployable.
Now you mention it, come to think of it, I'm actually unemployed at the moment. We can't both be wrong!
I worked at 3 universities and one multi-national company over 30 years. I used Emacs at all of them. I'm retired now, and still use Emacs daily.
[dead]
Man, I totally get this. I've been an Emacs user for 30 years and counting; back in the mid-90s when I started on Linux, I learned that the truly wizardly hackers usually used one of vim or Emacs and because I disliked modal editing, I chose Emacs—only to find myself tumbling down a deep, deep rabbithole that opened into an unfathomable warren network it would take me decades to begin to make any sense of.

When I open Emacs, it's like I'm five years old again, seated at my VIC-20, confronted with the infinite possibilities of the machine, challenged to explore them. Except the possibilities are so much greater because computers can do so much more and Emacs—as the programmable way to program—puts them virtually all at my fingertips. It's all a bit overwhelming, and this essay does a good job of capturing that overwhelm and the shift in perspective needed to cope.

That said, it's likely to send most people screaming back whence they came, clinging ever more firmly to their Visual Studio Codes and IntelliJs, if they be programmers at all and if not, it may turn them off programming altogether. Because that perspective shift looks like utter madness from the outside. I don't think we as a species are ready for computers yet. The possibilities, the implications.

  They say there’s no Emacs — only your Emacs.
This hit home for me. I spent about 6 months working exclusively with emacs to get past the "this is weird/hard because it is unfamiliar to me" stage. At the end of the experiment, I went back to using vim and IDEs.

My take personal takeaways from the experience:

1) capslock/ctrl switching is helpful in so many other areas - so I kept that

2) emacs is something you want to "live in" (e.g. learning to rely on eshell) if you want to really become proficient with it

3) emacs is something you have to be willing to tweak/adjust via elisp to suite your personal preferences if you want to really really really be proficient with it

I didn't hate emacs but it also wasn't for me.

2) I have eshell bound to a keybind, but I've never use it. I prefer shell-mode and shell-command. They make it easy to use cli utilities. TUI is something that I find myself no longer needing. And I've become so accustomed with the cli that the only two I'm using in a terminal is `less` and `top`.

3) I think the best way is to find some vanilla base config that will smooth out the rough parts, then, once you understand the internal concepts, tweak them to your liking. It's certainly a long term plan, but the pro is not having to wait on "features" from another company or group.

> I have eshell bound to a keybind, but I've never use it

For years, I had a similar feeling about it. And then I learned that in eshell you can pipe in and out of buffers. So you can for example grep the content of one buffer and pipe results into another. Or pipe the output of a command to a buffer, and you even can chain them pipes. That often comes extremely handy.

(comment deleted)
I've been using emacs for over 20 years and had no idea about `M-x tetris`. Worth reading just for that!
M-x dunnet too.

And,if you are into text adventures, there's M-x dunnet and, also, malyon under MELPA, and you can play some good ones such as the ones from Infocom, or the modern ones made from the community such as Tristam Island, Anchorhead, Spider and Web, Spiritwrak... the IF archive has them all (on Tristam Island, I can send you a better ZMachine V5 version, instead of a shortened V3 one made for the 3rd version of the Z-Machine, the one for small microcomputers such as the C64, MSX, the 8086, the Kaypro with CP/M 2.2...)

And, if you are curious, you can install the inform6 compiler and inform6lib (the English grammar library) and, under Emacs, inform-mode and create your own text adventure in a very easy OOP like language (inform6), much more than Python.

Inform Beginners' Guide: https://inform-fiction.org/manual/IBG.pdf DM4, the low level stuff, raw inform6 without the English library. Advanced stuff: http://inform-fiction.org/manual/download_dm4.html

Creating a text adventure might look silly in these times, but if you pay attention to the article, it's these kind of environments what changed the world back in the day, from MUDs/MOOs to roguelikes (in the case or Rogue, literally). Curses was a library to play Rogue and update the terminal lest often (just send what changed in the screen to the terminal) so the connection wasn't cluttered back in the day with frequent menu displaying where the changes were minimal.

With Inform6 you don't need to be a music composer, a drawing artist or some 3D modeller with tons of linear algebra background. Just write.

And, yes, it can be loads of fun with very little. Look how easy can be the old 'advent' game under Inform6:

https://www.ifarchive.org/if-archive/programming/inform6/exa...

The game itself in order to be played with M-x malyon:

https://www.ifarchive.org/if-archive/games/zcode/Advent.z5

Now compare it to the C ports under BSD's or GNU/Linux.

I struggled with a complex manuscript for years and tried all sorts of tools from Word to Scrivener in the process with no luck.

Emacs w/org mode was the only program that helped me make sense of the mess and finish the darn thing. I have never seen a program so elegant and yet so powerful, and I am forever grateful it exists if only as a counterweight to the modern tech paradigm.

https://news.ycombinator.com/item?id=36621699

The original terminal emulator terminal.el in gnu emacs, written by mly (Richard Mlynarik), was particularly salty. I finally tracked down a copy, but it looks like somebody complained and in 1990 it was begrudgingly cleaned up a bit, so some of the worst stuff was moved out into a separate file called term-nasty.el for posterity (you, here, now), so as not to give "in to the pressure to censor obscenity that currently threatens freedom of speech and of the press in the US" (oh, Richard <3 ):

[original broken link] https://opensource.apple.com/source/emacs/emacs-59.0.80/emac...

[term-nasty.el source] https://jason.zzq.org/git/emacs/plain/lisp/term-nasty.el?h=s...

1990-08-26 Richard Stallman (rms@mole.ai.mit.edu)

* terminal.el: Move possibly offensive comments to term-nasty.el.

https://www.digiater.nl/openvms/freeware/v10/emacs/common/li...

[...]

    ;; disgusting unix-required shit
    ;;  Are we living twenty years in the past yet?

    (defun te-losing-unix ()
      nil)
[...]

    ;; (A version of the following comment which might be distractingly offensive
    ;; to some readers has been moved to term-nasty.el.)
    ;; unix lacks ITS-style tty control...
    (defun te-process-output (preemptable)
      ;;>> There seems no good reason to ever disallow preemption
      (setq preemptable t)
[...]

              ;; I suppose if I split the guts of this out into a separate
              ;;  function we could trivially emulate different terminals
              ;; Who cares in any case?  (Apart from stupid losers using rlogin)
[...]

                                     (?\C-b . te-backward-char)
                                     ;; should be C-d, but un*x
                                     ;;  pty's won't send \004 through!
                                     ;; Can you believe this?
[...]

                                     ;; Did I ask to be sent these characters?
                                     ;; I don't remember doing so, either.
                                     ;; (Perhaps some operating system or
                                     ;; other is completely incompetent...)
[...]

                         ;;-- Not-widely-known (ie nonstandard) flags, which mean
                         ;; o writing in the last column of the last line
                         ;;   doesn't cause idiotic scrolling, and
                         ;; o don't use idiotische c-s/c-q sogenannte
                         ;;   ``flow control'' auf keinen Fall.
                         "LP:NF:"
                         ;;-- For stupid or obsolete programs
                         "ic=^p_!:dc=^pd!:al=^p^o!:dl=^p^k!:ho=^p=  :"
                         ;;-- For disgusting programs.
                         ;; (VI? What losers need these, I wonder?)
                         "im=:ei=:dm=:ed=:mi:do=^p^j:nl=^p^j:bs:")))
[...]

              (setq te-process
                    (start-process "terminal-emulator" (current-buffer)
                                   "/bin/sh" "-c"
                                  ...
Maybe if it weren't for the above ranting, POSIX wouldn't have gotten its shit together to clean up the terminal situation and come up with the <termios.h> stuff.

Today I have a way of using <termios.h> stuff to even control the Windows cmd.exe console.

It's the most portable thing there is for getting clean character-at-a-time input, with Ctrl-D and everything.

I had to use Emacs eww to read the article :)
I'm using Emacs to read these comments. Because... why not?
true, why not. I was making a funny comment to let people know eww works.
Haha. What's really cool about eww, that you can just open any page, and then change the major-mode of it - I read org-mode, markdown readme's like that, or explore CI logs, etc.