That being said, most of the major editors are pretty great today. There's great support for all the top 10 languages in multiple editors, so if you want to write Go in VS Code, or Elixir in Atom, or Python in vim, you're probably going to have a good time (or at least the editor will do quite a lot for you). It's a great time to be a software developer!
Need to look up function args or a docstring? It doesn't have a separate thing that statically analyzes the code. It asks the running process. Want to see what an updated function outputs? It can use the state of the running process. Trying out some other change? It doesn't have to reload anything, lose or persist state, etc... it just updates the running process and you go from there. Want that running process to be on a remote server? An Android device? A page running in a web browser? Your powerful desktop while you work from a small laptop while lying in your hammock? No problem.
I don't understand why this hasn't caught on to the same degree with other languages. Most of them have REPLs and introspection tools, so they could behave this way.
There's a package for the nodejs ecosystem called "nodemon" https://github.com/remy/nodemon
That restarts the webserver on filechanges automatically.
The former is very basic and I don't really use it, but nodemon is quite nifty.
At first I used Counterclockwise as my IDE, but eventually switched to Emacs. I still use CCW to step debug something because it has a visual debugger, but it's rare.
I used to curse at Clojure libraries out there because they had no documentation. Then I looked at the library itself and saw it was written in 25 lines of code... Documentation would just make things harder. No other language has this power with this simplicity.
Sadly people can't handle the parenthesis. It's a canard. Move the open paren one word to the left and use prefix notation and you stop seeing them entirely. Give it a go!
There was a large selection of add-on GUI widgets and non-visual components, free and commercial, you could make your own and you could even modify the core Visual Component Library (the source was included).
If you needed to talk to other applications via COM, or directly to the OS, or load C/C++ libraries, it was easy. And you could do all that in one integrated IDE, instead of having to learn and orchestrate a jumbled mess of different tools.
It also didn't hurt that by targeting Windows only back then, you had something like 90% of the potential market covered.
It was bliss while it lasted.
Second choice - Swift and Appcode, Swift is the most productive language I have used so far - all the static type checking but also it feels like a dynamically typed language.
When I switched over to JavaScript I miss that a lot. Of course JavaScript just doesn't lean itself that well to automatic refactoring and the build process is significantly more complex too, so you only get local syntax checking usually in the editor.
And then eventually VS.NET got auto-help where it would should you documentation in a side window if you typed in a function or hovered over one. That was nice when using APIs you were not familiar with.
You could actually find all references/usages and be sure it was actually correct. I could click on an include and it would actually open the file no matter what and if it was referencing a DLL/Assembly it would immediate give me a decompile/documentation link.
The downside of the visual studio approach was the lack of text-based configuration. I spend hours adjusting settings in project files. (This was addressed via CMake when dealing with C++ but I do not think there was an equivalent for C# that I was aware of that the time.)
Add a 34-inch ultrawide monitor (Dell has been best with color accuracy for me) to the mix and a nice keyboard, makes all the difference in the world!
Youcompleteme (works great for me, but I think I had to tinker with it) NERDTree NERDcommenter Gitgutter pdb (experimenting with it)
Probably forgetting something.
I’m a product guy by trade. Currently, focusing on data-related products and functionality, but have done SaaS, telco, etc.
For work I recently had to write some QA tools to extract data from BigQuery and verify that the payload is correct. Vim and google’s bq cli made it a lot easier than I expected.
I never need to install a package system, use VM, install a database engine or anything like that.
Maybe the most was download some components from some site (I remenber was a large forum back them).
Integrate REPL, form builder, report builder, rdbms, database builder, query builder, menu builder...
-----
Second best was Delphi 3/7.
From integrated testing, database source viewer up to working with remote interpreters, basically everything is included to make you focus on work without leaving the IDE.
The same goes when doing JavaScript, I'll go straight to WebStorm.
Need to mention my go to OS is ArchLinux with the latest KDE on top of it. If I have to use Windows, then I'll fire up an Arch Linux VM and live with a SSH session.
Optimized for not using your mouse. It's not so much about literally saving you time since typing is only small portion of your day, but being able to express yourself with less effort goes a long way in keeping you from feeling mentally drained
Feedback is close to instant, tools are all open for improvements and the people running these projects are accessible.
I have yet to encounter a better SQL IDE. In particular, it has fantastic auto complete and it has drivers for pretty much every database under the sun right out of the box.
Switching workspaces and windows is super fast, and have vim configured with shortcuts to switch between buffers.
I don't install any service on my machine and just run everything using Docker. (You can actually even run games using Docker (plz don't try it on macOS. Linux? Sure!)
I use VIM keybindings in all text-editors and IDEs that I’m using.
For desktop/window management, I use Xmonad (a tiling window manager). Which means I can organize all the open window(s), move them around, resize them, manage multiple workspace, and screens, all using keyboard.
For terminal, I’m using fish-shell which is very powerful and highly customizable and friendly shell with a lot of aliases and functions to keep me productive. and also use Tmux only when needed.
I use Vimium extension in Firefox (it is also available for Chrome) which allow me to use VIM keybindings in browser including navigation, selecting text, clicking on links, and some extra macros to do even more and all of that with VIM keybindings that I use everywhere.
And finally, I have my dotfiles on Github which means I can setup my work environment on any machine in 5minutes.
I use VScode, Intellija, and VIM (SublimeText way less than before because of VSCode) And it depends on what project I have to work with.
Mostly because it is easier for instance to enable VIM keybindings in VSCode when I'm writing JS/Typescript comparing to setting up VIM and achieving same level of productivity. So I choose to stick to VIM keybindings and not VIM itself most of the time.
No other Lisp or other IDE's come close, but I never worked on a lisp machine, which should have about the same features. I never warmed up to Smalltalk enough to use it productively.
Visual Basic had a macro recorder feature (my lisp didn't have this, only emacs) and a similarily great IDE, but their language ecosystem is just horrible. You can easily write a fast and safe multithreaded server, but using their libraries just sucks. .NET got that better, but still not comparable.
PHP Komodo was great, but still. It was PHP. Horrible libraries.
Emacs+magit+c-mode+flycheck... or Visual C++ for my usual work is fine, but also very limited compared to better integrated systems. Haven't setup LSP yet though. This should improve things by a wide margin.
I also had a nice MultiEdit Pro integration with all my tools and docs, which was better than my current Emacs setup. But that was decades ago, on DOS.
Graphical development env's like Matlab Controldesk Simulink was nice, but not really productive. You constantly click in and out of nested blocks, connect dots and follow long lines, which is similar to counting parens manually with lisp. It sucks.
-2011 - 2017 netbeans (Java and PHP): more stable and feature rich than eclipse. Still excellent code navigation and refactoring like eclipse.
-2017 - VS Code (Angular and. Typescript, occasionally Java): fast, lightweight and still does most of the things I need. Improving every month. Extendable to edit any mainstream language it seems.
Things I have left behind after spending serious time with it:
- Sublime (was a paying customer but VS Code us now so much better I won't pay for another release)
- IntelliJ (has had both personal and company license but after a few months I fell back to eclipse/Netbeans)
- Visual Studio. (I like C#, find it better than Java but the IDE just doesn't cut it for someone who has been spoiled with Java tooling.)
Linux I'm using XMonad, although I'll most likely switch to i3 next time I tweak my dev setup.
I use neovim for most of my work, although I need to switch to atom with nuclide on occasion to debug code. I have bindings like the recommendation from the tmux navigator that enables me to move between panes with Ctrl+hjkl. Variety of other plugins for hack, python, JavaScript, Java, etc.
i attribute to the fact that the language is extremely expressive, full of ready-to-use CPAN modules and VSE was/is compiled natively to the Operating System, from a nicely written codebase. So the IDE was actually helping me, instead of keeping me frustrated waiting many seconds for each context menu ( cof, eclipse, cof ). But it lacked ( by then ) on plugins for many other tasks on many other languages.
I just don't get it.
Having decent quality tooling across python, phi, JavaScript, typescript, SQL and Java as well as all the database featured for MySQL and Postgres is a huge win for me.
There are probably better tools for each domain but not as heavily integrated or consistent.
It’s a resource hog but I don’t care, it’s so good I’d spec an extra 8Gb of RAM if it needed it (it’s not that bad tbh in a world with electron at least).
Someday I'll learn WPF.
Everything I've ever been employed to do has pretty much been throwing data around, there's no substitute for being able to iterate and view dataframes interactively.
I've used Visual Studio/pycharm for my coding coding but if I had to choose between no IDE and no data-repl I'd go no IDE every time.
Laragon makes it super easy to configure the environment (out of the box support for wamp, git, node, ngrok, you name it..)
As a platform, WSL is a huge productivity boost for me
Also nodejs replace now 10+ y of custom created php helpers (as api wrappers mostly)
Keyboard shortcuts and extensibility are the keys to success.