I'll give two examples to showcase features other editors are missing - ownership over the editor, and the extent to which you can build on top of existing primitives.
1. Can you change where the command palette shows up in Sublime? In emacs (M-x is our Command Palette) I can not show it, I can show it as a full width pane that takes up 50% of the screen, or I could recreate the Sublime Text look and feel (top of the screen X width, Y height). This looks like a toy example but I'm trying to show that there is not a single part of emacs I don't have control over.
2. Okay how would you do the following in sublime;
Your company is getting into credit checking. As such you now are beholden to certain rules and regulations around the safety of your code, and now your product owners want an update every time CreditCheck.java is modified by someone. They want to be notified in a Slack channel and also by email. They don't care if the top 30 lines are changed, but anything after that is important.
In emacs, I would make a hook for CreditCheck.java that any time I saved the file, it would run through the changes, check if there is a diff from line 31 onwards, and if so send a slack notification and send-mail the diff to the product owners.
I would just open my settings.org file and add the emacs-lisp to do this and I wouldn't even need to restart to avail of it - I could just load-file and have it working. All within emacs. You could do this via a tangle of shell commands sure - but emacs lets you do it emacs-lisp with ease.
Programming in the real world is full of stupid like processes like this, and emacs makes it easy to accommodate them. (Not saying that you should accommodate them, but the real world can be messy)
I think that most companies would not find it adequate for the compliance regulations to be implemented "client-side". Mine would certainly answer your question: "how would you do the following in Sublime" with: "not at all", or: "please don't".
As for your former point of configurability; all power to you; I think that there is a spectrum where many folks choose to be more on the end of the spectrum where there is paved roads of using an editor that looks a certain way through the consensus of its users. Instead of picking between a super-configurable editor and one that isn't, I think many users choose between two less so configurable editors (I imagine IntelliJ and VS Code are good examples) for the one that just suits them better than the other.
You are missing the forest for the trees here - and I imagine that's by choice.
I'm not saying emacs shines as an audit trail - I am saying the processes by which you work can be incorporated within emacs very easily, in a way that is unmatched.
I can see why people tend to ignore questions around specificity of why they like emacs - the goalposts never stop moving.
> You are missing the forest for the trees here - and I imagine that's by choice.
To flip this around, I'd say you're fascinated by the forest when someone else just needs a tree.
I understand the excitement and the freedom you're describing. What I think you're missing is that if others don't see a need for what you're describing it not only doesn't sound useful but sounds like the tool is definitely not aimed at them. This is not them being deliberately obstinate.
In the classic spirit of tortuous car analogies for technology - there is a benefit in having a car you are able to maintain yourself. But when asked why this car and not another if the examples all sound like "You could add six steering wheels and put a tyre on top and have the horn play jingle bells only on christmas if you wanted!" then it immediately puts people off.
Sorry but I entirely disagree with you here given the context - I am answering the question "Is there something substantial that Sublime users are missing?".
What I described is a substantial benefit of using emacs over sublime text.
If you are a programmer there are many benefits to total control over a system, and the ability to compose new functionality from a solid foundation of base functions. Now, you could happily use emacs forever without ever using that control, but the difference is with something like Sublime control you don't even have the freedom to make the choice as to whether you want to or not. It's out of your control, which is a downside when compared to emacs.
The OP wasn't asking why would anyone want control they were asking what are the benefits of emacs in comparison to sublime.
> What I described is a substantial benefit of using emacs over sublime text.
I think you're _assuming_ "more control" is a substantial benefit for them.
> The OP wasn't asking why would anyone want control they were asking what are the benefits of emacs in comparison to sublime.
Right, but if you don't see a strong use case for that control it isn't a benefit. The examples you gave were of changing the UI in a way I am not interested and a way of triggering emails and slack messages when I save a file which would be actively harmful.
Giving me the ability to do something I do not want to do is not beneficial. It's like telling me a car is better because it's so modifiable I can install a Margaritaville. That would be a bad change to me so it's not selling me on the benefit of this car.
> Giving me the ability to do something I do not want to do is not beneficial.
Expecting that an example should be tailor-made is not very beneficial, either. When I go out to buy a car, and the salesman tells me the trunk is big enough to fit a grown pig, this information is of use to me. Not because I smuggle livestock, but because this gives me a good idea of what the capacity is.
I'm not expecting a tailor made example, but as you say one that I can compare to my own situation.
Obvious things would be like vims make command - I'm not going to turn around and say a webpack example isn't relevant because I'm a python guy as I can see a direct parallel. But lots of this is standard and in major ides, or well written and tested plugins are available.
Saying I can send emails on a file save is not that useful as I can't see any reason I'd want to do that. I'd definitely not want to throw together a regulatory setup - that should not be something solved there (margharitaville comparison).
Broadly - it's not necessarily that the rest of us are missing some incredible wonderous world because we're too blind to see. It may simply be that the freedoms afforded are of little value to us.
Edit - I think I've got it sorted in my head why I don't care as much about this.
My problems are typically shared by lots of other people, and so solutions that suit me are readily available. I don't enjoy building my tools as much as I enjoy solving other problems with them.
It's the same reason I got rid of my mythtv setup and just bought something that worked to play videos. It was less flexible but did what I actually wanted better than my own setup and didn't require me to build and maintain it.
But just because I CAN do something in emacs that I would make a systemd service for now, isn't a good argument for WHY I should use it. Is it easier to add that functionality? Faster? Is it because you get some benefit from everything being in one program? What benefits does it offer?
I don't need my text editor to send email, monitor file changes, be an IRC client, and make me toast. Or do I? What difference does it make what programs do those things, as long as they work well and I can extend the functionality as needed?
You don't, there's an MTA for that, but for composing mail, filtering mailbox, searching and other text-related tasks Emacs has much superior interface.
> be an IRC client
Messaging consists mostly of text editing, especially in IRC, which doesn't have fancy stuff like stickers, GIFs, videos.
> What difference does it make what programs do those things, as long as they work well and I can extend the functionality as needed?
A consistent, self-documenting, extendable interface.
Why do you imagine it's by choice? It was requested that someone come up with an example of what you can do in Emacs that you can't do in Sublime and the examples given were unrealistic. Do you have a more realistic scenario where Emacs could do something Sublime, or VS Code, or Atom could not?
> I think that most companies would not find it adequate for the compliance regulations to be implemented "client-side". Mine would certainly answer your question: "how would you do the following in Sublime" with: "not at all", or: "please don't".
Yep, exactly. The most natural solution to this problem is some kind of git hook on the git server. Nobody cares about the changes I make locally before I push them to a branch.
Okay, so we need to make sure that anyone that could ever potentially edit this file has this exact same configuration setup and is using emacs?
That's dumb and flaky. You sound like one of those guys that spends thousands of hours customizing/tweaking things instead of just accomplishing tasks.
You could imagine that it's a rule in the company where GP works that programmers have to notify the boss when they change CreditChecking.java. GP's colleagues who are not using emacs would have to do it manually, while GP would do it automatically.
I never understood what people mean by the joke "emacs is a great operating system, all it needs is a decent text editor" but after reading your post I'm starting to.
1. Can you change where the command palette shows up in Sublime? In emacs (M-x is our Command Palette) I can not show it, I can show it as a full width pane that takes up 50% of the screen, or I could recreate the Sublime Text look and feel (top of the screen X width, Y height). This looks like a toy example but I'm trying to show that there is not a single part of emacs I don't have control over.
2. Okay how would you do the following in sublime;
Your company is getting into credit checking. As such you now are beholden to certain rules and regulations around the safety of your code, and now your product owners want an update every time CreditCheck.java is modified by someone. They want to be notified in a Slack channel and also by email. They don't care if the top 30 lines are changed, but anything after that is important.
In emacs, I would make a hook for CreditCheck.java that any time I saved the file, it would run through the changes, check if there is a diff from line 31 onwards, and if so send a slack notification and send-mail the diff to the product owners.
I would just open my settings.org file and add the emacs-lisp to do this and I wouldn't even need to restart to avail of it - I could just load-file and have it working. All within emacs. You could do this via a tangle of shell commands sure - but emacs lets you do it emacs-lisp with ease.
Programming in the real world is full of stupid like processes like this, and emacs makes it easy to accommodate them. (Not saying that you should accommodate them, but the real world can be messy)