> Reminder: VSCode, Visual Studio, IntelliJ, and Notepad++ all individually have a higher usage share among professional programmers
This is an artifact of the structure of the question. They're not asking what you use the most, they're asking what you use at all. Check all that apply.
So then you check Notepad++ even if you're a Linux developer who primarily uses vim or emacs but have Notepad++ on your rarely used Windows VM. You check Visual Studio or VS code if you had to contribute to an existing project which is tied to its build system, even if you avoid it whenever possible.
A quarter of all developers use vim. That's not a small number and it's not for no reason.
It is unclear how many coders do in fact. There's a very LOUD subset of programmers that absolutely do, because they'll tell you they do every chance they get. But if you only listened to the comment section on sites like this you'd think that nobody uses Visual Studio, IntelliJ, Eclipse, etc rather than them being more stereotypical for professional shops than Vim/Emacs.
If you look at Stackoverflow's survey[0] it gives you some idea, but because it is a [Select All that Apply] question it can inflate IDEs that are good for occasional/general purpose usage (e.g. Vim, Emacs, Notepad++, VS Code, etc). They should ask people what IDE they use MOST.
It is the same thing as Windows, you come to any programming message board you'd think 99% of programmers use Linux professionally, but in the corporate world (which is the majority of programmers) Windows rules the roost.
This is the wrong comparison. Notepad is like nano or ed. More powerful editors are available on Windows too.
> I just assumed any programmers still on Windows would be using Notepad++ or some sort of IDE.
Usually we do. But notepad can be invoked quickly from the command line, tends to handle huge files better than N++ or other IDEs, and is opened by default by a lot of utilities like git (you can change this, of course, but you might miss one). So it ends up getting used a lot for quick one-line changes and improvements are still welcome.
If you include full-blown IDEs in your definition of editor (which I think you should), Visual Studio was the most widely used editor among all the 19,772 people that responded to this question in the Stack Overflow Developer survey 2017.
Notepad++ was the second-most popular editor.
Sublime Text was the third-most popular editor.
Vim was the fourth-most popular editor.
Visual Studio Code, IntelliJ, Atom, Eclipse, Android Studio, PHPStorm, Xcode, NetBeans and PyCharm followed.
> How do you work in a large C++ code base using only a text editor? You will certainly need a couple of plugins, e.g. for linting, definitions/implementation look up, auto complete, etc. Then what is the actual difference to an IDE?
In the beginning I felt I needed linting, definitions, etc, so I began by stuffing Vim with plugins. Then I discovered that I was much more productive when I didn't use any of that, but actually kept the documentation close by.
Now I just remember most of the definitions or quickly look them up and combine the usage of console applications like grep, find, sed, etc. with Vim. I have about 3 custom made Vim functions that serve as shortcuts for at few of the things I need often.
Personally it's the most productive for me and the tool gets out of the way.
For those who need it because they are used to vim style editing most ides (at least on the Java side, + VS Code for everything else) has vim modes.
For those who have never used it and think they need it because it seems so cool and "everybody" uses it: You don't need it, at least not right now. Most great developers I know actually don't use vim for programming high-level languages, even if some of them use vim modes.
Instead I'd recommend:
- Use a decent mainstream IDE
- Memorize shortcuts for selection, search, replace, global search, global search and replace.
- Learn to use the included refactoring tools
- Learn to use the built in VCS tooling (or try and fall back to the console for VCS handling).
> As someone who uses Visual Studio for everything...
This is a classical hammer/nail example. Big red sign to me.
I'm a long time Visual Studio user, and that what you are saying is exactly the problem I see in MS-based developer circles.
Visual Studio is not appropriate for everything. As a matter of fact I don't use it at all for SPA development anymore, but just for server side stuff.
However, to give you few arguments:
1. VS Code and Sublime work on Linux/OSX/Windows and I do work on all three of those. Having the same tool is a great gain here.
2. Editing capabilities of VSCode and Sublime are definitely superior to Visual Studio, to the point that I find myself copying pieces of code from Visual Studio to Sublime, editing it and pasting back to Visual Studio.
3. Speed is not comparable. Visual Studio has become a bloated beast. Sometimes it takes a minute to start it, and then you enjoy busy freeze times whenever you push it just a bit harder than it likes.
All in all, I find my self being much more productive when not using Visual Studio for anything except pure .NET development.
> Some guys at work used to add Vim bindings to their IDE and I just didn’t understand it.
I‘m one of these guys.
I’m used to its text editing hotkeys from years of using it, but when jumping between a bunch of languages/environments it’s a lot easier to leverage the ‚integrated‘ nature of a lot IDEs (in my case Jetbrains).
Having to find, configure and remember how to use a bunch of different debuggers, linters, codegen tools and other tools manually is a pain
> My gut feeling is that people who haven't looked up from emacs or vi for a decade or two have no idea what modern IDEs are capable of out of the box.
I use visual studio in my day-to-day job for .net and C# work. I know what it’s capable and it’s a very impressive piece of technology.
What it doesn’t do is allow me to shape it to fit my workflow. I always have to adapt to fit the tool as opposed to the other way around, and any level of customization and extensibility feels extremely shallow compared to Emacs.
With Emacs I get everything my way. And I don’t think that can be said about any other tool I know of.
Needless to say I use both editors side by side and use whatever tool is best for the job at the time.
Edit: IMO standardized technologies like LSP is now bridging the gap for many (but obviously not all) IDE features. I suspect the imminent death of the “plain editor” is vastly exxagerated :)
> For people like me forced to come over from Visual Studio and other editors, it's a huge step down.
Sure, if your entire usage is the stuff that VS does well (which is a very narrow range compared to Code), and you are used to VS, it's probably an annoyance.
> I could rant for hours on how poor the Visual Studio Code quality is, but nobody will listen, because for people upgrading from Notepad, it's the second coming of Jesus.
Almost none of the things I do with Code I would have done with Notepad before. There are lots of non-IDE programmers editors that existed before Code. It may not be as good as VS or some IntelliJ variants for the use cases those IDEs are best for, but it's better for almost everything else than almost anything, and even for the things those major commercial IDEs specialize in, it's good enough for lots of specific use cases that when you need to do that plus other things, the context switch of using the commercial IDE for some tasks isn't worth it.
> Learning software is an investment, and if you have to switch to another application later, you lose some of that investment.
I think the author missed a critical fifth point that they hinted at here. In my opinion VSCode is trivially easy to be productive with and not much of an investment to get into. Whereas heavier IDEs and then Vim at the far extreme demand some serious “learn how to ride this bike before you can do anything resembling useful.”
I enjoy VSCode for a number of reasons, dislike it for a few. One of the main pluses is that I start off productive on day one and can electively add complexity to further refine the tool.
I love tools with user-selected difficulty levels.
> I don't particularly like vscode. It's heavy and slow and janky, particularly on older laptops. I don't like being sucked back into the Microsoft ecosystem after spending years getting away from it. But ultimately, I want to just get on with my job, and my job is not Lua Developer or Neovim Plugin Expert.
Personally I've started paying for intellij and using it with it's vim emulation. I know it doesn't solve the problem of being clunky on older laptops, but it is an amazing experience to use. I get the best of both worlds, I get really good vim emulation so I don't have to relearn editor shortcuts, I get the benefits of a modern full fledged IDE with many useful features that work out of the box with basically 0 configuration (debugger, git, tasks, etc.)
>Name one open source IDE which is superior to Visual Studio.
Here's a list in no particular order of open source editors/IDEs I would use over Visual Studios.
1. Vim.
2. Atom.
3. Brackets.
4. LightTable.
5. Codebox.
6. Slap.
> Or an open source database that is better than SQL Server.
Depends on what you mean by better and what compliance you need I guess? MongoDB can provide benchmarks better than SQL Server.
> Not to mention C# which imho is the best language out there...
Language preferences obviously change based on the needs of the developer. I prefer javascript just because I need a language that can run anywhere and I prefer prototypal inheritance over classical.
> In terms of documentation MS is light years ahead of everyone.
> It's disappointing to see from comments here that there's no true and performant Vim integration for VS Code.
I've been using vscodevim daily for almost 2 years, and (for me) it's totally usable. IMHO, much better experience than trying to turn Vim into an IDE.
This is an artifact of the structure of the question. They're not asking what you use the most, they're asking what you use at all. Check all that apply.
So then you check Notepad++ even if you're a Linux developer who primarily uses vim or emacs but have Notepad++ on your rarely used Windows VM. You check Visual Studio or VS code if you had to contribute to an existing project which is tied to its build system, even if you avoid it whenever possible.
A quarter of all developers use vim. That's not a small number and it's not for no reason.
reply