I have been writing Java code for 22 years, mostly server-side web applications. I started using Eclipse as my primary IDE in 2003, 18 years ago. Since then I’ve used Eclipse, or MyEclipse, if not daily then at least several times a week. And I like it as an IDE. I’ve evangelized it to others, published Eclipse formatters and snippets in my companies, and never had any real issues with it.
These days I mostly develop using SpringBoot, Gradle, Docker, and AWS. If you are using a very different looking stack, this article may not apply to you.
So why, after 18 years, am I replacing Eclipse with VSCode? Three main reasons:

 

Performance

VSCode is FAST! I can be typing into a Java source editor two seconds after I click to launch the application. It takes about 10 more seconds for all the plugins and indexes to complete, but I can start coding immediately. In contrast Eclipse takes over 30 seconds before I can type. It looks like I can type earlier, but if I try I get a popup about blocking on running tasks, and eventually an error dialog. It then takes several minutes before all indexing, state, gradle package indexing, etc.. is complete. Even quitting Eclipse takes about 10 seconds before the application is truly shutdown.
While running, with no editors open and no activity, Eclipse takes 2.3 GB of RAM and 115 threads, whereas VSCode is using 130 MB and 29 threads.
In general I’ve found VSCode to be very fast and responsive compared to Eclipse. I didn’t know how much I was missing until I tried VSCode. The responsive feeling makes me feel more productive somehow.

 

Features

While Eclipse has very solid support for Java development out of the box, VSCode relies on Extensions for many features. To be fair, I always ended up with many Eclipse Plugins installed as well. So I don’t think this is a pro or a con really. In general I’ve found that most features I used within Eclipse are available in VSCode (with the right Extensions installed).
One big missing feature for me is the “Sort Members” action for organizing Java classes. I can’t find any way to do that in VSCode even with Extensions.
I’ve found that many of the VSCode Extensions provide more features or a better UI than the Eclipse feature counterpart, so overall I am very happy with the feature set of VSCode. This isn’t a big reason to switch, but so far there’s been no missing features that would prevent me from switching. Your milage may vary, depending on how you use Eclipse.

 

 

CoPilot

GitHub’s CoPilot is a massive timesaver! If you aren’t familiar with CoPilot it is a AI/ML tool that uses the massive dataset of code checked into GitHub to offer comprehensive autocompletes as you are writing code. I’m not talking about autocompleting a variable or method name, or auto filling parameter names. CoPilot can suggest, and write, full methods! Or large blocks of code! It’s not quite ready to replace us coders, and sometimes it offers useless suggestions, but it can help save a ton of time writing template or boilerplate code, as well as common code blocks (parsing data, iterating through collections, logging, and much more). I’ll admit that sometimes I would hit a “What’s the best way to do X?” and hit StackOverflow, and copy some answer there. CoPilot does that all from within the editor in a second. Between CoPilot and Lombok I feel like I only have to write the actually unique and important parts of code. It saves time and makes me much more productive.

 

Summary

As a long time Eclipse user and fan, and as someone who *might* have a little anti-Microsoft bias, I have switched from Eclipse to VSCode almost entirely! I still have MyEclipse installed, and occasionally use it for sorting members, but I am using VSCode every day and writing all my code in it.
I recommend giving it a try!