I ?? IDEs
Shai Almog
Principle Engineer, Author, DevRel, Blogger, Open Source Hacker, Java Rockstar, Conference Speaker, Instructor and Entrepreneur
I've been a programmer since well before we had IDEs and I ?? them!
Hacker News has an IDE vs. Emacs/vim thread that's pretty interesting with so many acrobatic fallacies...
Here's my take on why we should all use IDEs to some extent and responses to all the top issues. Here are the top issues mentioned in the thread:
1. IDEs perform badly
2. You won't be able to code without one
3. Emacs is very powerful and has everything
4. There's nothing of value in IDEs
5. They aren't free
6. You write cleaner code without IDE
7. You might not have access to one
8. Java needs it
IDEs perform badly
IDEs take a lot of RAM and a lot of CPU. Especially for things like Android development (due to the tools).
I don't feel that pain. I use a powerful machine with a lot of RAM and the IDE flies. This is my job, I'm expected to own "power tools" and a strong machine is required.
I accept that not everyone has the ability to buy top-of-the-line machines. But if it's your livelihood it needs to be above average and you could use a desktop which is cheaper and more powerful.
The response I got was: what if your apps end up performing badly on end-user machines?
I have more than one machine. We have QA but even in such a situation. I have profilers and tools to test performance. I don't need to suffer for end-user performance.
You won't be able to code without one
If you get used to IDEs you will form a dependency that will make it impossible to work without an IDE or even change an IDE. This might be forced on you when you switch jobs.
I leave the IDE when I need to (admittedly, not much). I've been a programmer since well before they existed & for the first 10 years of Java, they sucked!
So I used an editor...
This is the logical equivalent of running without shoes because you "might" need to do this someday
Emacs is very powerful and has everything
Emacs has everything: Terminal, Newsreader, etc. It's so extensible you can do everything there and add anything to it.
This isn't a zero-sum game. Emacs doesn't need to be bad for IDEs to be good.
It is a product of a command-line era where you wanted everything in one place. IDEs don't need that but yes they integrated things like terminals, etc.
领英推荐
I wrote IDE plugins, they are very extensible!
There's nothing of value in IDEs
Emacs can do pretty much anything an IDE can do...
This is hard to prove either way. My debugging series pinned to my twitter account shows some wild stuff in IntelliJ/IDEA that I can guarantee Emacs can't fully do.
All the semantic work required to refactor/analyze etc. would make Emacs as bloated as any IDE and probably worse. What's the point in that case?
They aren't free
IDEs aren't free software
This is true. Although many are open source and they're great. The top-tier IDEs aren't free.
I use IntelliJ Ultimate which is a paid subscription. I'm also an OSS hacker that wrote a lot of GPL code.
I'm personally OK with that and I like paying for my tools. But YMMV.
You write cleaner code without IDE
Since IDEs make it easy to write code you end up creating complex dependencies and intricate code that's harder to read and doesn't follow good coding standards.
This is a bit out there but OK. Yes, you can. But having worked on Sun codebases with their Emacs created makefile nightmare build process... I don't buy that.
Also, IDEs have integrated linters as you type...
You might not have access to one
You might not have an IDE or the IDE you want in any environment.
I might not have access to shoes everywhere I go. It doesn't mean I have to always walk barefoot. I can change my shoes and get used to new shoes. Will take a few days but I'll manage...
Java needs it
Java is a unique language that requires an IDE. Other languages don't benefit from it to a similar degree.
Yes. Java is better with an IDE by a mile. But I used and loved it well before it had decent IDEs.
I find IDEs super useful in JS where semantics aren't as strict as Java & context switching to NPM warnings made things difficult for me. Refactoring in JS was much harder before.
TL;DR
Don't get me wrong. I think Emacs/vim are great and think you should keep using them. I think you should give an IDE a chance, especially with new developers who might struggle without it.
There's room for both IDEs and great editors.
I think people haven't given newer versions of the IDEs a chance. @jetbrains upped their game a lot in the past decade. They're also deceptively simple. This makes people miss some of the depth they hide under the surface!
E.g. check out my pinned tweet for some samples ?
Chief Marketing Officer | Product MVP Expert | Cyber Security Enthusiast | @ GITEX DUBAI in October
5 个月Shai, thanks for sharing!