I am working for a software editor and we mainly use Java as backend language. I use to work with Eclipse since around 2010, only for Java projects. Here is my journey and a quick comparison of the tools.
First of all I need to inform that I am actually Product Owner and not anymore a full-time developer. So I am still looking at Java source code project, but with a different level of usage than before.
VSCode is relying a lot on extension. Each extension add a little extra power to the tool. So the initial text editor can be compared with a fully featured IDE once the right extensions have been installed.
Eclipse is relying on a workspace concept where you import Java projects. My main concern with this approch is around multi-modules Maven projects : once you add or remove a module, Eclipse is lost and you need to import again the missing module.
It's not a big difference but for me it is more easy to switch between projects. I do not loose anymore time to import projects, I just open the right folder. There is also a workspace system in VSCode to open multiple folder at once, it may be useful if you work on multiple projects at the same time (front and back for example).
Git is directly available in VSCode. I have never rely on any Git addon in Eclipse, as I found some products buggy. So I was relying only on the Git command line. I still rely a lot on the command line but I am happy to see this very good integration of Git directly into the product.
And you have some indicator directly in the editor (green if new line, red if removed lines...). I have never see this kind of indication inside Eclipse. Probably I have never installed the right extension ;)
One month after VSCode installation and first test on Java projects, I realize that I haven't opened anymore Eclipse. Just today to make a screenshot...
I have not yet speak of the performance too. I have a decent MBP and Eclipse take always a couple of seconds to startup. VSCode start in less than a second.
Last, I am not only coding in Java but also Javascript. I have originally installed VSCode to replace Atom editor for my JS projects... So I am happy to be able to use a single tool for all my programming needs. It's faster and I am more comfortable to use a single tool for coding.
So just an advice: get a try on one of your Java project, you may be surprised to change your habits !
I tried it, but still think it falls behind most of the good Java IDE's (which I never considered Eclipse to be).
I like vscode for pretty much everything other than java or c/c++, .net, where the best of breed tooling is far far ahead (intellij and visual studio imho).
I have developed both in Eclipse and Intellij and I didn't find Intellij better than Eclipse in any significant way.
May I ask why do you find Intellij "best of breed tooling" and don't consider Eclipse a "good Java IDE"? I am not being sarcastic, I am genuinely curious.
PS: Just today I installed Eclipse 2020-9 and I am definitely finding it at par with Intellij which comes at a cost of $150-200.
IntelliJ lately started freezing and slowing down, but this is in regards to Kotlin. Haven't used Java in couple of months but I guess it would be the same. For some scripting stuff like Apache Camel K, I used VS code for Groovy but I guess having 1 file for each integration would better be with VS Code than IntelliJ as you don't care about indexing and such in these scenarios.
I am an old bloke, I started with Borlands JBuilder, then moved to Eclipse when it came out and eventually, about 15 years ago, I moved to IntelliJ, mainly because of its great tooling support for Grails. I also use VSCode for my JavaScript projects and I would love to switch completely, especially because VSCode feels so lightweight, but it doesn't really work for me.
I keep my workspace directory that holds project directories. I can have the workspace directory pulled in and VSCode just works without opening specific directories if I want Eclipse style workspace.
There is also the benefit of developing in a virtual environment. I'm honestly not sure if eclipse has this functionality, but with the VSCode remote ssh plugin you can remote into your virtual machine (vagrant box or what have you), develop through VSCode on the host machine and keep your dev environment isolated.
Eclipse is an integrated development environment (IDE) used in computer programming.[5] It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular.[6] Eclipse is written mostly in Java and its primary use is for developing Java applications,[7] but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, HLASM,[a] JavaScript, Julia,[9] Lasso, Lua, NATURAL, Perl, PHP, PL/I,[a] Prolog, Python, R, Rexx,[a] Ruby (including Ruby on Rails framework), Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX (via a TeXlipse plug-in) and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.[10]
The initial codebase originated from IBM VisualAge.[11] The Eclipse software development kit (SDK), which includes the Java development tools, is meant for Java developers. Users can extend its abilities by installing plug-ins written for the Eclipse Platform, such as development toolkits for other programming languages, and can write and contribute their own plug-ins. Since Eclipse 3.0 (released in 2004), plug-ins are installed and managed as "bundles" using Equinox, an implementation of OSGi.[12]
The Eclipse SDK is free and open-source software, released under the terms of the Eclipse Public License, although it is incompatible with the GNU General Public License.[13] It was one of the first IDEs to run under GNU Classpath and it runs without problems under IcedTea.
Eclipse was inspired by the Smalltalk-based VisualAge family of integrated development environment (IDE) products.[11] Although fairly successful, a major drawback of the VisualAge products was that developed code was not in a component-based software engineering model. Instead, all code for a project was held in a compressed database using SCID techniques (somewhat like a zip file but in .dat). Individual classes could not be easily accessed, certainly not outside the tool. A team primarily at the IBM Cary, NC lab developed the new product as a Java-based replacement.[14][failed verification]In November 2001, a consortium was formed with a board of stewards to further the development of Eclipse as open-source software. It is estimated that IBM had already invested nearly $40 million by that time.[15] The original members were Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, and WebGain.[16] The number of stewards increased to over 80 by the end of 2003. In January 2004, the Eclipse Foundation was created.[17]
The Eclipse Public License (EPL) is the fundamental license under which Eclipse projects are released.[20] Some projects require dual licensing, for which the Eclipse Distribution License (EDL) is available, although use of this license must be applied for and is considered on a case-by-case basis.
Eclipse was originally released under the Common Public License, but was later re-licensed under the Eclipse Public License. The Free Software Foundation has said that both licenses are free software licenses, but are incompatible with the GNU General Public License (GPL).[21]
According to Lee Nackman, Chief Technology Officer of IBM's Rational division (originating in 2003) at that time, the name "Eclipse" (dating from at least 2001) was not a wordplay on Sun Microsystems, as the product's primary competition at the time of naming was Microsoft Visual Studio, which Eclipse was to eclipse.[22]
Different versions of Eclipse have been given different science-related names. The versions named after Callisto, Europa, and Ganymede, which are moons of Jupiter, were followed by a version named after Galileo, the discoverer of those moons. These were followed by two sun-themed names, Helios of Greek mythology, and Indigo, one of the seven colors of a rainbow (which is produced by the sun). The version after that, Juno, has a triple meaning: a Roman mythological figure, an asteroid, and a spacecraft to Jupiter.[23] Kepler, Luna, and Mars continued the astronomy theme, and then Neon and Oxygen constituted a theme of chemical elements. Photon represented a return to sun-themed names.
As of 2018[update], the alphabetic scheme was abandoned in order to better align with the new Simultaneous Release strategy.[24] Releases are named in the format YYYY-MM to reflect the quarterly releases, starting with version 4.9 named 2018-09.[25]
From 2008 through 2018, each Simultaneous Release had occurred on the 4th Wednesday of June. In 2018 the project switched to quarterly (13 week) YYYY-MM releases without intermediate service releases.[27]
Eclipse uses plug-ins to provide all the functionality within and on top of the run-time system. Its run-time system is based on Equinox, an implementation of the OSGi core framework specification.[82]
In addition to allowing the Eclipse Platform to be extended using other programming languages, such as C and Python, the plug-in framework allows the Eclipse Platform to work with typesetting languages like LaTeX[83] and networking applications such as telnet and database management systems. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management. Java and CVS support is provided in the Eclipse SDK, with support for other version control systems provided by third-party plug-ins.
c80f0f1006