Introduction - What is Eclipse?

People new to Eclipse are likely to read or hear it is "an IDE for everything and nothing in particular". Today I appreciate what this statement means but when I heard it for the first time I was a bit puzzled - I don't dispute the validity of it, it's just that it leaves you wondering what is it really?

This initial memory turned out to be a good indication of my subsequent experiences with Eclipse: a flexible development environment, very powerful for those who understand it but not too intuitive for the uninitiated. In contrast to another popular IDE - IntelliJ, in my opinion Eclipse requires you to understand a few things before you can begin to use it effectively. Here I give a brief, introductory explanation of what eclipse is as it is more than just another Java IDE.

Many people use Eclipse for Java development but in fact it has many other uses - among the least expected ones are editing MS Word and Excel files and browsing Internet pages. This points to the fact that Eclipse was conceived to be more than a Java IDE - it was designed to be a generic platform that can be extended to any programming language or any other task for that matter.

Think of a database tool, which allows you to browse database tables, examine index definitions, run SQL queries and look at returned data. Although it may not seem obvious such a tool shares many characteristics with a Java IDE. For example it requires an explorer for browsing databases and tables - much like a Java IDE allows you to browse packages and types. It also needs an editor where you can type SQL statements - much like a Java editor can assist you in typing and validating syntactically correct statements.

From a tool vendor's point of view wouldn't it be nice if you didn't have to develop your tool from scratch but instead had a flexible, open-source architecture to use as a foundation? And from a user's point of view wouldn't it be nice if you could use a variety of tools sharing a common philosophy and features so you wouldn't have to re-learn where to find things or what shortcuts to use? That is in brief what Eclipse is for both.