Put it another way - there are very few annoyances that I've noticed about it. It's very fast, it's configurable, it takes me 2 minutes to set it up on a new machine and have the same environment, regardless of the OS.
Here's a story:
I've recently started learning Clojure and I've been looking into editors which are best suited for it - I've tried LightTable, looks nice, but still rough around edges and slow, I've given a (new) shot to Emacs, but got discouraged when I realised I'd still have to learn all the shortcuts and stuff in addition to Clojure, IntelliJ Idea....
But then it struck me - does Sublime have a Clojure REPL ? It sure does and it's very nice.. 10 minutes later I was hacking away with a split screen and REPL, just like in Emacs. And I didn't have to do anything complicated, no files to edit, no environment vars to set up, it was easy.
Then, sorry if it sounds nit-picky, but hacking some clojure with a split-screen and REPL is not just like emacs. Cider [1] has like a million features that elevate it above just a repl + code. Then there's clojure refactor mode [2] which lets you rename files and keep the namespaces in sync, unwind threaded forms, and 30+ other things.
[1] https://github.com/clojure-emacs/cider
[2] https://github.com/clojure-emacs/clj-refactor.el
The examples in [3] showcase the features of clj-refactor rather neatly.
[3] https://github.com/clojure-emacs/clj-refactor.el/tree/master...
Edit: For me I do my coding/most everything in vim but if I get a new project I have to learn about I find it much more easy to navigate an unknown project in Sublime while I get it sorted in my mind.
For me, the thing that sets sublime apart from vim and emacs is the fact that it is a full gui app. Things like go to definition, autocomplete, build panel, command pallete, sidebar, context menus, are all technically possible in vim, but hacking these features into a command line interface always ends up seeming clunky, confusing and slow.
This also helps discoverability of features. If I want to do something, 99% of the time I can just search for the command in the menu or in the command pallete. Then they keyboard shortcut is clearly visible, and if it is a feature that I expect to use often I will make note of it. In vim (for me at least) this would require searching online for how to do something plus 10 minutes memorising the obscure commands to type into the command line.
Compared to IDE's, sublime has most of their features that I use on a regular basis, but is comparatively light to use. I'd much rather pop open sublime to quickly edit a file than launch eclipse.
I can't speak for vim, but Emacs is also a "full gui app." It has go to definition (in fact, I wouldn't be surprised if this idea was invented in some incarnation of Emacs), autocompletion, and various other such features like gdb integration and build message hyperlinking. The discoverability argument applies as well.
I don't claim it's a good or bad thing, a lot of people love emacs because of it's buffer/window centric approach, but it's not even remotely close to what you would expect from a modern gui, so Emacs is still oddball when compared to all the other gui's, which is why new users still struggle with it even though on paper Emacs has all the features other gui editors have.
What I wouldn't say is fair, though, is characterizing something as incomplete and especially improper simply for being different from what you're used to.
I didn't tell them to offense Emacs fans, so sorry if you're offended. And the point is not being different from what I am used to, it's being different from what the rest of the world used to, only the Emacs users are accustomed to the Emacs convention of graphical ui's, and the way Emacs does it is not a proper gui in the sense that they invented their own conventions and they're different from every other GUI convention in the world. I'm not implying anything insulting here.
Incomplete GUI is another thing, yes, Emacs gui is incomplete because it does not use all existing GUI facilities and conventions to the full extent, and prefer existing Emacs ui facilities instead of gui toolkit's. Again, being incomplete is their choice, that doesn't mean it's a bad thing as I said in my previous comment (and a lot of people actually love it), but if you find that offensive I can't help with that.
I really have no problem with criticism of Emacs (provided that it's true, and now that you've expanded a little, I think what you're saying is true), but if you feel that familiarity (whether everyone's or just someone's) really sets Emacs and Sublime Text apart, call it criticism! :)
I want to explain the terms again. First of all "not proper" or "incomplete" isn't the adjectives I've used for Emacs itself, but the GUI of Emacs. I did use proper in the sense of common GUI idioms and conventions, and I'm not a native speaker, so if you think that was not a right choice, you're probably right.
For the incomplete, again we are not talking if Emacs is complete or not, we are debating if Emacs is a "full gui app" or not, and since I don't think it is using gui facilities to full extent (and instead it just creates a basic gui window, shows some menus and prompt dialogs here and there, and then handles everything with it's own mechanisms like windows and buffers), it's not a "full gui app". Again, if you have a better word of choice for it than the words I chose, I'd be happy to accept them. Sorry it caused trouble more than it worth.
If all these things weren't objectively better in some way, then the gui app could just draw lines of text instead of windows, borders, selections, themes, images, and animations. But it doesn't, because lines of text is a worse interface for almost everything except the actual buffer you are editing.
I know vim very well. But I only use it out of necessity now when I'm on remote machines, because it is worse than a good gui app, precisely because it is restricted to its grid of text interface.
I agree with almost all of this, which is why I use Emacs' graphical interface instead of its terminal interface.
You can't be seriously saying this because Emacs' graphical interface lacks half of them. Here is a breakdown:
> Smooth scrolling is better than line-based scrolling.
I can't see any smoothness in scrolling of Emacs' graphical interface in Linux.
> A pop-up is better at alerting the user that input is needed than a small prompt at the bottom of the screen.
Only a handful of 3rd party packages use some badly-imitated pop-ups and I've never seen anything even resembling a pop-up in Emacs' graphical interface (maybe except the GTK+ open file dialog)
> The command palette, which is clearly visually distinguished from the surrounding text by a gui border, is better design than yet more lines of text indistinguishable from the rest.
I can't see anything resembling the command palette Emacs' graphical interface. Everything is either use the minibuffer or open a new window.
> Current selection highlighted in a bright, theme-able colour is better than just toggling the background colour. Little graphical icons next to lines indicating changes, breakpoints, etc is better than a random text character put before the line. Smooth animations are better at conveying change than instantaneous changes to text.
I guess we have those.
> Filesystem trees with pixel-wide connector lines and icons indicating file type, displayed in a smaller font than the main text are better than a file tree drawn with ASCII art.
Speedbar isn't even close.
> The fact that key bindings can interfere with your terminal emulator or shell's keybindings is an annoying restriction.
N/A
I'll grant that Emacs doesn't have this. Most programs don't either, though, and in the few I've seen that do (e.g., Firefox), it slows scrolling down so much as to make it practically unusable, even if it does make it easier to track the text with your eyes.
The real usability problem with Emacs' scrolling, in my opinion, is that the default scroll increment is too large. That's easily fixed. Some people also don't like that keying the cursor past the top or bottom of the window causing a large jump as the displayed region recenters around the point, but again, that's easily fixed.
>Only a handful of 3rd party packages use some badly-imitated pop-ups and I've never seen anything even resembling a pop-up in Emacs' graphical interface (maybe except the GTK+ open file dialog)
Most prompts (e.g., yes-or-no prompts, the password prompt for auth-sources) initiated with the mouse use pop-ups. Between that and the file chooser, what exactly is missing?
As for alerting the user that input is needed, Emacs doesn't generally require input from the user except when the user has just deliberately issued a command which requires input, in which case they don't need to be alerted (the one exception I can think of is when opening an auth-source may fail, and Emacs does use a pop-up for authorization then). What's more important in the long run is how easy the input method is to use, and unless you're already using the mouse (in which case Emacs does use pop-ups, as noted above), pop-ups are not easier to use.
>I can't see anything resembling the command palette Emacs' graphical interface. Everything is either use the minibuffer or open a new window.
The command palette looks a lot like helm-M-x to me.
>Speedbar isn't even close.
I didn't say it was. Now, I don't know about connector lines, but direx looks the same to me as Sublime's file tree sidebar and neotree even has icons.
You're right on spot with that one but I'm not sure it's that easy. I mean, I know there are some variables for it, but I'll try to explain with my anecdote. The scrolling issues you mentioned was felt so alien in my first try of Emacs, so it was the first thing I set out to fix in my second try. I found the relevant page in Emacs wiki, and damn, there was like 10 or more solutions, some similar, some not, each with their own issues (according to the wiki page, not that I've tried all). Then I went further with a Google search, and there was even more different solutions. As a result, I gave up on it and I still use the defaults even though I hate it with passion.
Setting a sane default for such a user facing thing must be top priority, not less.
> Most prompts (e.g., yes-or-no prompts, the password prompt for auth-sources) initiated with the mouse use pop-ups. Between that and the file chooser, what exactly is missing?
(I don't know what unfamiliar had in mind so I'll try to explain my own thoughts on the this.)
Things like search/replace/goto doesn't use pop-ups. But you're right that they don't need to, thanks for clarifying that. I was actually thinking about things more like dialogs rather than yes/no prompts. Again the window-centric approach I mentioned elsewhere in this thread. I don't have exact things in my mind, but yeah, command palette again. I would much prefer C-x C-b to show a dialog/popup which immediately gets focus, and in which I can either easily select the buffer or discard the dialog easily in case I change my mind. Or the About Emacs screen. I know it's not a functional thing but still one would expect it to show a dialog window instead of a buffer. Or the menu bar menus. I don't have a specific pain point with it but the whole thing still feels very odd. There is a lot of commands there, some are checkboxes, some fire up some prompts etc. I'm not sure but I guess some of them would be hidden under a dialog window in a more traditional gui application.
I don't think I'll be able to get more specific in this issue as it falls into the realms of "x feels better but I don't know why". The only thing I know is the extreme use of windows and buffers and it doesn't feel right. I'm sure it feels just right to Emacs veterans but as a newbie I can tell it doesn't to the rest.
> The command palette looks a lot like helm-M-x to me.
I've looked at it and it seems nice. Thanks.
>>Speedbar isn't even close.
> I didn't say it was. Now, I don't know about connector lines, but direx looks the same to me as Sublime's file tree sidebar and neotree even has icons.
I checked both of them and I'm sure none of them are what unfamiliar had in his mind when talking about "Filesystem trees with pixel-wide connector lines and icons indicating file type, displayed in a smaller font than the main text are better than a file tree drawn with ASCII art." Both as ASCII art as it gets. Both are still rendered inside a buffer and they use a different font than the other gui elements in the system. The only different thing is neotree can display icons and that's all. Both are only marginally better than speedbar and they're joke when evaluated according to unfamiliar's criterias above.
Vim is "way to go" editor for me on remote connections to server. But on my local machine, vim requires lots of configuration in order to let me be productive (at least for me). For example, Vim's regex engine is slow comparing to Sublime, which will be freezing for 2-3 seconds when you are doing some complex search and replace. This can be fixed by some config, but Sublime doesn't have this problem at all.
Sublime is easy to use from dummy programmers to experts. Not Emacs or Vim.
IDEs are mostly specific to a programming language, if not, they are memory hog to handle everything and takes around a minute to get ready for me to start typing code.
One of the best features of Sublime is that, it lets to decide if you want a text editor or a IDE like experience from it. Customise it however you want.
Of course it is not for everyone, I guess the best is to give it a try and see yourself.
The key-bindings are based on modern GUI standards. The configuration uses simple JSON files. It provides most commonly used features as standard.
Vim/Emacs are still probably more powerful once learned, but after using vim for a few years (admittedly not trying that hard to improve), I felt I was able to get to the same efficiency in Sublime in a few weeks.
I've used it pretty much full time for three years programming JS. Autocomplete is non-existent in JS, and WebStorm was just too bulky / laggy for me. The SublimeLinter plugin was enough error handling for me, and there was a Grunt listener running at all times running other validations and doing autorefresh.
Sublime is just another alternative. No real reason to use it if you prefer what you already have. It's just a matter of trying it out and seeing how it works for you.
Note: I no longer use sublime. vim+ctrlp+other plugins has replaced it for me.
I know that both vim/emacs have very handy package manager, but they don't ship with vim/emacs.
My impression was ST gives you something that is almost as powerful as Emacs or Vim without requiring nearly as big of a shift in how you deal with text in the other applications you use all the time. That and the fact that it looks prettier and more like a platform-native application I think explains the appeal. The amount of customization needed didn't seem all that much less to me.
The other thing is that when I do want to customise something in ST, it will usually just involve editing a single obvious value in a JSON file, rather than hunting through docs to find out what keywords I needed to add to my vimrc.