Altabel Group's Blog

Archive for the ‘Eclipse’ Category

A sacred controversy
It is considered that there are “eternal” questions to which there is no right answers. For example, what is better: Windows or Linux, Java or C #; Alien vs. Predator or Chuck Norris or Van Damm. One of these holivars is the selection best IDE for Java.
There are constant debates which of them has more plugins, hotkeys etc. There are so many differences that it is too difficult to choose which of them is more important…and the choice, as a rule, is a matter of taste. Still there are objective reasons why Intellij IDEA is defenetly better than Eclipse. Please notice that we are considering teo environments as Java IDE.

I’m not going to speak about a lot of small differences like the plugins, hotkeys, etc, but I`d like to explain only one, the most important difference. As a rule it is unknown neither to users of IDE, nor to users of Eclipse, because the first are used to it and don’t know that it could not exist in other IDE and the latter are used to living without it, and not even guess what life could be better. Moreover Eclipse users do not notice this difference when trying IDEA for fun, as used to work in their old manner.

The main thing that distinguishes IDEA – it understands the context. That is what employees of JetBrains mean when call it “intellectual» (intelligent). What does it mean? IDEA indexes all in your project, analyze everything in it and even builds a syntax tree. Due to this IDEA, at any time, wherever you put the cursor knows where you are and what can be done. This ability “to understand” the context is expressed in many ways. Here are just a few.

1) Debugging
To see some expression while debugging in Eclipse at first you must to identify the expression. And be sure that you select right, if you select the extra character by chance Eclipse does not understand. Press Ctrl + Shift + I and see what you get.
No needs to do it in IDEA. Just put the cursor in the desired location and press Alt + F8. IDEA will understand itself what expression you probably need and immediately open a dialog where you can edit the expression and immediately see its value.
It turns out that both IDE and Eclipse, in principle, allow you to do the same thing, but in IDEA is much easier and faster. It is a huge difference like heaven and earth. In this small window IDEA can make you autofilling, the syntax highlighting and everything etc.

2) Autofilling
Autofilling is what distinguishes any of the IDE from notepad. In this area of ” understanding of context” IDEA has a qualitative advantage. For example, we start writing a line of code, then we want to know what options we have and what may begin with certain letters (for instance “vi” or smth like that). What does the IDEA do? Doesn’t wait for any keystroke, it immediately realizes that the method assertElement wants to get the second parameter an object of class Condition, and this class is just a static variable of type Condition named visible. And offers the only option. What does Eclipse do? Alas, it doesn’t understand the context and doesn’t know that the cursor is on the site of the second parameter of the method assertElement. So when you press Ctrl Space, Eclipse shows stupidly all that begins with the letters «vi» in nature.

3) Refactoring
Professional programmers can be productive, using the refactorings for changing code that offers their IDE. All modern IDE, in principle, offer a very impressive set of refactorings, perhaps even most programmers don’t know and use all of them. But again notice that there are smart refactorings in IDEA. They realize what you want, and offer different options that are suitable for most situations.
For example, we have a method assertErrorMessageIsHidden:
public void assertErrorMessageIsHidden () {assertElement (By.id (“errorMessage”), Condition.visible);}
And we want to make sure that the string «errorMessage» came to the method as a parameter.

Let’s start with IDEA. Put the cursor anywhere on the line «errorMessage», press Ctrl + Alt + P (from «parameter»), and IDEA tells what expression we could make in the parameter. As soon as the expression «errorMessage» selected, IDEA suggests several possible names for this parameter. It takes into account the name of the method and type of the variable and value, and the names of these variables in other places, and those names that you has given such a variable before – except that your zodiac sign is ignored J

Well, let’s see what Eclipse offers.

Do not forget: select the expression «errorMessage» (always with quotation marks, otherwise the message will get a wild pharse «An expression must be select to activate this refactoring»), select Refactor «Introduce parameter» and get the same result . However, there are no options suggests a parameter name of, but thanks for that :)

- Outputs
If we’re talking about Java IDE, then IDEA steeper Eclipse and it is not just a matter of taste. IDEA is objectively better, quicker and easier to write and change the code, it suggests appropriate names, find the appropriate methods, it does not require just select the expression, but guesses what you want to do and want to call. IDEA anticipates and suggests.

- PS
Reservation: IDEA is better than Eclipse as Java IDE. If you consider them in some other capacity – such as the IDE for other languages ​​(C + +, Python, Scala), or as a platform for building Desktop-Application, Eclipse may win well.
In general, this follows from the definition. Eclipse has positioned itself as an abstract platform for building anything was (using append plug-ins), and IDEA is positioning itself as a “smart IDE for Java». So it is.
For the sake of interest I will try to include some aspects in which the Eclipse, possibly steeper than IDEA:
· Eclipse is beautiful. All this fuss about SWT and native controls worthed it.
· Eclipse looks like a solid well thought-out application with fonts and icons, while the IDEA at first glance looks like a laptop hack with icons and awkward interface.
· Support for the project structure is richer in Eclipse.
· There is a project consisting of modules, and the Eclipse is the workspace, consisting of projects, but they can also close / open, the grouping and hide in IDEA.
· It seems is it easier to write plug-ins in Eclipse.
· And after all, Eclipse is free.

I would like to know what do you think about it?

Thank you so much and you are welcome with your comments.

Best regards,
Elvira Golyak
Altabel Group – Professional Software Development

If you don’t know what Eclipse is, I would strongly recommend you to look at the Eclipse web-pages. The very first statement on the main page will make everything clear to you: “Eclipse is a universal tool platform – an open extendable IDE for everything you want to create and for nothing specific”. It is a real Suisse army subdivision in the software tools area.
Here are two comments, left by different developers, who share their experience of using Eclipse platform:

Developer 1: I think the tools like Eclipse make too much for a lazy programmer. When I see how far more you can make, when such a wonderful tool eliminates trivial coding tasks, it is hard for me to understand how a professional can do without the tool like Eclipse. Eclipse is a very good assistant for reconciled formatting, intuitive debugging, built-in support of CVS and Junit, summary and class hierarchy and graphical interface.
Developer 2: It was useful to study the using of development tools with an advanced graphical interface like Eclipse. It eliminates much of trivial work, giving me more time to think about a significant code and important algorithms.

Does it sound too good to be the truth? Most of us know, if a tool is to make everything, it does nothing. But it’s not the same for Eclipse. I will provide you with some of its advantages:
• provides reconciled set of possibilities for most of the platforms
• apart from Java, it supports other languages
• many flexible tools and frameworks for building various types of applications
• it has a free and an open source with a full support as well
• it is really extendable and configurable
• industrial level of development

You will see the real advantages of using Eclipse, when you understand, that it’s not the platform for Java development only. The Eclipse philosophy is embodied in its architecture: to provide a small core, that gives developers a coherent way for system possibilities extension. Every extension or link-up contributes specific functionality into Eclipse configuration, and is to ensure extension points, that another link-up can use.
The link-ups architecture makes it possible for Eclipse to support a number of languages and paradigms. Here are the examples of the link-ups:
• Eclipse C Development Tools (CDT) project (http://www.eclipse.org/cdt/), that is sponsored by Eclipse Foundation, ensures quality support of C++. The project components include editing, debugging support, make-files generators, analysis, search and context help.
• The link-up COBOL (http://www.eclipse.org/cobol/) , sponsored by Eclipse Foundation as well, ensures the same possibilities for CDT.
• EPIC (http://e-p-i-c.sourceforge.net/) contributes programming environment for Perl into Eclipse.
• Pydev (http://sourceforge.net/projects/pydev/) – one of the several link-ups, that support Python language.

No matter what language you use, check if there is an Eclipse link-up, that will allow you to develop the programs in the language, using Eclipse: Haskell, ML, Prolog и GOO – all of them are supported.
Another huge advantage of using Eclipse is that it provides many tools and frameworks to build your application. They are flexible, so you can do it in several ways according to your requirements. Developers can use the EclipseRT technology to build rich desktop, web, enterprise, and embedded applications, as well as service-oriented architectures (SOA) and applications platforms.

In fact, regardlessly the platform you use, Eclipse acts like an application, made for this platform. When you upload Eclipse, you upload it for your particular platform; it has certain graphic means for every platform. It provides layout and impression, close to original ones, as well as better productivity.
This coherence in layout and impression will give you a big advantage. If you learn navigation through various Eclipse presentations, you will be able to switch from one language or platform to other ones and be sure, that everything works in the same way.

Undoubtfully, developers face some problems, using Eclipse, but it happens with all the products. Some programmers find the ways to break up Eclipse, using a visual editor. Some find Eclipse too slow and “overloaded” with functions, they don’t need. But many of them change their point of view, if they have to debug the code, written by other people. As a whole, their experience has turned out to be very positive and efficient.

I’m eager to learn about your experience of using Eclipse! 

Kind regards,

Nadya Klim

Nadya Klim
Nadya.Klim@altabel.com
Business Development Manager
Altabel Group – Professional Software Development


%d bloggers like this: