top | item 45832769

(no title)

sim04ful | 3 months ago

The more I learn about emacs the more I feel we took the wrong fork on road in terms of the desktop metaphor decades ago.

discuss

order

fhd2|3 months ago

For me, the power of Emacs is mainly that I can do everything with the keyboard, which is not only much faster, but also - to me - much more enjoyable than going through visual menus with the mouse.

For someone not good with the keyboard, it's probably a nightmare. I suppose it's good for power users and terrible for casual users, and I don't know if there's any way to really build one user interface that works equally well for both, it's usually a compromise.

The next best thing I love about Emacs is that I can do anything conceivable with code. This one is an even larger gap between power users and casual users.

I think tools like that are just fated to only attract a select few.

Karrot_Kream|3 months ago

When I got into emacs 20+ years ago the "use only the keyboard" thing was a huge point of pride and to this day I don't understand why. Who cares? I use emacs because I can code the entire environment.

Fundamentally the mouse is just a form of modal editing. Emacs supports this in spades of course, and god-mode is my modal input minor mode of choice, but clicking to jump to a position on screen can often be a lot faster than I search or avy-jump commands, say nothing about how much gentler on the wrist it is. Then you can customize the menus and toolbar icons so you can be 1-2 clicks away from something that would otherwise require a chorded keypress or worse, an M-x command.

Then you have the biggest benefit of using the mouse: scrolling around reading code or text while having a drink or snack in the other hand. These days I use a trackball in my left hand. Regardless, the keyboard vs mouse thing always struck me as one of the many dumb flamewars that tech people engage in.

timonoko|3 months ago

You can do everything with mouse (or touchscreen). Lets start with these:

  (xterm-mouse-mode 1)
  (global-set-key (kbd "<mouse-5>") 'scroll-up-command)
  (global-set-key (kbd "<mouse-4>") 'scroll-down-command) 
  (global-set-key (kbd "<wheel-up>") 'scroll-up-command)
  (global-set-key (kbd "<wheel-down>") 'scroll-down-command)

skeezyjefferson|3 months ago

> The next best thing I love about Emacs is that I can do anything conceivable with code.

you already could though, no? emacs didnt allow you to execute lisp for the first time

piokoch|3 months ago

Believe or not, you can go 100% keyboard-only even on Windows. I had a friend, Win server admin (big Microsoft fun), who wasn't using mouse at all.

nine_k|3 months ago

Emacs is great for people who are fine tinkering with their tools, and adjusting them to their needs and tastes. Emacs improves my quality of life quite a bit.

A lot of people hate that, they want a tool that has all relevant to their tasks front and center, all irrelevant invisible or nonexistent, and zero options to tinker with. It should just work, and preferably never change.

A middle ground are the browsers that just work out of the box, but can be heavily customized by extensions. MS Office is another example.

jcynix|3 months ago

> A lot of people hate that, they want a tool that has all relevant to their tasks front and center [...]

A lot of people don't even know how to use their tools properly. I remember when I was teaching a number of Perl courses to programmers, they where joking about me using emacs while they where using vi or vim.

But while I watched them while they did their exercises, I constantly heard the "bing" sound when the cursor hit the end of the line. Why? Because they pressed the cursor key and waited for the cursor to travel to the end of the line, then chynged to insert mode to append stuff.

Even I, a humble emacs user, knew that there was a vi command to jump to the end of the line and append.

skydhash|3 months ago

> they want a tool that has all relevant to their tasks front and center, all irrelevant invisible or nonexistent

That is Emacs. You just have to drag the relevant up first and push down the irrelevant.

The thing is in Emacs, most utilities don’t want to presume how you would want some feature. Even if they do have defaults, they are suggestions at most. Instead of getting a tools that you have to learn and conform too, you get the template/idea/inital_version of a tool, and you make it your own

And there’s the whole idea of integrating stuff instead of isolated utilities.

ssivark|3 months ago

> [...] people hate that [...]

But that's just culture, and quite easily moldable. Lots of people would also rather gamble watch smut all day, but we decided that it's not the best way to go about life... so we set up a system (school) to manage their learning process, and shepherds them for well over a decade, and then involves them in the economy and in society. Likewise we have cultural mechanisms which try to ensure that people learn essential skills related to nutrition, mobility, relationships, etc.

A lot of this has been eroding in recent years under the banner of convenience, and will likely have pernicious consequences in the coming decades. I posit that letting the insidious patterns broadly drive our approach to computing is similarly dangerous.

joshuablais|3 months ago

Some people want to just "do work" and not build a toolchest over the years. I think if I find myself doing something once, I will probably be doing it again, therefore the environment can help me greatly with achieving that goal in far less time. There is a diminishing return for some tasks, but some things I have written in emacs save me minutes of time each time they are run daily.

omnicognate|3 months ago

> A lot of people hate that

It seems a curious attitude for a developer, though. My curiosity about how things work and the joy I get when I make a computer do the specific thing I want it to do for me are the reasons I program for a living.

positron26|3 months ago

Emacs took a wrong fork in its own metaphor. At length, being able to take code and libraries between production and the editor would be a game changer. While Elisp has design features that make sense, in the tradeoffs, I think it lost to every other lisp with a general purpose programming ecosystem.

I have a hope for the Common Lisp based Lem. All we need is to coordinate enough signal for potential users to feel it's the right time for their actions. Go star Lem https://github.com/lem-project/lem

I feel the same way about org mode. Nice. Can I use it on a team? Get real. I'd like more embedded data functionality in markdown. It's not XML, and that's good. Org is just weird. AFAIK it's still trying to figure out inline data embedding, so the embedding isn't even that strong. Doing something like exporting with a CSS class around a specific word probably uses some awkward literal syntax instead.

There are consequences to the monastic culture around Emacs. It's really good at holding itself in place. If you don't buy that tradeoff, you need to keep shopping.

joshuablais|3 months ago

I entirely agree - we could have had a completely unified computing environment, and we got... apps.

k_bx|3 months ago

I actually discovered that emacs is great as it is out of the box (except for creating annoying backup files with ~ at the end). I use it instead of nano and vim.

fellowniusmonk|3 months ago

Emacs is 100% nearly perfect, the only thing holding back emacs is emacs.

I still can't believe we have IRC for grandma (slack) but not emacs for grandma.

People get tied up in the program-ability of it but it's UI and the concept of jettising both the desktop and tty paradigms.

raverbashing|3 months ago

The more I learn about emacs the more I'm happy I never joined the cult

Don't waste my time with 70s "ergonomics" (if it can even be called that)

The comparisons with art seem almost to the point of offense to me. You're not building art, you're just building another yet plugin for emacs to do what other people do in maybe 5% less efficient ways but won't spend 2 days automating it

skydhash|3 months ago

Emacs don’t have plugins. Emacs only have a small C core (kernel) that handles very low level details. Everything else is lisp code split into packages (libraries and utilities). And being a lisp means you can alter and redefine any symbol you want.

The thing is that, there’s enough packages built-in and by third-party, you never really write your own. My whole config is pretty much setting options and linking packages together.

d0mine|3 months ago

> 5% less efficient

Emacs changes big O. It is not about changing constant factor. If you need N commands with M features then you can implement and combine them in emacs in O(N+M), to get O(N*M) custom commands.

For example, if you need “Search” feature then you can use it everywhere. It can help find you a file in Dired buffer. It can help you find a git chunk in magit. It can help you find todo item in Org mode, etc. It like having a separate `uniq` command instead of implementing it for each shell command (`sort -u` vs. `sort | uniq`). Another example, having `repeat <N> <cmd>` to repeat `<cmd>` command `<N>` times in zsh vs. implementing `<cmd> —repeat <N>` for each command.

The difference is linear vs. quadratic. If you need to do 1000 actions that can be decomposed into 100 commands with 10 features each then in emacs then you need to know and understand ~100 things vs. 1000 in less customizable environments.

dwringer|3 months ago

There are a lot of caveats but in general the "spend 2 days" thing is a lot less true now IMHO thanks to LLM's that can write mostly correct elisp from basic specifications. YMMV of course. I have found this can also open up to being a lot more than "maybe 5% more efficient" for niche applications. It's the closest environment I've used to where the friction between "I wish my editor could do <x>" and actually having the feature almost disappears.