Live data from Hacker News

Making Emacs Popular Again

lwn.net

611–620 of 782 posts

Re: Making Emacs Popular Again

#611

I'be been using Emacs for 17 years mostly for programming-related tasks. My opinions are: - Emacs is an editor for people who think that learning some Lisp sounds fun if they don't know some already. - Emacs should not bother trying to appeal to a more general audience; it's not an editor for most people when new to programming, and it's an editor for a very small minority of non-programmers. - Emacs should focus on…

I agree that a leaner core seems intuitively right. However, the discussion on emacs-devel has been in the other direction as of late https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg01... .

Thanks I skimmed that thread and the one this HN thread is about. There are so many depressing things. In particular this arrogant and utterly ignorant condemnation of Pull Request-based workflows infuriates me:

> A lot of people have not been contaminated by the entitlement that comes with the "I'm sending a PR, please check it in" generated by the Github culture.

I don't think the person who wrote that has even looked at the pull request review that goes on in high quality emacs packages on GitHub, let alone participated in it. This sort of thing really makes it clear that some of the people on emacs-devel are hopelessly out of alignment with the majority of the people would would willingly contribute to the emacs and emacs lisp package ecosystem.

There are many good reasons not to included packages in core Emacs. A big one is that package authors are working in their own free time and don't want or need to have to prepare an especially bug-free release to coincide with Emacs release cycles. Also they don't want to support users using the old version that is in Emacs.

Re: Making Emacs Popular Again

#612

Earlier quoted context omitted.

Emacs is a gui app. You can have if you like a tool bar. A menu-bar, tabs, split windows. If you want something slightly more like a traditional gui emacs application framework enables bidirectional communication with QT applications running in emacs frames. Personally I use it to render HTML mail inside emacs with what amounts to embedded chrome.

Emacs is as much of an GUI-App as Window notepad is an editor. They both have the traits what justify to call them, but also are both on the absolute bottom-line in terms of ability. The menubar is stuck in the 90s, the toolbar very very basic, even for the 90s. Window-Splitting is not even an GUI-feature and very basic. Only the tabs are somewhat modern, but also simple. COmpared to a modern GUI, emacs has barely an…

> The menubar is stuck in the 90s, the toolbar very very basic, even for the 90s. Window-Splitting is not even an GUI-feature and very basic. Only the tabs are somewhat modern, but also simple

You're confusing GUI with Windows GUI API. That's like complaining that a game like Stellaris barely has any GUI, because if you force it to run in windowed mode, then maybe you'll get a context menu dropping down from the application icon in the top left corner of the window.

Emacs absolutely has a GUI. It happens to be drawn almost entirely from characters, but it's a GUI. It uses the language, can display pixel graphics (in GUI-app mode), and even supports pointer devices. The fact that 99% of that GUI is a TUI is actually a benefit (you can also use it from terminal). And with third-party plugins, it has all the sophisticated GUI controls you could dream of, except unlike in traditional GUIs, they're fully interoperable.

A good comparison may be that Emacs is the OS that ships with a tiling WM, and most people unaware of that just use it to tile notepad windows.

Re: Making Emacs Popular Again

#613

Earlier quoted context omitted.

I would expect an experienced emacs user to have a config already that more or less "works". Was this a junior developer that just decided to start using emacs one day? I'm not an emacs person myself, but every emacs person I have ever met already has it setup and customized and just brings their config. A new dev starting with emacs on a new job... just sounds like a bad recipe and misunderstood priorities.

While I think you're right on the whole here about "Emacs people," but you did an interesting thing in the first sentence: you contrasted experienced Emacs user with junior developer. And I think that actually points to a problem: people who are experienced developers but not experienced Emacs users are going to be in much the same position as the OP's description. While I know the basics of Emacs, every time I try t…

> Yes, I know Emacs has a text-based UI for configuration, too. I've used it. It's bad. Okay? It's just bad. The controls are non-standard and weird, the organization is utterly mystifying to someone who doesn't already understand Emacsology, just... no. Start over.

I’ve used GNU Emacs for twenty years and totally agree. I avoid the customization menus wherever I can.

Re: Making Emacs Popular Again

#614

Earlier quoted context omitted.

> I guess most of the core emacs devs are greybeards who started programming in the 80s or earlier, so what happens when they grow too old? Who will replace them? What makes you say that? I don't think this is true. Not among the package maintainers anyways, and also of note here is remacs - I can't imagine greybeards programming in rust. And popularity does not always mean more contributors, not when they are just t…

At the time Emacs was created, Lisp was one of the few languages that had automatic memory management and higher-order functions and error handling, but those have been lifted so often that they're now table stakes for modern languages. I'm pushing 50 and excited about Rust because it's finally conceivable to have software that works reliably. I like Emacs, but it's not like I haven't seen my share of crashes in its…

> it's finally conceivable to have software that works reliably.

Care to elaborate what you mean by that?

Re: Making Emacs Popular Again

#615
post #37

I think that the Emacs concept is really good, but it clearly has a lot of problems that make it altogether unattractive to new potential users. - The keybindings are not the standard CUA ones. Even with Cua Mode, every page on the internet still suggests using the regular old Emacs keybindings. There's weird conflicts between some packages, especially if you use non-default keybinds like Evil. The defaults are not e…

> There's no namespacing between packages. They can run right over each other and cause weird bugs. This isn't theoretical; it's what happens when you have a bunch of packages installed. Sorting out performance issues caused by the interactions between packages is very challenging.

The worst aspect of this is keybindings. As "free-form" as Emacs is, I think it would benefit greatly from having a centralized "database" of all (custom?) keybindings. I am sick of defining my own super-cool keybinding and then either having it get overridden by a package or unknowingly overriding a package's keybindings. I kind of wish a warning would be thrown or something if you try to bind a set of keys that's already bound.

I don't know what system would be good/better, but I know I hate it as it stands today.

Re: Making Emacs Popular Again

#616

New employee 1 workflow at company X: 1. Install VS Code 2. Click extensions and install language specific plugin 3. Work New employee 2 workflow at company X: 1. Install emacs 2. Try to install some source code indexing tool 3. Tool is missing 13 dependencies, so spend 4 hours finding, installing and configuring the dependencies. 4. Spend another couple hours reading non-existent to terrible documentation (documenta…

New employee 3 workflow at company X: 1. Install Emacs 2. Sync existing config via git 3. Work New employee 4 workflow at company X: 1. Install Emacs 2. Spend 2 hours learning default Emacs 3. Work New employee 5 workflow at company X: 1. Install Emacs 2. Spend 1 - 2 hours learning default Emacs 3. Spend 2 - 4 hours googling interesting Emacs packages, in each case going to their GitHub repo to read the directions, a…

New employees 4 and 5 are completely fictitious and only exist in your imagination/reality bubble. In the real world no mortal has ever learned how to use Emacs in 2 hours to be able to work effectively. And like the OC said the documentation for extra packages are horrible, full of bugs and may take additional week to understand how to use effectively.

Re: Making Emacs Popular Again

#618
post #429

Earlier quoted context omitted.

> You mold your Emacs to a workflow unique to you, notice things you are doing often, add elisp functions to change it to make those things easier, and carry them with you from job to job. As your job evolves and changes, you maintain and grow your Emacs files over decades, and borrow from someone else's workflows. I've been writing software for ~24 years, and I can understand the need for this in the past. Now, I ju…

You can do one thing in JetBrains: edit code. That's it. In Emacs, I read my mail, I organise my agenda, I write technical reports, blog posts, I wrote my entire thesis in org-mode. I collect research notes in Emacs, and a journal. I do my bookkeeping and accounting in Emacs. I write Confluence articles, so I don't have to deal with Confluence's shitty interface. I edit remote files, I edit files via sudo on my machi…

>In Emacs, I read my mail, I organise my agenda, I write technical reports, blog posts, I wrote my entire thesis in org-mode. I collect research notes in Emacs, and a journal. I do my bookkeeping and accounting in Emacs.

No one cares (other than Emacs users). There are better tools designed for those purposes. There's a reason the UNIX philosophy of doing one thing well is still so popular and widely used. Rather than configuring and spending hours on buggy, poorly developed and indecipherable systems like Gnus, org-mode (it's like an Emacs with an Emacs, just ridiculous) etc people instead choose tools that are far better, more intuitive and works out of the box and everywhere.

> I edit remote files, I edit files via sudo on my machine.

Any decent editor or IDE can do that.

>I control git.

VSCode support for Git (and Github) blows everything else out there. And so also for languages like Python. Emacs support for any language which is not a Lisp dialect or C is horrible.

> I've been a dev for less time than you have by about 6-7 years, but I can honestly say that no other tool could even come close to replacing Emacs.

I very much doubt you actually tried to use anything else.

Re: Making Emacs Popular Again

#619
post #429

Earlier quoted context omitted.

> You mold your Emacs to a workflow unique to you, notice things you are doing often, add elisp functions to change it to make those things easier, and carry them with you from job to job. As your job evolves and changes, you maintain and grow your Emacs files over decades, and borrow from someone else's workflows. I've been writing software for ~24 years, and I can understand the need for this in the past. Now, I ju…

You can do one thing in JetBrains: edit code. That's it. In Emacs, I read my mail, I organise my agenda, I write technical reports, blog posts, I wrote my entire thesis in org-mode. I collect research notes in Emacs, and a journal. I do my bookkeeping and accounting in Emacs. I write Confluence articles, so I don't have to deal with Confluence's shitty interface. I edit remote files, I edit files via sudo on my machi…

What are your favourite features about magit? I switch between Pycharm and Vs code and terminal for my git usage. I find Pycharm has a really great git blame ui that makes it easy to walk back in time and investigate changes. It lets you toggle "Annotations" next to the line number, that display the SHA. From there, you can right click > show diff, from which you can _also_ show annotations, and continue jumping back ad infinitum. Vs code has a plugin which does something similar, but I find the UX to be not as elegant (the annotations are way too wide; every option is hidden behind cryptic icons like " right click > "stage selected lines" is more flexible then Pycharm which only shows a little checkmark near "chunks" of the diff for staging. Both editors also have a lovely feature that lets you highlight text and copy the GitHub link to the chunk or the entire file. Makes sharing really easy.

I use the git terminal for everything else; branching, checkouts, rebasing, pulling, pushing. Actually I use vim for interactive rebasing because it's fast/quick there.

Re: Making Emacs Popular Again

#620

Earlier quoted context omitted.

There's some bad stuff in emacs but to concern yourself with Meta as opposed to M- is plain silly. > if you can make a tool more learnable for new users without sacrificing its optimization for power users, you should Yes, but it's incredibly difficult and frankly the emacs devs have enough to do (and they do it well), and UI design is a very different skillset from programming. Frankly the learning curve for emacs i…

> it's incredibly difficult Right. I see this point ignored very frequently (sometimes because it's obvious and sometimes because people are being dumb). A lot of the things that would make emacs more like other editors are extremely difficult to retrofit. I expect there is still SOME low-hanging fruit, but a lot of the low-hanging fruit has already been picked, and a lot of the remaining changes that people would li…

I misread what you were saying, sorry. Too late to delete other post, please ignore it.
Post reply on HN