RE: The Trouble With IDEs

siiky

2023/05/12

2023/05/12

en

IDEs aren’t exactly set up to succeed; the promise is right there in the name. They’re supposed to do everything—they are supposed to be the very environment in which you develop.

That should be a hint to anyone that it's a lost battle. If your projects' feature set includes everything under the sun and more... move on, go take a walk, much better use of your time.

If you’ve ever tried an IDE then you’ve probably had an experience like Sean’s; you powered through irrelevant-seeming configuration, broken features and unreasonable hangs and slowdowns, then gave up.

Yup, exactly my experience with the IDEs I've tried (admittedly, not many: 4?). And add "slow as molasses" to this feature set.

The first time I tried one I was at a workshop[^0], and they said we needed Visual Studio -- wasn't announced beforehand, I guess they assumed everyone had it installed? And how was it, you ask? I spent half the workshop waiting for the 40GB download to end, a good few tens of minutes installing it, and a good few minutes waiting for it to start up. Finally I was ready to get shit done! Except the workshop was now at the end. Complete waste of my time. I uninstalled the fucking thing right away.

Why would anyone want to download an XXXGB program to do something an XMB program can do much better, faster, more reliably, ... ? Why would I have to suffer through all this just because some small % of users want(!) a feature I will NEVER need or want?

IMO it's vastly better to go the other way around: take the smallest thing you can start working with, and add the features you need(!) on top -- no more, no less. This is what I've been doing since I started using (Neo)Vi(m), and it's never failed me once, no matter the environment, computer, or configurations. Wherever I go, as long as I have Vi, I can program -- minus the very real "shit, I don't have hjkl, what do I do now?"

At that point you have a choice: you can give up and fall back to an editor that just works; or you can persevere and slowly build up the bag of tricks that you need in order to be productive with an IDE. Some things will make sense. Some things won’t. Sometimes there will be an update and it breaks under you and you have to figure out some new tricks.

Except for the update breaking (which doesn't happen with Vi), the same is said about the "classic" editors (Vi & Emacs)... Somehow the same arguments are a con for editors but a pro for IDEs?

Be thankful that you had a choice.

I certainly am enjoying it while I can! I'd prefer not to get the funny-sideways-looks -- "what do you use then, if not <insert your IDE of choice>?!", every time I tell a fellow programmer for the first time that I don't use any IDEs -- but at least I can still use whatever I want. At the end of the day, I feel for those who think they need an IDE to program, it's sad.

IDEs have been around for decades, and disliked for almost as long;

With good reason, I'd say!

Start with an editor, a compiler/interpreter, maybe a build tool to automate compiling[^1]. This is strictly what a programmer ever needs to get shit done. Add to that a program for each smaller feature:

Ideally, an IDE would be a collection of such composable, interoperable, and communicating programs, rather than a single program that tries but fails at all of these things.

I can live well without any of these features. Some are native to (Neo)Vim so I use them: text-based search&replace (:help :s), syntax highlighting[^2] (:syn on), tags (:help tags), jump-to-definition (<C-]>), compile errors/warnings in-editor (:help :make), ... I have a few niceties plugins, not many. Linting and other more advanced features are available through plugins too. There are some niceties that I would like to have but don't because it's just tmw setting them up. And I will never replace a good and reliable editor with a slow and unreliable IDE for any of them.

[^0]: Xamarin IIRC, I clearly didn't know what I was getting myself into at the time. I know better now.

[^1]: Somehow, build tools is another one of those things trying to do everything under the sun and more... A couple weeks ago I had the misfortune of using Maven for a PA. I couldn't for the life of me get the tests to run with Maven even though they run on my coleagues' IDEs (IntelliJ I think). AFAIU the IDE also used the Maven config files to determine how and which tests to run, but somehow, no no no, no tests here.

[^2]: Syntax highlighting is one of those that people strongly feel is necessary but, really, it isn't. Try it for a couple of hours. If you can't read your code without it, maybe your code needs more human-readability.