6 ms·
> That said, if you’re new to programming, a modern IDE could be helpful. With code completion, Git control, and even automatic deployment systems, modern IDEs
by brlewis 6y ago
> That said, if you’re new to programming, a modern IDE could be helpful. With code completion, Git control, and even automatic deployment systems, modern IDEs are a Swiss Army Knife of features.
Just in case anyone reading here is as colossally ignorant as the writer, let me state for the record that emacs has those features. I don't use vim but I'm pretty sure it has them too. An accurate list of how newer IDEs benefit newbies follows:
1. Familiar key bindings
- lawn 6y agoFor git in Vim I use the fugitive plugin[1] and I find it's really good. If you find it lacking in any way you can always combine it freely with other plugins. For instance gitgutter[2] that shows diffs in the sign column, giving you an easy view of which lines have been added, removed or changed. There are solutions for the others too. Neovim has for example support for the Language Server Protocol[3] that gives you code completion, jump to definition and the like. The only thing with Vim/Emacs at this point is that you have to do some configuration and find some plugins to get the IDE features you want. For me personally, as I use Vim for everything, it's not that big of a deal. [1]: https://github.com/tpope/vim-fugitive https://github.com/tpope/vim-fugitive [2]: https://github.com/airblade/vim-gitgutter https://github.com/airblade/vim-gitgutter [3]: https://nathansmith.io/posts/neovim-lsp/ https://nathansmith.io/posts/neovim-lsp/
- dheera 6y agoBiggest problem with IDEs is they are a big in-your-face hurricane of features that is often too much. As a newbie you want to create a single-line Hello World program but the goddamn IDE wants you to create a workspace, and then within that workspace create a project, and within that project create a bunch of infests and manifests and resources and XML files, and pretty soon you're lost.
- garmaine 6y agoTo be fair, emacs and vim suffer from other equally baffling problems for newbies. Otherwise this wouldn't be such an upvoted question on SO: https://stackoverflow.com/questions/11828270/how-do-i-exit-the-vim-editor https://stackoverflow.com/questions/11828270/how-do-i-exit-t...
- TeMPOraL 6y agoThat's just a meme at this point; pretty much every intro resource for vim gives an answer to this specific question.
- scubbo 6y agoAnd the fact that that information needs to be repeated so often clearly highlights that it's not intuitive from vim itself.
- berkes 6y agoWhat is unintuitive, is the concept of modes. One, because it is a unique concept and Two because many people who accidentally end up in vim have no use for it. Once you grasp this concept, exiting vim is one of the most intuitive actions: * [ESC] <- This is the "modal" part, the hard part, what you probably call unintuitive. * : <- The other part of "modal", difference between commands and navigation. Also a unique concept, that is not hard to grasp, but probably hard to know that one has to grasp it at all. * quit, exit, close * Some error may show up, telling you what to do instead, E.g. * :quit! That is all: `[esc]:quit` a series of keystrokes that make little sense when you are not familiar with some basic concepts of vim. But entirely guessable, without reading a single line of help, if you do grasp the very basic concepts.
- Rayhem 6y agoI'm a native vim-er now so a lot of it is second nature, but there's absolutely nothing about "modal" that suggests one mode is "commands + navigation" a priori. For instance, why isn't navigation a command? It's not necessarily bad that it's unintuitive -- lots of things require you to know something before you interact with it -- but to suggest that anyone who doesn't immediately guess the syntax has somehow failed only introduces needless elitism.
- berkes 6y agoI think we are saying the same thing. I was pointing out that the basic concepts like "modes", "commands" and "navigation" are unintuitive. But the commands, or navigation itself is not. And from that, I state that it is not unintuitive to "close vim" in itself. But that "using vim at all" is.
- jnxx 6y ago> Biggest problem with IDEs is they are a big in-your-face hurricane of features that is often too much. This is another aspect. They suck up attention, which is a scarce resource. It is just like you start a web browser to look up some documentation, and it shows a dozen of interesting sites you might want to read because the browser developers got some money from these sites, or whatever. Good software typically has a sparse feeling (depending on which are its intended users), in the sense that it does not distract. But this is just a symptom of a bigger issue that they are not really friendly to the developer.
- skummetmaelk 6y agoNot only does Emacs have those features. Magit is far and away the best git interface available.
- thiht 6y agoCan you explain why? Reading their official website, I can't figure out what it does or what it looks like.
- zingplex 6y agoScreenshots [1] If I had to describe it, I'd say it visually shows you your current git status and lets you manipulate it using an interface that provides a thin wrapper around git commands. It provides all the functionality of git in a convenient and discoverable way. [1] https://magit.vc/screenshots/ https://magit.vc/screenshots/
- TeMPOraL 6y ago2. More features are part of core distribution, and they're developed by focused, professional[0] teams, so they end up being more polished[1]. -- [0] - I mean primarily the sense of "being paid for it". [1] - Well, except for Eclipse. At least as of few years ago, default Eclipse had worse overall experience than even my worst beginner Emacs configs.
- scubbo 6y ago> as colossally ignorant as the writer Your bias is showing. They never said that Vim/Emacs _doesn't_ have those. And modern IDEs generally make them much more discoverable and usable. No-one is saying that "Vemacs" can't do everything that IDEs can do - they clearly can, with sufficient configuration, plugins, and so on. But the IDEs are generally "ready to go out-of-the-box"
- brlewis 6y agoYou are technically correct that they never said vim/emacs lacks those features. A tiny bit of reading comprehension effort can illuminate the intent of juxtaposed sentences.
- jnxx 6y ago> Familiar key bindings Well, Emacs user interface and key bindings are by experience much more stable over time, especially if you consider that in ten year's time, that "new" IDE probably is probably not going to be around any more. That also means that some default configurations do not have a "modern" feel like copy/paste key bindings. However stability in the long term is important for users of a complex and powerful program, which Emacs is. And if you want, you can always change the key bindings to your liking. There are also options like the betterdefaults package which modernize bindings and add features without breaking anyones flow.
- commandlinefan 6y agoActually I disagree with the premise itself (that if you’re new to programming, a modern IDE could be helpful). There's a LOT of distraction in an IDE, and it does a lot of magic behind the scenes that you need to be aware of, because sometimes it does something unexpected and you have to be able to tell it not to. If you're learning something, you need to be able to focus on the piece that you're learning, master it, and then expand from there - that's how everything is taught, for good reason.