As the author points out, it does depend on the language. I switched to vim "full-time" when moving to a Go team. (Prev Java). Java is a language that does not lend itself to vim. Even just compiling and running a sufficiently large java program can be a pain without an IDE setup.
Benefits of Not Using an IDE
21–30 of 389 posts
Re: Benefits of Not Using an IDE
#22To play devil’s advocate, isn’t the goal of a good IDE to abstract away the actual filesystem organization of the code? As long as I can quickly look up function definitions via the IDE, I don’t care how they’re actually organized on disk. As an analogy, I’m sure my Gmail inbox is internally stored across multiple different databases and would be a nightmare to manually browse at the database level, but I don’t care because I can easily access all my messages through my email client or the web UI.
Disclaimer: I’m not an IDE user myself (simply because I’m oldschool, have all the emacs keybindings burned into my muscle memory, and I’ve never taken the time to learn one well), and in principle agree with the author’s point. IDEs are not (yet) at a point where they’ve rendered the filesystem completely irrelevant, although some are getting pretty close.
Re: Benefits of Not Using an IDE
#23Use an IDE, and discover + learn the syntax by being assisted. Start biking on a unicycle, and fail.
> When you have to manually find a file to change a subroutine implementation, or to refactor a subroutine, you will have good file names and a good directory structure. The Antipattern of the directory layout of your typical Java Enterprise Project is a Testament to this. (src/main/java/org/company/product/...)
There were no IDEs for Java when it started. And it immensely structured everything. Not having an IDE doesn't mean anything about naming.
> With big projects, it might slow you down to have the IDE load the entire project before you can start working. Some Projects with 40000+ files might take >5 minutes to load.
But in return you'll get something that will tell you what's going on, or even do hot code swaps, saving you a lot more than those 5 min.
> This is almost always the result of bad language design and/or bad library design. An example is developing android apps in Java with Android studio. Here, you will be slowed down a great deal in order to program without Android Studio. There will be a steep learning curve.
The IDE does more than just edit code. Welcome to different resolutions, devices, etc. Please tell me you'd rather have the device mess of J2ME // Symbian.
> Good Open Source Projects encourage people to clone, fork, and maybe even to contribute to a Project. People are able to directly edit files on github, if an IDE is not required and they know the language being used. Not requiring an IDE makes it easier for blind people, who might be using screenreaders to understand your project, and enables people without modern hardware (which might be unable/impractical to run an IDE) to work on your project.
IDEs have makefiles / build.xml / whatever. You're totally uninformed
> Have you ever seen a Java Enterprise Project? Sometimes the Java classes in there have 20+ import statements, automatically generated by the IDE. Working in this style, with such long package names and lots of classes/namespaces eventually almost forces you to use an IDE because there is just so much, that it becomes impractical to remember.
All Java IDEs support maven or whatever is popular right now.
> Not having Autocomplete / Code Generation guides you naturally to writing more compact and idiomatic Code in the Language of your Choice. It helps you to learn language-specific features and syntactic sugar.
That's a language design issue.
In Java, there is the Concept of Getters, Setters, toString, hashCode and so on. These methods can be auto-generated by the IDE. In practise, this leads to bloat. The IDE is simply compensating for missing language features (built-in hashing of a composite data type, built-in string representation ).
That's a language design issue.
What a shit article
Re: Benefits of Not Using an IDE
#24A good ide is all about auto completion and refactoring tools. The autocompletion means you don’t have to spend as much time memorizing apis, so you can focus more on simplifying your design and minimizing coupling. In something like unreal engine, the intellisense really sets ides apart. The refactoring means you can quickly and easily make large changes to make the code easier to work in. You can just work signific…
Refactoring is where it's at for me. The ability to rename functions and variables across not just a local file, but all references in the code base is huge. Relatedly, the ability to find all usages of a symbol and navigate between them is indispensable for me at this point.
Re: Benefits of Not Using an IDE
#25He bashes VS Code at the end but that seems exactly what he wants. VS Code is more of a text editor then an IDE, and you can turn off all the “issues” he complains about.
He's referring to Visual Studio. https://visualstudio.microsoft.com/
(I used VS at work regularly and the performance on a million-SLoC solution was quite bad, but I didn't expect it to be much better given the size of the solution)
Re: Benefits of Not Using an IDE
#26Re: Benefits of Not Using an IDE
#27Also the point about IDEs auto generating toHashCode, toString, etc. If your class needs these methods, whether they were auto generated or not seems besides the point. The point the IDE is "compensating for lacking language features" doesn't make sense to me, the code is compensating, whether a human or IDE writes it.
Re: Benefits of Not Using an IDE
#28He bashes VS Code at the end but that seems exactly what he wants. VS Code is more of a text editor then an IDE, and you can turn off all the “issues” he complains about.
He's referring to Visual Studio. https://visualstudio.microsoft.com/
Re: Benefits of Not Using an IDE
#29The complaints levied at Java and Android specifically are issues I've really only seen in that language and on that platform. Excise that and all these arguments feel very flat and empty. It has not been my experience at all that using an IDE means I can't remember my project layouts, API calls, etc.
And frankly, this wreaks of the same sort of elitist arguments that only a small minority of grammarians make against spell-check. So what if the tool is a crutch? ALL TOOLS ARE! That's the point of tools, to off-load some forms of manual labor. A table saw and a fence are going to let me make straight cuts a lot quicker and easier than using a hand saw. Humanity grows and life moves on and troglodytes complain that the field is being "ruined", but what they really mean is they can't keep up.
Re: Benefits of Not Using an IDE
#30Maybe I’m weird, but at some point I stopped fixating on which tools to use and just settled on a personal workflow: * terminal open at root of project used for source control * one or more tabs for ssh/VMs etc * IDE/VSCode/vim for editing Any of those is fine. And sometimes I switch between them depending on my mood. If I’m out and about it can be nice to conserve battery and focus by going full terminal mode. If I…