unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* My perspective as a mid-level user on pros/cons of different editors
@ 2020-05-20  0:29 Rudi C
  2020-05-20  1:36 ` Dmitry Gutov
  2020-05-20 12:25 ` Stefan Monnier
  0 siblings, 2 replies; 58+ messages in thread
From: Rudi C @ 2020-05-20  0:29 UTC (permalink / raw)
  To: emacs-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 8513 bytes --]

# Jetbrains IDEs

Heavyweight, hardest to customize, usually the most feature-rich and
performant. I like them best for static, compiled languages such as rust
and scala, as they are the most powerful and robust there. My experience
with Pycharm has been lousy (The IDE suddenly said everything was
undefined. I switched back to my emacs after wasting some time
troubleshooting the problem.). Good support for frameworks and inline,
inner languages such as HQL (a SQL variant for ORM in Java). The
documentation panel doesn’t wrap correctly in many languages. No remote
editing support.

Adding support for a new language is usually as easy as searching for a
plugin and installing that. Things work out of the box. Well.

Can’t run in the terminal. Closed source, though plugins tend to be open
source.

# vim/neovim with little config and plugins

Extremely lightweight. Great remote editing with scp. I also use vim
emulation everywhere else, so I obviously like that. Vim modal editing and
minimalism lends itself well to use on remote terminals directly,
especially on iOS. The lack of configuration also means it never breaks, or
needs to wait to index, or whatever. It’s also either preinstalled or easy
and quick to install on unix machines.

Obviously, little support for any IDE feature.

## Spacevim

Somewhat slow-ish. The configuration is also specific to Spacevim, and so
locks the user in, and makes following documentation elsewhere online
difficult. The Spacemacs-inspired keybindings are a delight, and so are
some miscellaneous features Spacevim enable by default. Needs patched fonts
to display correctly, but doesn’t install them for you automatically. I
personally have an alias that invokes neovim with Spacevim, but I keep the
default config of my vims minimal. Spacevim also is somewhat buggy, and
their support community is weak.

Spacevim has modules for different languages, which in my not so informed
opinion are not all that good. Seemed out-of-datem and unmaintained to me.
This, though, is a problem all modular starter packs (Spacemacs, Doom
Emacs, Spacevim) except VSCode share, more or less, with Spacemacs’ being
the best IMO.

# Plain Emacs

I have never tried plain, unconfigured emacs except for reporting bugs. My
first impression of its UI is bad. I think hiding the toolbar improves the
UI.

## Spacemacs

Not well maintained. PRs can be very slow to merge. Master branch is
basically dead. Issues also don’t seem too well; The good ones include a
workaround in the comments but no fix in the repo, and the bad ones are
marked “stale” by a bot with little progress. Still, the community is
pretty helpful and the workarounds, ahm, actually work, so not that bad.
Has lots of (LOTS OF) features and cruft, which can occasionally make
Spacemacs buggy and slow. Tramp never worked for me in Spacemacs, for
example. Spacemacs famous keybinding scheme rocks, and is the best one I
have seen in any software. The configuration (at least the version I
started with, perhaps it has changed) mixed private Spacemacs config with
user elisp code and emacs customization, which is a bad practice. Spacemacs
supports a modular pack system, and names them “layers.” These layers are
unmaintained and unoptimal in my experience/opinion, but they nonetheless
provide the best JustWorks experience in the emacs/vim world.

Spacemacs can become quite heavy and slow to start (perhaps I have too many
layers active). Daemon mode recommended.

## Doom Emacs

Friendly maintainer and good community in discord. Provides a snappy UI and
good defaults. Enables lots of good features by default, but few bad ones.
Does not feel crufty. Fast to start. Somewhat lightweight. Supports modules
for adding functionality like language support, but again the modules are
not that good. I think they are worse than Spacemacs, but better than
Spacevim; Idk. Still has a few bugs and rough edges (for example, you need
to disable solaire-mode for the daemon mode working correctly), but much
much better than Spacevim and Spacemacs. Copies Spacemacs keybinding
scheme, better than Spacemacs itself IMO.

The configuration system is the best one I have seen in any editors.
Provides good macros for helping one customize things. I imagine copying
the relevant code should be easy, so minimal lock-in, hopefully.

## Emacs in general

The most extensible software I have ever seen. The easiest to extend
between the editors. Horrible support for most languages; One needs to
spend a lot of time to configure support for a new language, and things
keep breaking when anything updates or even randomly. Most languages won’t
ever get good support even after substantial time invested in configuring
them. Adding IDE features tends to make Emacs slow. My best experience has
been with elisp, clojure and coq. My worst experience has been (probably?
Most of my experience in language support has been terrible anyways) scala
via (now defunct) ENSIME. Just today, I tried getting julia to work via
lsp. After spending an hour or two, I understood that this simply was nigh
impossible with Julia 1.4.
In summary, Emacs is good for some specific well-supported languages (even
then with lots of harassment and breakages), and obscure languages that are
not supported well anywhere (e.g., verilog), and non-code text editing.
It’s also an engine one can build one’s own software on, though I think it
might be that using other tools (perl, fzf, ripgrep, ...) might be easier
at least in the short term.
Emacs is also used for things like Twitter and Reddit. I found these uses
badly supported, and not pragmatic. They appealed to my inner nerd, but I
think a dedicated CLI will be better, and the original website possibly the
best.

tramp mode supports remote editing.

Best experience in REPL-orinted programming between all the editors. Emacs
itself is one huge REPL.

Free software.

# VSCode

Everything (almost always) just work. Supports lots of languages, and
supports them well. Adding support is easy as easy as searching for the
language and clicking install. Customizing predefined options is a breeze
with both good GUI support and good JSON support. Extending stuff without
writing a verbose plugin is pretty much impossible. Even plugins are only
offered a limited API for extending VSCode.

Can’t run in the terminal.

Good remote editing support. Beautiful UI. Inefficient because JS. Very
well maintained, and regularly GROWS BETTER. Next year this time it will
probably be THE notebook editor. Professional culture in maintenance also
means the needs of experts are deprioritized. Does not support a
documentation panel, though a documentation popup is supported. While
language support is top notch, other good features are not as mature as
emacs/vim.

The most innovative of the editors listed here.

# Conclusion

With VSCode around, emacs is simply not worth the investment for new users
IMO. I think most of the automation value should be realizable by using a
combination of VSCode extensions, unix scripts, interactive CLI apps, and
GUI scripting tools. To make emacs viable again:

- Complete, first-class LSP support. Without this, all the fancy features
of emacs are basically useless. Remember, a car needs first and foremost to
move people from A to B. A stationary car with a rocket launcher is cool
but also not much of a car.
- Maintained module systems a la Spacemacs and Doom. Extensibility is
great, but this is no excuse to have no defaults or bad defaults. As the
market is asserting, most of the value can be achieved via generic
defaults. All of that extensibility is less than 10-20 percents of the
value of a good, capable IDE.
    - Note that the above should make breakages less likely, as modules pin
their packages to specific commits/versions.

Of course, it takes more than making emacs viable to make it popular, but
as things stand, emacs is not worth learning even for someone who wants to
become a power user. It’s of course still worth it for those of us already
invested in the platform (I personally use Doom Emacs plus my own config as
my main editor), but NOT for new users. I fear that the situation will only
get worse in the future, as VSCode enjoys both being a popular opensource
project in the popular JavaScript language, and a pet project of Microsoft.

[-- Attachment #2: Type: text/html, Size: 9894 bytes --]

^ permalink raw reply	[flat|nested] 58+ messages in thread
* Re: My perspective as a mid-level user on pros/cons of different editors
@ 2020-05-20  8:29 ndame
  0 siblings, 0 replies; 58+ messages in thread
From: ndame @ 2020-05-20  8:29 UTC (permalink / raw)
  To: Emacs developers

[-- Attachment #1: Type: text/plain, Size: 1524 bytes --]

> Of course, it takes more than making emacs viable to make it popular, but as things stand, emacs is not worth learning even for someone who wants to become a power user. It’s of course still worth it for those of us already invested in the platform (I personally use Doom Emacs plus my own config as my main editor), but NOT for new users. I fear that the situation will only get worse in the future, as VSCode enjoys both being a popular opensource project in the popular _javascript_ language, and a pet project of Microsoft.

Emacs can't really complete with VSCode, because it plays catch up in most areas (display, extension language, out of box the defaults, language support, etc.) and vscode is developed like crazy, it has a new release every month with new features and bugfixes:  [https://code.visualstudio.com/updates](https://code.visualstudio.com/updates/v1_45)

Emacs for me is more like a portable application platform where I can quickly create customized interfaces for various tasks regardless of the OS I use. E. g. if I want to display some information with interactive features to access an api, for example, then I use emacs, because for me it's much faster to make a GUI in emacs than making a GTK gui and then on windows having to install the GTK libs to use it, etc.  Emacs contains everything I need in a single package, so it's like my mini portable OS.

Emacs shines at this, though I don't know if there's a widespread demand for such usage. Maybe there is, just people don't know about it.

[-- Attachment #2: Type: text/html, Size: 1667 bytes --]

^ permalink raw reply	[flat|nested] 58+ messages in thread
* Re: My perspective as a mid-level user on pros/cons of different editors
@ 2020-05-21  9:55 ndame
  2020-05-21 11:50 ` Arthur Miller
                   ` (2 more replies)
  0 siblings, 3 replies; 58+ messages in thread
From: ndame @ 2020-05-21  9:55 UTC (permalink / raw)
  To: Emacs developers

[-- Attachment #1: Type: text/plain, Size: 1021 bytes --]

> As a user, I really want to be able to jump to
> eclaration/implementation/find references/get completion to work etc. I
> ouldn't care as slightest how it is implemented as long as it worked
> ell. Unfortunately (or fortunately) I know all the minutiae details on
> ow it works in my copy of Emacs since I had to install each and every
> acakge and configure them all together to get that working for me.
> hich indeed took quite some time untill I learned what I need, how to
> onfigure it and finally how to use it.

As you did it already how hard would it be you think to create a package which does this automatically?

I'm wondering why somebody hasn't made this already.

I don't mean a package in ELPA, but rather in MELPA, so the package is not restricted from downloading and installing a server, etc it could do anything what is needed to set up the configuration. Why aren't there packages for various languages which set up the completion/go to definition stuff automatically? Is there a technical problem?

[-- Attachment #2: Type: text/html, Size: 1248 bytes --]

^ permalink raw reply	[flat|nested] 58+ messages in thread

end of thread, other threads:[~2020-05-24 13:22 UTC | newest]

Thread overview: 58+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-20  0:29 My perspective as a mid-level user on pros/cons of different editors Rudi C
2020-05-20  1:36 ` Dmitry Gutov
2020-05-20 11:35   ` Rudi C
2020-05-20 12:18     ` João Távora
2020-05-20 12:57       ` Dmitry Gutov
2020-05-20 13:01         ` João Távora
2020-05-20 13:05           ` Dmitry Gutov
2020-05-20 13:10             ` João Távora
2020-05-20 13:14               ` Dmitry Gutov
2020-05-20 13:32                 ` João Távora
2020-05-20 13:59                   ` Dmitry Gutov
2020-05-20 14:06                     ` João Távora
2020-05-20 14:13                       ` Dmitry Gutov
2020-05-20 14:31                         ` João Távora
2020-05-20 14:45                           ` Dmitry Gutov
2020-05-20 16:22                             ` João Távora
2020-05-20 17:23                               ` Dmitry Gutov
2020-05-20 20:14                                 ` João Távora
2020-05-20 20:56                                   ` slang
2020-05-21  9:40                                     ` Arthur Miller
2020-05-20 21:21                                 ` Stefan Kangas
2020-05-20 21:26                                   ` Dmitry Gutov
2020-05-20 21:41                                     ` João Távora
2020-05-21  9:42                                       ` Arthur Miller
2020-05-21 15:27                                         ` Drew Adams
2020-05-22  3:09                                           ` Richard Stallman
2020-05-20 21:43                                     ` Drew Adams
2020-05-20 14:04                   ` Stefan Kangas
2020-05-20 14:07                     ` Dmitry Gutov
2020-05-20 14:10                       ` João Távora
2020-05-20 14:14                         ` Dmitry Gutov
2020-05-20 14:37                           ` João Távora
2020-05-20 14:43                             ` Dmitry Gutov
2020-05-20 16:16                               ` João Távora
2020-05-20 17:57                             ` andres.ramirez
2020-05-20 18:04                               ` Dmitry Gutov
2020-05-20 18:16                                 ` offtopic emacs-and-introspection (was: My perspective as a mid-level user on pros/cons of different editors) andrés ramírez
2020-05-20 15:23                       ` My perspective as a mid-level user on pros/cons of different editors Stefan Kangas
2020-05-20 18:19                         ` Dmitry Gutov
2020-05-20 20:11                           ` João Távora
2020-05-20 21:25                           ` Stefan Kangas
2020-05-20 21:31                           ` Stefan Kangas
2020-05-20 14:08                     ` João Távora
2020-05-20 14:00                 ` Rudi C
2020-05-20 14:04                   ` Zach Pearson
2020-05-20 12:25 ` Stefan Monnier
2020-05-20 16:38   ` GNU Emacs distribution (was: My perspective as a mid-level user on pros/cons of different editors) Thomas Fitzsimmons
2020-05-21  3:45     ` Richard Stallman
2020-05-20 20:18   ` My perspective as a mid-level user on pros/cons of different editors Tim Cross
2020-05-21  8:24     ` tomas
2020-05-21 15:33       ` Stefan Monnier
2020-05-24  3:53     ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2020-05-20  8:29 ndame
2020-05-21  9:55 ndame
2020-05-21 11:50 ` Arthur Miller
2020-05-22  3:11 ` Richard Stallman
2020-05-23  1:25 ` chad
     [not found]   ` <GTmNlOr5OqjfN4SOp6r78s9A4HiHYQC65fzzEWAZwcvfNHRYfaqjykOrg15puOVC5_yNznldTwWTPgzBAavB2T-od_sT-TIxNNQeqTOHrSg=@protonmail.com>
2020-05-24 13:22     ` Arthur Miller

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).