News for hackers. Stuff that matters.
Re:Emacs is special regarding UIs by bartread on Thursday September 10, 2020 @07:45AM (#24431335)
This is somewhat oblique to the content of the post but "special" is about right. "Unnecessarily obtuse", particularly from a contemporary perspective, might be a less kind way to describe it. I could say the same about the documentation which, frankly, is not great at making you immediately productive. It's written like an academic treastise, not a tutorial for a piece of software that exists to help you get stuff done and where learning the software is not an end in itself.

I've recently started making a relatively determined attempt to become proficient with emacs due to increasing frustration at poor performance from both VSCode and Sublime Text when working with larger projects and, I'm not going to lie, it's hard going.

Take something as basic as working with multiple windows. Emacs has concepts of buffers, windows, and frames, but windows and frames are diametrically opposite in concept to windows and frames in client side web development.

That's not too difficult to grasp but, say you're in dired, and you want to open a file in a new OS window (in emacs-speak this would be a frame). You'd think you could just move the caret over the filename and hit some key combination to open that file in another window (sorry, I mean frame). Possibly you can but the nearest I've managed to get so far is (from memory) C-x 5 f, which brings up the minibuffer prefilled with the pathname of the directory you're browsing in dired, and then you have to start typing the filename (which, granted, will autocomplete), which seems somewhat redundant, and only then can you open the file.

It's also full of things to trip you up, like the key bindings for switching to another (emacs) window and killing a buffer - both fairly common operations - being far too similar and easy to confuse for a newbie.

It just seems so deliberately contrary, but I'm hoping the investment will pay dividends given time and persistence (this is, however, approximately my fourth or fifth attempt in 20 years to learn emacs, so we'll see).

Re:Emacs is special regarding UIs by tzs on Thursday September 10, 2020 @10:16AM (#24432566)
I think that tools like Emacs and Vim are aimed at people who recognize that very often over the next few decades of their careers they are going to have a need for powerful, complex, flexible text editing, and so even if they have no interest in learning the software for its own sake its worth putting in the up front effort because it will pay off later.

For a lot of tools, both in software and other fields, there are three different classes of user.

1. Those with fairly straightforward tasks that they just want to get done.

2. Those who mostly have staightforward tasks, but occasionally have something a bit more complex but not too complex.

3. Those that need to handle everything from simple to ridiculously complicated.

Take electrical testing tools for example. For a lot of people a simple battery tester is all they need (class #1). If you want to test a battery and have never used a battery tester before, it will either be obvious what to do, or a glance at the instructions will tell you.

Some people need a bit more on occasion, and for them we have a class #2 tool, the multimeter [1]. You can still pretty easily test a battery with one, but the first time you probably will have to spend a minute or two in the manual, learning what voltage setting you want (the V with the ~ over it, or the V with the dashed and non-dashed line over it?) and which holes to plug the probes into.

Some people need a lot more. They have a class #3 tool, the oscilloscope [2]. You can check a battery with an oscilloscope, but if it is your first time you are going to spend a lot of time in the manual before you get there.

Emacs and Vim are class #3 tools.

[1] https://en.wikipedia.org/wiki/Multimeter#/media/File:Fluke87...

[2] https://www.tequipment.net/Rigol/MSO1104Z-KIT/Mixed-Signal-O...

Re:Emacs is special regarding UIs by oblio on Thursday September 10, 2020 @11:00AM (#24432955)
The thing is, you need AutoCAD (or equivalent) to be a productive engineer in certain fields.

You don't need Emacs or Vim to be an incredibly successful software engineer. It's actually the opposite, Emacs and Vim users are a minority among successful software engineers.

So they are only a specific kind of power tool.

More than that, they can't even handle the "ridiculously complicated". Common examples are trying to use them with projects containing millions of lines of Java or C# code.

Re:Emacs is special regarding UIs by tzs on Thursday September 10, 2020 @11:58AM (#24433517)
Yes, you don't need Emacs or Vim to be a successful software engineer. If you are good enough you don't need anything more than a basic editor, a compiler/interpreter for a language, and libraries for that language that let it talk to whatever you need to do I/O with.

But using a more advanced editor can make it easier. If you are going to be doing software engineering for a few decades all the times you have to do some repetitive task in a simple editor that would have been quicker in a more powerful editor adds up.

Re:Emacs is special regarding UIs by oblio on Thursday September 10, 2020 @02:01PM (#24434884)
You've misunderstood me. I'm not arguing that Notepad + msc.exe are more powerful than Emacs or Vim.

I'm arguing that IntelliJ/Visual Studio are more powerful than Emacs or Vim.

The Emacs and Vim architectures are antiquated and the volume of effort put into developing them (and their ecosystems) are outclassed by modern IDEs, especially for languages that scale to large numbers of developers working together (Java, C#). Emacs and Vim are poor man's IDEs compared to actual IDEs for these cases.

Emacs and Vim are mostly popular amongst C/C++ developers, where the ecosystems are generally baroque, forced by the need to integrate with embedded systems with limited toolchains or with libraries/frameworks that are very limited, and amongst developers working with dynamic languages, where you generally have small teams. Or large teams and a ton of headaches :-)

Re:Emacs is special regarding UIs by MarcScott on Thursday September 10, 2020 @03:13PM (#24435551)
I'm not a C/C++ developer, but I spend most of my time in Emacs. Most of my development time is spent in Python, and Emacs serves as an excellent IDE for the language.

However, that in itself is not my reason for preferring Emacs. It's also my markdown editor, often my file manager, my PDF viewer, my image viewer, my git interface, IRC client, email client... I could go on, but I'll stop there.

Emacs is not and has never been an IDE, it's a highly versatile and extensible text-editor. You can't compare apples and oranges.

Re:Emacs is special regarding UIs by pmoriarty on Thursday September 10, 2020 @04:08PM (#24436038)
"The Emacs and Vim ... are outclassed by modern IDE"

Outclassed in what way?

Have you looked at LSP[1] and its support in Emacs[2], for instance?

That's not to mention things like SLIME and paredit for Lispy languages, or the integration of the rest of the Emacs ecosystem in to your development environment, the ability to develop and configure all these development tools in Lisp instead of being forced to switch to some other language, etc.

[1] - https://github.com/Microsoft/language-server-protocol/

[2] - https://github.com/emacs-lsp/lsp-mode/

Re:Emacs is special regarding UIs by oblio on Thursday September 10, 2020 @04:33PM (#24436296)
If you're not a professional Lisp developer, an environment extensible in Lisp is not a plus :-)
Re:Emacs is special regarding UIs by kazinator on Thursday September 10, 2020 @07:04PM (#24437503)
I've had colleagues who were dedicated Emacs users, yet didn't know anything about Lisp.

This is not surprising; it's no different from Vim users who have never written or debugged a line of VimScript.

Re:Emacs is special regarding UIs by jasomill on Thursday September 10, 2020 @07:15PM (#24437590)
Rubbish. Speaking as someone with seventeen-odd years of professional C# experience and no professional Lisp experience, Emacs Lisp is both easier to learn than the Visual Studio SDK and, more importantly in the long run, far more likely to be worth the bother[1] for personal use cases.

[1] https://xkcd.com/1205/

Re:Emacs is special regarding UIs by iterativ on Thursday September 10, 2020 @05:59PM (#24436987)
Well, let's see what software engineers use Emacs.

Donald Knuth. Author of "the art of computer programming" and many contributions in computer science.

Linus Torvalds. Original author of Linux (the most widely used kernel) & git (most widely distributed version control). In fact, he wrote his own version of emacs. He doesn't do much, if at all, coding now.

Joe Armstrong. Author of Erlang.

Guido van Rossum. Author of Python.

Yukihiro Matsumoto. Author of Ruby.

Rich Hickey. Author of Clojure.

Andrei Alexandrescu. Author of D.

Xavier Leroy. Author of OCaml.

Michael Widenius. Author of MySQL & MariaDB.

Guy Steele. Co-author of Scheme.

Stephen Wolfram. Physicist, computer scientist & author of Mathematica.

Peter Norvig. Research director at Google & well known Lisper.

RMS. Well, original author of GCC, Emacs & the GNU system.

All of them, apparently, don't require one of those "powerful" IDEs.

Re:Emacs is special regarding UIs by TAForObvReasons on Thursday September 10, 2020 @06:27PM (#24437205)
Those developers by and large were active in software development before the creation of VSCode or IntelliJ. If you've already invested time and energy to learning the ins and outs of one tool, the hurdle to switch is large.

VSCode would need to be 10x better for the seasoned veterans to justify switching. If it were only 2x better, arguably the investment would not be worth it, but it doesn't change the fact that VSCode would be 2x better than emacs.

Re:Emacs is special regarding UIs by nikki93 on Thursday September 10, 2020 @11:59PM (#24439063)
Once you try to run VSCode on a Chromebook, you realize how 'good' it is. :)
Re:Emacs is special regarding UIs by kazinator on Friday September 11, 2020 @12:19AM (#24439160)
Can you share a screenshot/paste of your process listing with VSCode running, showing virtual memory sizes?
Re:Emacs is special regarding UIs by nikki93 on Thursday September 10, 2020 @05:36PM (#24436805)
For some people, using a computer is meant to be a pleasurable experience, and Vim / Emacs might let them build this up in ways that personally align with their tastes. I've spent years in Visual Studio (not Code -- the older one, but also a year or so in Code), and IntelliJ, and Vim, and Emacs with Spacemacs. They all felt good for when I used them. Like which genre of music I happen to be into at the time.

At the end of the day, it's kind of just shifting around based on what feels good. It feels similar to sitting in a cafe for a bit, but some times working from home, and some times in the mountains.

But there's no need to put people down by saying stuff like "poor man's" IMO. And if you're restricted to what makes C# and Java tolerable, that's a small space. There's a lot more stuff out there.

And programming is not as simple as "make decisions that optimize your engineering throughput" IMO. Otherwise gardening would be agriculture, right? Both are important in their own ways.

In any case Vim's terminal emulation and asyncness these days along with coc.nvim brings it back on track IMO. There was a period where it was behind.

I do think it depends a ton on language. The best experience in Vim is editing Go, I think. And then TS and C++ have been a close second. Lisps are not great, Emacs tends to better. For Java and C# it's definitely IDEs. VSCode is also fine for a lot of langs, in a more out of the box way. Cursive is also good I hear for Clojures. If you need to move between a lot of langs, the only IDEs that pan out are IntelliJ mostly, unless you count Code as one. But Vim and Emacs have the best multiwindow and multi buffer management. And the best git integration for patch by patch staging, for sure.

And ofc for ObjC and Swift it tends to be Xcode. If you're really into Freepascal then Lazarus etc. Smalltalks are their own thing ... it keeps going on.

Re:Emacs is special regarding UIs by kazinator on Thursday September 10, 2020 @07:09PM (#24437535)
You might be talking about that JavaScript rewrite of Visual Studio that uses the Electron framework.

The name "Microsoft Visual Studio" refers to a product line with a long life, which had been a monumental piece of shit over most of that life.

Vim and Emacs helped people survive Windows development jobs centered around Visual Studio.

Re:Emacs is special regarding UIs by fennecfoxen on Thursday September 10, 2020 @07:59AM (#24431434)
As a long time emacs user, I can confirm that emacs is terrible... and everything else out there is deficient. I can write custom code (ew, elisp) to determine how to switch between buffers (test buffer and code under test) and I can run my tests and find operations and the like in a first class buffer and a dozen things like that which are just incredibly painful in other editors.

Also I hit Cx-c by mistake thrice a week.

Re:Emacs is special regarding UIs by joosters on Thursday September 10, 2020 @10:32AM (#24432708)

  ;;; Make it more difficult to kill emacs accidentally
  (defun my-kill-emacs ()
    "Confirm before 'save-buffers-kill-emacs'."
    (interactive)
    (if (y-or-n-p "Really kill Emacs? ")
        (save-buffers-kill-emacs)
      (message "Aborted")
      )
    )
  (global-set-key "\C-x\C-c" 'my-kill-emacs)
Re:Emacs is special regarding UIs by jimmyvalmer on Thursday September 10, 2020 @11:09AM (#24433022)
Dude, `M-x custom-set-variable RET confirm-kill-emacs RET TAB`
Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @11:24AM (#24433180)
Or just unbind it, you won't typo `M-x kill-emacs`...
Re:Emacs is special regarding UIs by fennecfoxen on Tuesday September 15, 2020 @09:21AM (#24480881)
TBH it actually helps me a little. I seldom lose any work at all, and I have to remember to commit editor config changes somewhere persistent. :P
Re:Emacs is special regarding UIs by MarcScott on Thursday September 10, 2020 @03:21PM (#24435610)
Run Emacs as a server. You can kill the client accidentally, then just load another client instantly and carry on from where you left off.
Re:Emacs is special regarding UIs by momentoftop on Thursday September 10, 2020 @06:54PM (#24437410)
Exactly.

My emacs uptimes (M-x emacs-uptime) are generally the same as my machine's uptime, which is typically months. Emacs is one of the most rock-solid pieces of software I have running.

It's also great for remote. I have emacs daemons running continuously on my remote boxes. To start work on those machines, I log in and start my emacs client. I've never had a need for things like "screen".

Re:Emacs is special regarding UIs by disgruntledphd2 on Saturday September 12, 2020 @07:06AM (#24451557)
Does that actually work?

My understanding is that without screen/tmux, the process will die if you disconnect the shell (on a remote box).

Interesting that --daemon works too (I've been running emacs through tmux for years, and never knew that).

Re:Emacs is special regarding UIs by momentoftop on Sunday September 13, 2020 @08:59AM (#24460563)
It definitely works, starting emacs with "--daemon".
Re:Emacs is special regarding UIs by TeMPOraL on Thursday September 10, 2020 @04:11PM (#24436075)
> Also I hit Cx-c by mistake thrice a week.

Unbind it. Problem solved. That's what I do with my clumsy fingers.

Re:Emacs is special regarding UIs by agumonkey on Thursday September 10, 2020 @08:08AM (#24431488)
It might be the right timing for an ergonomic revamp. As much as I like the old habits, I agree that some parts really need to be rebalanced. And emacs is moving faster these days so maybe a mutation can happen

A slightly nicer embedded docs. They were great for 80s way of life, but it could use a slightly more reply (to stay in the context of a live editor / lisp machine). Maybe a text demo system.. after all you could script a demo of workflows in elisp for newcomers to see rapidly.

- hydras could be extremely useful for newcomers for instance (and I'm no fan, but it cuts the chase by a factor of 1000)

- ace-jump

I don't know, I'm just suggesting

Re:Emacs is special regarding UIs by pmoriarty on Thursday September 10, 2020 @10:42AM (#24432788)
I'm a huge, huge, huuuge fan of hydras.

They're a big part of what make Emacs useable for me.

I have set up hydras for pretty much every major mode I use (except magit, which kind of has its own hydra-like menu system).

Because of hydras, I don't have to remember all the arcane keyboard shortcuts these modes have bound by default, and don't have to look up how to run a function that's not bound at all.

All I have to remember is one keyboard shortcut which I have configured to bring up a hydra in every mode, and it'll show me a menu of everything I can do in that mode.

This is really fantastic, has revolutionized the way I use Emacs, and has made it 10 times as useable for me as it was before I used hydra.

Re:Emacs is special regarding UIs by mercer on Thursday September 10, 2020 @11:39AM (#24433328)
Whether it's 'hydras' or something similar, the single thing that got me into properly using Emacs was this feature in Spacemacs. For almost any situation, I can either pull up the spacebar 'global' menu, or a context-specific quick-menu. Discoverability has been insanely good, and I keep finding new tricks just by exploring the various menus that pop up.

I wish 'UI autocomplete' like this was a standard feature of operating systems. GUI's aside, how nice would it be to run a CLI command with some flag that allows you to explore the various options and string them together, rather than reading the manpage and searching for whatever flag you might want to use?

Re:Emacs is special regarding UIs by agumonkey on Thursday September 10, 2020 @12:54PM (#24434115)
more generally auto-completion helps users go combinatorial on new territory
Re:Emacs is special regarding UIs by II2II on Thursday September 10, 2020 @10:21AM (#24432612)
Emacs is an old piece of software that has historical baggage. I would imagine that the window and frame terminology is a product of their time: the use of window would have made sense prior to X. Another term had to be introduced when X support came along.

It is also a piece of software where changing the terminology is very difficult. While a non-scriptable program could simply change the documentation and be done with it, Emacs would either have to change the names of exposed functions (breaking compatibility) or have one set of terminology for scripting and another while discussing the user interface.

Perhaps better choices could have been made, but the issue is non-trivial.

Re:Emacs is special regarding UIs by pmoriarty on Thursday September 10, 2020 @10:34AM (#24432721)
Yes, the Emacs defaults tend to be pretty awful, but you can configure it your liking, given enough time and effort.

I've put in a ton of time and effort configuring Emacs (after spending about 25 years on vim and vi), and though it took a long time, the results have been well worth it for me.

There's no way I would give that up and go to something with more reasonable defaults but which is much more limited in customization capabilities and which lacks a Lisp ecosystem which has been improved by thousands of people for many decades.

Re:Emacs is special regarding UIs by oblio on Thursday September 10, 2020 @11:04AM (#24432984)
> There's no way I would give that up and go to something with more reasonable defaults but which is much more limited in customization capabilities and which lacks a Lisp ecosystem which has been improved by thousands of people for many decades.

You do know that there is a middle ground, right? Emacs itself could come with reasonable defaults.

You'd still be able to customize it (after all, you probably did) and all the newbies wouldn't have to read about 80's computing arcana to figure out how to split a window.

Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @11:37AM (#24433296)
> You do know that there is a middle ground, right? Emacs itself could come with reasonable defaults...

That's the rub though. Emacs could change its defaults, plan large deprecation and rename, rewrite all its documentation and write even more to help migrate. And 20 years from now someone will be whining about the 2010 "web arcana" embedded in some interface and command set.

> newbies wouldn't have to read about 80's computing arcana

Because here's the perfect example. Emacs isn't 80s computing arcana, it's 60s computing arcana largely encoded into it in the 70s. In the early 90s when I first picked it up there was a similar push to encode the arcana from the 80s instead. "Pick the standard keybinds that make sense!" they said. Like Shift-Delete for cut and Shift-Insert for paste!

... oh, that's probably not what you want today either, is it?

So here's your options:

- Churn the defaults and everyone's configs every 15ish years

- Document as best you can the defaults and how to change them, and make the best UIs you can at the time, in fashion or not. (Kill rings are still better than cut buffers!)

Universal "reasonable defaults" don't exist in a tool meant to last 50 years in an ecosystem of fads.

Re:Emacs is special regarding UIs by oblio on Thursday September 10, 2020 @01:56PM (#24434833)
Yeah, but here's the thing. Recently geneticists had to start renaming genes because Excel would parse the gene names as dates. And Excel is supposed to be "software".

At a certain critical mass, soft-ware stops being soft. Other things bend to accommodate the soft-ware.

You know what's even harder than hard soft-ware? Social mores and expectations. For example, such as those formed by millions upon millions of spreadsheet users.

Or billions and billions of web users.

So, where am I going with this? Emacs has encoded some norms from the 60s when the tech community was probably 0.1% of what it is now, and when large numbers of those 0.1% people were technically adept and very flexible in adopting new things.

"Web arcana" has been assimilated by a million more applications and systems than those systems that inspired Emacs had. It has also been assimilated by billions (!) of people.

60s arcana is not equivalent to web arcana, for this reason.

Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @02:00PM (#24434870)
Yeah, sorry, you're right. Now is definitely the end of history and time to rewrite everything into the dominant paradigm.
Re:Emacs is special regarding UIs by oblio on Thursday September 10, 2020 @02:04PM (#24434915)
So it's better if the end of history was the 60s, when there were 10000 programmers, in total, worldwide?

When we hadn't even standardized the keyboard layout and the "display" was a dot matrix printer? When there was no networking to speak of?

How does that make more sense?

Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @02:24PM (#24435110)
It's not like Emacs doesn't deprecate or change anything. It's not like its feature set froze in the 60s. And it's not like it doesn't document how to turn on CUA bindings, or Windows or OS X-compatible bindings, or have special builds or distributions where these are defaults. If you want C-c, C-x, C-v, you can have it. Today. In many distributions, by default. The keybindings are not the main issue either way in how "usable" a tool like Emacs is. If you think they are, you're missing the entire point of how Emacs is special regarding UIs.

I can throw the bullshit rhetoric right back at you: You think absolutely nothing was better in the 60s? That modern IDEs lost nothing compared to the tools of 10, 20, 30, 40, 50 years ago? Why isn't Emacs like Borland? Why isn't Emacs like Visual Studio? Why isn't Emacs like Eclipse? Why isn't it like Mosaic, QuickBasic, Coldfusion? There are reasonable answers to these questions, and they'll tell you also why Emacs isn't like whatever you want to compare it to today.

Maybe Emacs already occupies a local maximum, "a middle ground", taking some of the best compatible ideas from the times it's been alive in. Vi another local maximum. IntelliJ or VSCode, others - but emphasis then on local, and I hope you like retraining.

The problem is not keybindings or what decade its metaphors exist in, it's people see Magit or Org or whatever high-level fully-integrated tool, and want just that. And you don't understand that is an outcome of a path that really does require the whole philosophy to ingest into your workflow. But you don't want to learn the philosophy, you just want to 10x crush git or whatever. No, it won't happen. There's all sorts of dumbass metaphors in in this thread now, but in the end Emacs is garden, not a hammer or a workbench or an oscilloscope or whatever. You get out proportion to what you put in, you work with it not just use it.

Shit's just gonna get faster. You need to find ways to live with it, not copy it. Talk to your fathers-in-law.

Re:Emacs is special regarding UIs by paledot on Thursday September 10, 2020 @12:24PM (#24433781)
I know you're angling for option 2 here, but honestly, default churn still sounds like the best choice. Don't like it? Have a one-line config Defaults=1980 and let people like my father-in-law keep using their Shift-Delete, while the rest of us can enjoy an editor that's at least usable out of the box.
Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @12:31PM (#24433849)
> Have a one-line config Defaults=1980

You could bundle up maybe a dozen keybinds like this, but it's not going to scale to even address the complaints we see in this thread (window vs. frame terminology), let alone the full gamut of mainstream Emacs configuration. And it's a massive amount of work to do. And it's not fundamentally different than just picking an Emacs-distribution-du-jour (Spacemacs, Doom Emacs) right now.

If that's what you want, my view is you might as well be churning whole editors. And truthfully, if that's what you want, do it! But I want a kill ring, and buffer/window management that doesn't presuppose multiple frames, and my mode line. I don't want to waste critical keybindings like C-x or C-c on weaksauce single-buffered text operations. And yeah, there's a lot of things I would change if I was doing "Emacs from scratch", but on the other hand I don't need to because I can change them now, and easily share them, and still take advantage of what everyone else is doing.

Re:Emacs is special regarding UIs by pmoriarty on Thursday September 10, 2020 @11:08AM (#24433015)
Oh, I fully agree, and some people have done just this with packages like Spacemacs, Doom, Prelude, and probably some others.

I've never tried any of them myself, because I already have Emacs configured to my liking, but reasonable defaults is what these packages aim at.

Re:Emacs is special regarding UIs by antonvs on Thursday September 10, 2020 @12:23PM (#24433766)
> Emacs itself could come with reasonable defaults.

You could try Spacemacs. I've only just started seriously getting into Emacs, and have found Spacemacs to be a big help.

Re:Emacs is special regarding UIs by BeetleB on Thursday September 10, 2020 @02:05PM (#24434931)
Agree on the referenciness of the manuals. They are not the best way to learn when new to it (or to a package).

C-x 4 is a prefix for "other window".

C-x 5 is a prefix for "other frame"

(It's OK if you did not know this. I was a heavy Emacs user for a decade before I learned this).

For your particular problem, you may want to look into Hydra. Setting up your own Hydra for dired-mode will involve some basic Elisp, but not much - you can just copy/paste from elsewhere. However, you may need to write an Elisp function for your particular situation, and then have the Hydra call that function.

Similar to another commenter, once I learned hydra, I create my own menus for every new mode I want to use. Much easier than memorizing keybindings, and you can put your own custom stuff there.

Also, I rebound F6 to switching windows. C-x o would drive me nuts. F6 is the standard in Windows/DOS, so that's what I was used to (I still use it in Outlook for work to avoid the mouse).

Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @07:52AM (#24431374)
These are reasonable criticisms of Emacs’s interface, but the topic of the post is interfaces in Emacs, not Emacs’s interface. Sublime has no comparison point.
Re:Emacs is special regarding UIs by taeric on Thursday September 10, 2020 @12:34PM (#24433875)
Your complaint on the documentation reads oddly. You do know there is a tutorial included, right? And, it mostly does what you are asking. You can even try to speed run through it occasionally to make sure you still remember everything.

The straight documentation on the parts? I'm curious how you would want those to be otherwise. They mostly read like the user's manual of a car. Fairly technical, but at a very high level. With occasional tips on how to use the part you are reading about.

Re:Emacs is special regarding UIs by bartread on Thursday September 10, 2020 @01:45PM (#24434714)
> Your complaint on the documentation reads oddly. You do know there is a tutorial included, right? And, it mostly does what you are asking. You can even try to speed run through it occasionally to make sure you still remember everything.

But that's the point: it doesn't.

Maybe it does if you want to invest a few hours getting up and running, but I don't have that kind of time: I need to get stuff done now.

I'm not saying I'm too important, or my time is too valuable, or any nonsense like that: I just don't have time to invest in spending a day or even half a day learning what are in contemporary times the basics of using a text editor.

And that's the problem with the tutorial: it doesn't start with a quick two page summary of what, in contemporary times, are considered the basics of using a text editor. It's long-winded and academic and takes way too long to get to the point on any and all relevant topics.

The result is that I have to (and not just me: anybody used to non-emacs - or perhaps vim - editors) invest non-insignificant amounts of time learning basic functionality that works in a common way across most other editors and IDEs (IDEA, Visual Studio, Rider, VS Code, Sublime, TextPad, XCode - heck, even Microsoft Word) and learn completely different paradigms for all of it just because emacs is "special". It's pretty frustrating because for me the editor is not the point. I'm only looking at emacs at all because a lot of editors, once you get to a project of any size, become absolute CPU hogs and it starts to get in the way. But given the grief I may come to the conclusion that a better investment is just to buy a faster laptop.

I'm totally happy to be proven, or to prove myself, wrong, but right now the whole emacs ecosystem seems unnecessarily, contrarily alien simply for the sake of it.

There also seems to be a strong lack of empathy for users. Few influential people seem to have given any consideration as to how to make the software accessible for newcomers. In this day and age that's almost laughable.

Re:Emacs is special regarding UIs by taeric on Thursday September 10, 2020 @04:30PM (#24436269)
I'm not sure I follow. As a power user of computers for years, I would be a liar if I said any of those programs were "quick to get running." Speaking as someone that is getting my kids up and running with computers. Training and tutorial running are the norm and should be. Expecting proficiency in anything with less than a few hours is an exercise in pain.

If you want there to be a new tutorial, I don't know anyone that would be against it. The "game to learn vim" was popular a few times. Same basic idea. I don't know what I would make of it, right off. There are some great typing modes that let you quickly type the current document and score you on speed/accuracy. Moving to other windows is tough in any option. But I could imagine a fun game made to navigate through. (Though, with helm, most navigations are autocompletes nowadays.)

I hate that it feels like a lack of empathy for you. But I really don't see the ecosystem as alien. Any more than I see the python ecosystem as alien, or the java, or javascript, browsers, etc. They are all just a little different. But all have some rough analogs. And all feel like they are just trying to shield users from complicated problems. Many times making things more complicated in the process.

Re:Emacs is special regarding UIs by bartread on Thursday September 10, 2020 @04:43PM (#24436394)
What I'm trying to say is this: I can pick up almost any text editor and be productive immediately, even if I've never used that editor before. That is manifestly not true with emacs (or vim). Getting back to my point about the emacs documentation, it is simply not optimised to get me productive in the way I can be with other editors anything like as quickly as I can become productive with those editors.

Of course you're right, when you start using computers everything is hard, but many applications have common conventions, even across different authoring organisations and people, and even across different operating systems.

Emacs has conventions but there's next to no commonality with other applications within the same broad class, so you are starting from scratch. Emacs makes no affordances for people who are already used to using other software, whereas much other software does make those affordances, and so is easier to pick up as a result.

Maybe you don't see that as a problem, and that's fine, but for me - and, I suspect, quite a lot of other people - the steep learning curve feels unnecessary and, frankly, bizarre to the point of being out of place.

There's no reason Emacs couldn't be easier to use. There's no reason the documentation couldn't be written to accelerate proficiency with the application. But neither of these things is the case, and it's a deliberate choice. As I've already implied, it seems almost obtuse just for the sake of it.

Re:Emacs is special regarding UIs by BeetleB on Thursday September 10, 2020 @10:10PM (#24438503)
> I can pick up almost any text editor and be productive immediately, even if I've never used that editor before.

It's true, but I don't see why this is being given much importance. If you pick up any editor and use it only to the extent that you can without ever having to read up documentation, then simply go ahead - you likely do not need power features. If you need to do powerful things, then I suspect you will need to read docs regardless of the editor.

Emacs is a powerful tool. If you only need basic editing, then don't use it. That you can't do basic editing with Emacs without even going through a tutorial is not a flaw of Emacs, and you are clearly not the target audience for the program.

Re:Emacs is special regarding UIs by taeric on Thursday September 10, 2020 @04:55PM (#24436480)
And my point is that you have plenty of other training in those editors you are ignoring. Not out of malice, but because it is second nature. You have done a ton of training on them already.

I know it will sound contrived, but when I sit at a coworker's desk using sublime, I'm literally lost on how to navigate. I don't even know how to get the editor to list all open buffers. IDEA? I mean, I know it has the functions, but it is a search every time I have to try them. (Again at someone else's computer.)

I could think it was just my emacs knowledge not working, but I see the same hiccups from folks moving from each. So it isn't just me.

Are there affordances that are common? Yeah, but many have changed, and not all over long timeframes. Worse, many are different from Windows to Mac to Linux. There is a good argument for adopting what is native to where you are, but the rise of browsers has shown that to not be that important, ironically.

I do see it as a problem, if it is keeping folks from using computers. Or, if it makes folks build things that can't be used from emacs. That said, I don't see it as an insult or as a problem if you choose to use something else.

Again, for many of us, emacs is easy to use. For many of us, the documentation is written in a way to accelerate proficiency. I would love more documentation or affordances to help. So not stonewalling, but I caution against the attitude that what is there is bad.

And I get it, I think. I have recently tried to plunge into Blender and Gimp. Holy crap do I feel punished for mistakes there all too easily. :(

Re:Emacs is special regarding UIs by BeetleB on Thursday September 10, 2020 @02:00PM (#24434871)
> Your complaint on the documentation reads oddly. You do know there is a tutorial included, right?

The tutorial covers only the very basics. It's less than 1% of the material in the manual. And I definitely agree with him - most Emacs manuals (whether for Emacs or for some packages) are written more as reference manuals than something to learn from. If you're lucky some of them will have a tutorial in the beginning.

Re:Emacs is special regarding UIs by taeric on Thursday September 10, 2020 @04:32PM (#24436295)
But this was my point. Most of the documentation is a reference manual. Is why I referenced the user's manual for a car. You will not be using that to learn how to drive a car. Nor will you use it to learn how to build or maintain one, really.

So, to that end, what makes the manual of VSCode/Atom/Sublime good? Since there is an implicit comparison to those as a good comparison.

Re:Emacs is special regarding UIs by M2Ys4U on Thursday September 10, 2020 @07:06PM (#24437525)
VSCode/Atom/Sublime all operate broadly the same way. To continue the car analogy, there's a wheel right in front of you, two or three pedals by your feet and a gear stick next to you.

In this analogy, emacs' accelerator is on the ceiling, the bake hangs off the side and to steer you need to tap out the morse code for the words left and right on the dashboard.

Can you become proficient using that kind of interface? Probably.

Can you change the interface to something more sane? Sure, but you have to first learn how to weld...

Re:Emacs is special regarding UIs by taeric on Thursday September 10, 2020 @07:26PM (#24437664)
I think that is being deliberately unkind to emacs. It would be closer to comparing it to a car designed 30 years ago in a country that drove on the other side of the road. Most all of the major points are the same, just in a different location.

Even better, compare it to driving a boat, when you've been used to cars. (Or, for that matter, realize that it is a stick shift car when you've been used to automatic. And slowly realize everyone has a slightly different way to get their system running as an automatic.)

Re:Emacs is special regarding UIs by BeetleB on Thursday September 10, 2020 @07:57PM (#24437858)
Given that I love Emacs, I hate to disagree with you, but I must:

This is like a car model that came into existence 40 years ago, but is still making cars today.

Ford is over a 100 years old. Yet I have no problem getting into a rented Ford and driving without consulting the manual.

Re:Emacs is special regarding UIs by taeric on Thursday September 10, 2020 @10:20PM (#24438554)
As someone that used to drive a lot of rentals, I think you overstate how seamless it is to get going in a car. More, I think this glosses over how difficult cars used to be, to operate. With how unreliable early spark plugs and carburetors were, it is hard to state how far things really have come.

And my point is I agree that vanilla Emacs can feel spartan. Thing is, my customizations have aged really well. My config for Emacs hasn't changed too much in over a decade. That kind of stability is hard to put value on. Especially when our industry seems to price itself on instability.

Re:Emacs is special regarding UIs by rthomas6 on Thursday September 10, 2020 @09:05AM (#24431951)
That sounds like something you could add to dired mode and bind to a key without too much trouble. It's my understanding that you sort of have to start molding emacs to your particular style, and that the defaults are kind of bad. I have switching windows bound to ctrl+direction. Super easy and convenient.

Also some of the plugins augment Emacs so much that some people see them as part of emacs rather than an add-on. I don't use dired; I use helm/ivy.

I am having good luck with Doom Emacs. You may want to check it out, especially if you are used to the Vim keybindings. It provides a lot of extra functionality out of the box.

Re:Emacs is special regarding UIs by tiborsaas on Thursday September 10, 2020 @05:59PM (#24436988)
At what project size did you notice performance issues? I use VSCode as my daily workhorse and I can believe without a doubt that it can get into trouble if I forget to gitignore node_modules :) But putting ST on the same page got me curious.

I'm on the other end of the spectrum, I'm betting that computers will become fast enough with time to run these bloated editors that were designed to be usable.

Re:Emacs is special regarding UIs by jimmyvalmer on Thursday September 10, 2020 @08:57AM (#24431887)
> like the key bindings for switching ... being far too similar and easy to confuse for a newbie.

You must be referring to `C-x b` vs. `C-x C-b`. I remember getting apoplectic over this in 1995. I remain aggrieved to this day.

Re:Emacs is special regarding UIs by morelisp on Thursday September 10, 2020 @10:24AM (#24432631)
I suspect this is actually `C-x k` vs. `C-x o`.

My recommendation would be to bind `C-x C-k` to `kill-this-buffer` and unbind `C-x k`, or bind `C-x C-o` to a hydra that lets you repeat `C-o` i.e. hold down ctrl and repeat `o`, to cycle windows. Or both.

Alternate, try out `ace-window`.

I'm not sure about "too easy to confuse for a newbie." These kind of mistakes only happen when you are switching buffers rapidly without checking prompts, and newbies won't be doing that. And the default mnemonics are (unlike much of Emacs) good for these tasks. So rebinding doesn't feel like a big ask.

(Agreed `C-x b` should be removed imo.)