Ensode.net
Google
 

Home
Blog
Guides
Tips
Articles
Utilities
Reviews
About Us
Contact us


Facebook profile

XML

Fedora Core 4's Native Eclipse, is it Ready for Prime Time?
Bookmark and Share

One of the new additions of Fedora Core 4 is a natively compiled version of Eclipse. I took it for a spin to see if it is a suitable replacement for "regular" Eclipse.

Introduction

Some background: I currently make a living developing Java EE applications.  My current project has over a quarter of a million lines of Java code, plus a ton of JSPs, SQL scripts and other supporting files. I use Eclipse as my IDE of choice since it has a lot of features to make developer's lives easier. Some of the best features are: 

Opening Native Eclipse for the First Time

When I opened Fedora's native Eclipse I noticed my laptop became slow and unresponsive, and the CPU usage skyrocketed to 100%.  

Native Eclipse Splashs Screen Eclipse took a very long time to open (I didn't measure, but I estimate it took about a minute).  Even after opening, the laptop was still unresponsive, and the CPU usage was still at 100%.  I then noticed that it was opening my work project (you know, the one with over a quarter of a million lines of code).  Eventually it did open it, but it felt like it took forever.  I thought it was odd that it tried to open the project without prompting me what workspace to use, since I have Eclipse set up to ask what workspace to use  on startup.  I closed the project and manually changed the workspace to another one I have for personal projects.
 
Just to make sure native Eclipse was inheriting normal Eclipse's setup, I checked native Eclipse's setup and oddly enough, it was set to prompt for a workspace at startup.  I re-applied the settings and restarted Eclipse, it still did not ask me what workspace did I want when it started, and again, it opened my work workspace, the one containing my huge project.  At least it didn't open the project, making the startup much faster.

My work project directory is called "workspace" and it is right under my home directory. This is the default project location Eclipse creates, native Eclipse went straight to this location every time I opened it, not remembering I had switched workspaces before, like normal Eclipse does.

Creating a Simple Project

After switching (again) to my personal projects workspace, I created a new Java project, and added the ubiquitous "Hello world" class, everything worked as expected.  To make things a little more interesting, I added some code using generics, which is a new feature added in JDK 1.5, aka Java 5 and purposefully added some invalid code.  Native Eclipse correctly flagged the invalid code.

Generics error.

I then proceeded to use Eclipse's auto complete feature to create a for loop iterating over the ArrayList, the generated code was not generics friendly, it used an iterator without using generics, and created a cast inside the loop.

Generated for loop

For completeness' sake, I tried the same exercise under standard Eclipse and got the same result, therefore this behavior is not specific to native Eclipse.

After fixing the generated for loop to use generics, I saved the file and attempt to run the generated class file using the GNU Interpreter for Java (gij), I was gladly surprised that it worked without any problems.  It was surprising to me since I have native Eclipse set up to generate Java 5 code, and I was under the impression that gij only understood JDK 1.4 and below code.

Working with a Mid Size Project

After I was done playing around with my simple hello world app, I opened another project I have in my personal workspace. This particular project has about 67,000 lines of code. Native Eclipse opened it without a hitch.  I made some simple changes here and there, and found nothing out of the ordinary.

Conclusion

Is native Eclipse ready for prime time?  I believe that for all but the largest projects it is.  It is now feasable to develop Java applications using nothing but Free/Open Source software, especially since the generated code is compatible with gij.


Java EE 6 Development With NetBeans 7
Java EE 6 Development With NetBeans 7


Java EE 6 with GlassFish 3 Application Server
Java EE 6 with GlassFish 3 Application Server


JasperReports 3.5 For Java Developers
JasperReports 3.5 For Java Developers