> I believe people underestimate the power of a good IDE.
Definitely. And in some parts of the tech world, people actually deride the usage of an IDE! "If you're not using vim you're a newb," kinda deal.
Which, sure, vim is great! And you can get a lot of decent plugins that can make that workable. But gosh IDEs provide so much powerful functionality, why would you make your life harder on purpose by not using them.
That attitude does seem to be fading though, in my more recent experience.
Well, I am a vim user, and I deride noone for the tools they want to use. If someone wants to work in a super-modern IDE, great. If someone wants to work in Notepad++ great. If someone wants to work in ed and use a lineprinter, great. If someone wants to use EMACS, great. Programming is one of the professions, where the craftman gets to choose the tools, and for me, that is something to celebrate.
So with that being said, why do I use vim in a terminal emulator, instead of a modern IDE? Here are my most important reasons. Bear in mind, these are extremely dependent on my personal taste, modus operandi and thinking.
1. Simplicity helps me focus. vim hits a perfect mark between simplicity and feature-richness. Interfacing it with more complex systems such as LSPs, Linters, etc. is almost trivially easy.
2. I like building own tools and adapting existing tools them as I see fit. vim is pretty much perfect in that regard, not just because of the power of vimscript, but because how easily I can integrate tools I wrote myself into it.
3. It's absolutely trivial to set up: I copy my ~/.vim and that's it.
4. Once I figured out jumps, markpoints and linescripts, it allows me to do absolutely crazy things in codebase navigation
5. It works over ssh
6. It runs instantly and has a negligible performance impact
7. I can seamlessly integrate it into other CLI tools that require an editor, providing my default work environment in every situation.
8. Since version 8, I can actually use it as a terminal multiplexer, which is just crazy good for my workflow...I often have several split tabs to edit/navigate the code and a terminal tab controlling deployment and testing on the remote machines...all in a single terminal emulator window.
So yeah, why do I like vim? Because its flexible, fast and extendable, works everywhere and does exactly what I want.
> If someone wants to work in ed and use a lineprinter, great.
Sure, as long as it's not on my dime! :-)
vim et al are great and I know skilled users can get very productive in them, but I would not push it as a default environment for incoming developers. The amount of force-multiplying functionality in the stock install of IntelliJ or VSCode is very good.
> but I would not push it as a default environment for incoming developers.
I would not push any default environment on incoming developers unless there is a very good reason to do so (eg. custom graphical lowcode tool that only works with a specialized editor). As I said, one of the beautiful things about programming is that the craftman gets to chose the tools.
> And in some parts of the tech world, people actually deride the usage of an IDE! "If you're not using vim you're a newb," kinda deal.
I share the sentiment, but for completely other reasons.
Human mind is very limited - it can only hold so much complexity at once before it starts making mistakes and oversights. IDE's raise that bar of tolerable complexity, making it easier for people to build enterprise-level Rube Goldberg's machines just to keep the software working.
Using Vim (or any other non-IDE editor) forces me to keep the software simple, because otherwise I can't understand it. And in my experience, keeping software simple (long term) is much more important than keeping software working (short term).
Of course, sometimes we have no choice but to meet the deadline. That's where all those bells and whistles really come in handy.
I've approached IDEs similarly. But in addition to this, a lot of IDEs lack real accessibility functionality. Jetbrains has accessibility features [0], but it is clear no one at Jetbrains actually uses them. This isn't unique to Jetbrains, there are a lot of companies that implement what I call "fake accessibility". There's a section in their settings to enable "accessibility", but if you actually use it and depend upon it you're met with a garbled mess.
> For macOS, switch on the VoiceOver and install and set up IntelliJ IDEA. However, for a full screen readers' support, we recommend Windows.
I've never tried the Windows version, but the VoiceOver version is unusable.
There’s a lot of different kinds of deadlines. Some can be extended. Some can not.
“I love deadlines. I love the whooshing noise they make as they go by.” - Douglas Adams, a man who was very familiar with the many varieties of deadlines.
I think that has basis too though. IDEs are huge and hugely complicated. Until fairly recently, they were quite often nearly unusable. Want to edit a text file? You'd first have to start your IDE loading and go to lunch, then maybe if you were lucky by the time you got back it'd be done loading and indexing and you could actually edit your file.
Well not so fast, first you'd have to answer 100 questions to configure the IDE for a 'project'. Only then could you edit your file. Slowly. One. Single. Character. At. A. Time. Waiting for the IDE to become responsive again after each character.
Nowadays, however, the hardware has caught up and some IDEs are actually usable most of the time. And they're indispensable on the big convoluted projects we now deal with, that have tons of dependencies and convoluted ravioli code from OOP hierarchies.
I do kinda miss working on projects that were simple and clean enough to not need an IDE. But it would be terrible to go back to not using one with the code we wrangle these days.
Definitely. And in some parts of the tech world, people actually deride the usage of an IDE! "If you're not using vim you're a newb," kinda deal.
Which, sure, vim is great! And you can get a lot of decent plugins that can make that workable. But gosh IDEs provide so much powerful functionality, why would you make your life harder on purpose by not using them.
That attitude does seem to be fading though, in my more recent experience.