Monday 21 April 2014

10 ideas to improve Eclipse IDE usability

Few years ago, we had a mini IDE war inside our office. It happened between Eclipse and Netbeans supporters. Fortunately, we did not have IntelliJ supporter. Each side tried their best to convince people from the other side to use their favourite IDE.

On that war, I am the Eclipse hardcore supporter and I had a hard time fighting Netbeans team. Not as I expected, we end up on the defence side more often than attack. Look at what Netbeans offers, it is quite interesting for me to see how far Netbeans has improved and how Eclipse is getting slower and more difficult to use nowadays than in the past.

Let I share my experience on that mini war and my point of view on how Eclipse should be improved to keep its competitive edge.

What is the benefit of using Netbeans

For a long time and even up to now, Eclipse is still the dominant IDE in the market. But this did not happened before Eclipse 3.0, which was released in 2004. From there, Eclipse simply dominates the market share of Java IDE for the next decade. Even the C/C++ and Php folks also built their IDE plugin on top of Eclipse.

However, things is getting less rosy now. Eclipse is still good, but not that much better than its competitors any more. IntelliJ is a commercial IDE and we will not compare it to Eclipse in this article. The other and more serious competitor is Netbeans. I myself have tried Netbeans, compared it to Eclipse 3.0 and never came back. But the Netbeans that Eclipse is fighting now and the Netbeans that I have tried are simply too different. It is much faster, more stable, configurable and easier to use than I have known.

The key points of using Netbeans are the usability and first class support from Sun/Oracle for new Java features. It may not be very appealing to Eclipse veteran like myself but for a starter, it is a great advantage. Like any other wars in the technology worlds, Eclipse and Netbeans keep copying each other features for so long that it is very hard to find something that one IDE can do and the other one cannot. To consider the preferred IDE, what really matter is how things are done rather than what can be done.

Regarding usability, I feel Eclipse failed to keep the competitive edge it once had against Netbeans. Eclipse interface is still very flexible and easy to customize but the recent plugins are not so well implemented and error prone (I am thinking of Maven, Git support). Eclipse market is still great but lots of plugins are not so well tested and may create performance or stability issue. Moreover, careless release (Juno 4.0) made Eclipse slow and hangup often. I did not recalled restarting Eclipse in the past but that happened to me once or twice a month now (I am using Eclipse Kepler 4.3).

Plus, Eclipse did not fixed some of the discomforts that I have encountered from early day and I still need to bring along all the favourite plugins to help me ease the pain.

What I expect from Eclipse

There are lots of things I want Eclipse to have but never see from release note. Let share some thoughts:

1. Warn me before I open a big file rather than hang up

I guess this happen to most of us. My preferred view is the Package Explorer rather than Project Explorer or Navigator but it does not matter. When I search a file by Ctrl + Shift + R or left click on the file in Explorer, Eclipse will just open the file in Editor. If the file is a huge size XML file? Eclipse hangup and show me the content one minute later or I get frustrated and kill the process. Both are bad outcomes.



2. Have a single Import/Export configuration endpoint

For who does not know, Eclipse allow you to import/export Eclipse configuration to a file. When I first download a new release of Eclipse, there are few steps that I always do

  • Import -> Install -> From Existing Installation: This step help me to copy all my favourite features and plugins from old Eclipse to new Eclipse.
  • Modify Xms, Xmx in eclipse.ini
  • Import Formatter (from exported file)
  • Import Shortkey (from exported file)
  • Configure Installed JREs to point to local JDK
  • Configure Server Runtime and create Server.
  • Disable useless Validators
  • Register svn repository
  • And some other minor tasks that I cannot remember now...
Why don't make it simpler like Chrome installation when new Eclipse can copy whatever settings that I have done on the old Eclipse?



3. Stop building or refreshing the whole workspace

It happened to me and some of the folks here that I have hundred projects in my workspace. The common practice in our workplace is workspace per repository. To manage things, we create more than 10 Working Sets and constantly switch among them when moving to new task.

For us, having Eclipse building, refreshing, scanning the whole workspace is so painful that whether we keep closing projects or sometimes, create a smaller workspace. But can Eclipse allow me to configure scanning Working Set rather than Workspace? Working Set is all what I care.

Plus, sometimes, Ctrl + Shift + R and Ctrl + Shift + T does not reflect my active Working Set and not many people notice the small arrow on the top right of the dialogue to select this.


4. Stop indexing by Git and Maven repository by default

Eclipse is nice, it helps us to index Maven and Git repository so that we can work faster later. But not all the time I open Eclipse to work with Maven or Git. Can these plugins be less resource consuming and let me trigger the indexing process when I want?

5. Give me process id for any server or application that I have launched

This must be a very simple task but I do not know why Eclipse don't do it. It is even more helpful if Eclipse can provide the memory usage of each process and Eclipse itself. I would like to have a new views that tracking all running process (similar to Debug View) but with process id and memory usage.

6. Implement Open File Explorer and Console here

I bet that most of us use console often when we do coding, whether for Vi, Maven or Git command. However, Eclipse does not give us this feature and we need to install additional plugin to get it.



7. Improve the Editor 

I often install AnyEdit plugin because it offer many important features that I found hard to live without like converting, sorting,...

These features are so crucial that they should be packaged together with Eclipse distribution rather than in a plugin.


8. Stop showing nonsense warning and suggestion

Have any of you build a project without a single yellow colour warning? I did that in the past, but let often now.

For example, Eclipse asked me to introduce serialVersionUID because my Exception implements Serializable interface. But seriously, how many Java classes implement Serializable? Do we need to do this for every of them?

9. Provide me short keys for the re-factoring tools that I always use

Some folks like to type and seeing IDE dependent as a sin. I am on the opposite side. Whatever things can be done by IDE should be done by IDE. Developer is there to think rather than type. It means that I use lots of Eclipse short-keys and re-factoring tool like

  • Right click -> Surround With
  • Right click -> Refactor
  • Right click -> Source
Some of most common short keys I use everyday are Ctrl + O, Alt + Shift + L, Alt + Shift + M, Ctrl + Shift + F,... and I would like to have more. Eclipse allows me to define my own short keys but I would like it to be part of Eclipse distribution so that I can use them on other boxes as well. 

From my personal experience, some tools that worth having a short key are
  • Generate Getters and Setters
  • Generate Constructor using Fields
  • Generate toString()
  • Extract Interface
  • ...
I also want Eclipse to be more aggressive in defining Templates for Java Editor. Most of use are familiar with well-known Template like sysout, syserr, switch, why don't we have more for log, toString(), hashCode(), while true,...

10. Make the error messages easier to read by beginner

I have answered many Eclipse questions regarding some common errors because developers cannot figure out what the error message means. Let give few examples:

A developer uses command "mvn eclipse:eclipse". This command generates project classpath file and effectively disable Workspace Resolution. Later, he want to fix things by Update Project Configuration and encounter an error like below (if you want to understand this further, can take a look at the last part of my Maven series)



Who understand that? The real problem is the m2e plugin fail to recognize some entries populated by Maven and the solution is to delete all Eclipse files and import Maven project again.

Another well-known issue is the error message on pom editor due to m2e does not recognize Maven plugin. It is very confusing for newbie to see this kind of errors.

Conclusion

These are my thoughts and I wish Eclipse will grant my wishes some days. Do you have anything to share with us about how you want Eclipse to improve?

32 comments:

  1. Looking for best TNPSC study materials to prepare for the examination? Make use of our samacheer kalvi books and other study guide to learn from experts. TNPSC One Time Registration

    ReplyDelete
  2. Interesting information and attractive.This blog is really rocking... Yes, the post is very interesting and I really like it. melbourne limo hire | black limousine hire

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Great info… Thanks for sharing Mayas Hummer Hire Melbourne offer professional limo rental service at affordable price. Hummer Hire Melbourne Prices.

    ReplyDelete
  5. Thanks for sharing excellent article. Limousine king offer luxury Limo Hire Frankston at affordable price. We always committed to treat you like royalty. Limo Hire Mornington Peninsula

    ReplyDelete
  6. Thanks for sharing thsi information. Nice to see your blog. I like it your blog.
    Buy Country Chicken | Nattu Kozhi Valarpu

    ReplyDelete
  7. Great Information. Thanks for sharing this valuable message for us.
    Roadworthy Certificate | Car Mechanic

    ReplyDelete
  8. Great job. I would like to thank for the efforts you have posting this valuable information.
    corbin seats | suzuki bandit 1250

    ReplyDelete
  9. Thanks for sharing an informative blog. keep updating the valuable information. Very useful to everyone.
    Study in Australia | Education Consultant Australia

    ReplyDelete
  10. CBD Florist offers sweet deal for everyone. Same Day & Mid Night Delivery Available at Valentines Day. Order Online Now. Happy Valentines Day.
    Valentines Day Flowers | Mothers Day Flowers

    ReplyDelete
  11. Thanks for sharing valuable article. Southstar Asbestos Removals are licensed Class B asbestos removal in Melbourne.
    Asbestos Clearance CertificatesDemolition Services Melbourne

    ReplyDelete
  12. I like your post you have posting on your site. I would like to share this with my friends on all my social media. Thanks for sharing such an informative content.
    Car Window Tinting Melbourne | Window Tinting Melbourne

    ReplyDelete
  13. Thanks for sharing information. It is very helpful for us.
    Jathikai
    Flax Seeds in Tamil
    Mathi Meen

    ReplyDelete
  14. Thanks for the information. Looking for Car service Cranbourne Contact Singh's Tyre & Auto Cranbourne West with expert Auto Electrician Cranbourne

    ReplyDelete
  15. Thanks for Posting the great information. Automotive Exerts are well experience shows me that lpg conversion was beneficial.

    'SSK Law Firm
    Criminal Lawyers in Chennai
    Bail Lawyers in Chennai
    Lawyers in Chennai
    Lawyers in Chennai'

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
  17. Really amazing information, thanks for sharing this valuable information with us. Visit Ogen Infosystem for the best website designing services and PPC Services at an affordable price.
    Top 5 Website Designing Company in India

    ReplyDelete
  18. Great content & Thanks for sharing with uttar pradesh's YouTuber ibrahim 420

    ReplyDelete
  19. Hi My Name is Maria Hayden & I am technical blogger at Get Human Help, I majorly writes and shares blogs on troubleshooting tips for routers, printers, antivirus, emails, Operating Systems, and others. Related Blogs - Why Is My Comcast Email Not Working?What to do to fix Yahoo Mail Not Syncing With Gmail?, How to fix Yahoo mail not loading on iPhone?How Do I Talk To A Live Person At Verizon AT&T?, How To Fix Bellsouth Not Working In Android?, How can I Reset Charter Spectrum Email Password?

    ReplyDelete
  20. Hi I am very happy to look this valuable informative car rental melbourne airport

    ReplyDelete
  21. Hi My Name is Mary Thomas& I am technical blogger at Get Human Help, I majorly writes and shares blogs on troubleshooting tips for routers, printers, antivirus, emails, Operating Systems, and others.
    Related Blogs -
    How can I Reset Charter Spectrum Email Password?
    How To Fix Bellsouth Not Working In Android?
    Eliminate Yahoo Mail error code 80040902 with the easy steps!
    Know the ways to terminate HP Printer error 49.4c02

    ReplyDelete
  22. How to Talk To a Live Person at AT&T?
    If you don't know How to Talk To a Live Person at AT&T, follow the steps mentioned here. First of all, you are supposed to call Verizon's service number at 1-800-922-0204, and when the automated system begins talking, you need to press 0. The automated system will ask you why you're calling. Press zero again. Enter your account PID and press # to get a live person at AT&T.
    Related Blogs –
    Guide to Recover a Disabled Facebook Account
    A Definite Guide to Perform Facebook Account Recovery
    How To Contact a Live Person at Facebook?
    How Can I Speak to a Live Person at Apple?
    How To Talk To a Live Person at PayPal Customer Service?

    ReplyDelete
  23. What Can I Do To Fix Bellsouth Email Login Problems?
    If you are struggling with Bellsouth email login problems, then, first of all, you should check your internet connection. At times, your browser can also create issues, so consider using an optimized one. There are possibilities that your Antivirus software might be hindering Bellsouth. If the issue is related to the login credentials of the Bellsouth account, make sure you enter the credentials carefully. Also, check the Bellsouth server status by going to DownDetector.com. If you experience Bellsouth login issues because of your email client, then check your configuration settings to avoid such issues.
    Related Blogs -
    Verizon Login Problems
    Comcast Email Login Problems
    Yahoo Mail is Not Receiving Emails
    Yahoo POP Mail Not Working
    AOL Mail Not Receiving Emails
    Gmail not receiving emails

    ReplyDelete
  24. How to troubleshoot Yahoo not receiving emails?
    Yahoo is known for its rapid services, but there are times when Yahoo stops receiving mails. There could be several reasons for the issue. First of all, check your internet connection as this could be one of the reasons for the problem. Check your spam folder and see if the expected mail ended there. There are possibilities that you are not receiving mail from a particular recipient because you have blocked their address. Hence check your blocked addresses by going to the Privacy section to get the Yahoo not receiving emails issue fixed.
    Related Blogs -
    Yahoo Mail Problems on iPhone
    Yahoo Mail Not Syncing on Android
    How To Block Email on Yahoo
    Recover Permanently Deleted Emails From Yahoo
    Yahoo mail signing in problems
    Setup Yahoo Mail on Android

    ReplyDelete
  25. Thank you for sharing the ideas to improve Eclipse IDE Usability. It is quite informative and helpful. If you are looking to solve att email issues, then Open your AT&T Mail in a different web browser. For example, if you normally use Google Chrome, try Firefox. Verify that your browser accepts cookies. Then, clear your cookies and cache. You’ll find this info in your browser's Preferences, Settings, or Options menu. Enable JavaScript, and make sure it’s up to date. You’ll find it in your browser settings or options. Disable browser tools or add-ons to see if they’re causing issues with email access. To resolve ATT Email not Working, enable Adobe Flash Player, and make sure it’s up to date.

    ReplyDelete
  26. Thanks for sharing the information. I like your blog. Open Yahoo Mail and tap on the Yahoo Mail app icon. Now, tap on the three-dot menu that is available in the top-left corner of the screen or the search bar. To change Yahoo password, Tap on Manage Accounts. Search your account name in the signed-in account list that appears on your screen. Now, tap on Account info that is a link just below the name of the account. Then tap on Security Settings. Now enter the password. After that, tap on Change Password. Now tap on ‘I would rather change my password’. Create a new password in the ‘New Password’ text field and then re-type on the password field. Tap on Continue to change your Yahoo mail password.

    ReplyDelete
  27. How to Troubleshoot TurboTax Not working on Mac?
    The issue of TurboTax not working on Mac can be occurred due to several reasons – one is the program not being installed properly on Mac. What you do is uninstall the currently installed program and install it one again to see if you’re able to open.  If any help is needed, you can get in touch with our technical expert team.

    ReplyDelete