Eclipse as an IDE - What do you find missing as a beginner in Java?

Missing in Eclipse are:

Software visualization, as for example System Complexity View [Lanza 2003]

And also by Lanza, the Class Blueprint [Ducasse 2005]

Post Scriptum: Software visualization in Eclipse: X-Ray provides System Complexity View of Java projects, http://xray.inf.usi.ch/xray.php (via @anjaguzzi and Paul Lammertsma)

Software Visualization

And then collaborative filtering "other developers that edited this method before also edited" [Zimmermann 2005]

And the collection of browsable examples, and autocompletion at the level of these examples. That is, for example if your write

ByteBuffer buf = file.

and hit autocompletion it should search the codebase and the interwebs for examples that convert files to bytebuffers and insert that 10-20 lines there.

  • Parseweb supports developers by recommending method invocation sequences that yield a required destination data type from given input parameter types. http://doi.acm.org/10.1145/1453101.1453129
  • Prospector supports developers by recommending method invocation sequences that yield a required destination data type from given input parameter types.http://doi.acm.org/10.1145/1064978.1065018
  • Strathcona provides source code examples and structural con- text for the code fragment under development. http://lsmr.cpsc.ucalgary.ca/papers/holmes-icse-2005.pdf
  • Rascal recommends how and when to call the methods of objects from common libraries such as Java Swing, based on an analysis of existing classes. It uses collaborative filtering. http://dx.doi.org/10.1007/s10462-005-9012-8

And of course also the feature that I can write a Unit test and then the IDE searches the interwebs for classes that pass the test. Yes, this can be done!

  • CodeGenie is an Eclipse plugin that allows you to write unit tests and then uses the Sourcerer source code search engine to find passing classes. http://doi.acm.org/10.1145/1529282.1529384
  • CodeConjurer which is based on Merobase also offers that feature, see http://dx.doi.org/10.1109/MS.2008.110

This list could go on and on, good starting points for more work are the proceedings of past

  • Conference on Mining Software Repositories (MSR)
  • Workshop on Search-driven Software Engineering (SUITE)
  • Workshop on Recommendation Systems for Software Engineering (RSSE)

which are all under the umbrella of the ICSE conference.


"newbie issues" I've seen myself (I've used Eclipse for a good while, but it keeps "surprising" me occasionally) and helping colleagues just starting to use Eclipse:

  • It's large and complex enough to be very intimidating to some at first. Seems people consider netbeans easier to use initially. One colleague took refuge with the VI editor for a god while...
  • Installing plugins can be tricky (finding site URLs, awareness of plugins, why is "install"+"update" under the Help menu???)
  • Updates are still slow (but much better than before) with Eclipse 3.5/Galileo. It's difficult to understand which plugins to install just by their name sometimes.
  • Any platform besides Mac - preferences under the Window menu seems illogical?
  • Understanding how to set the project class path neatly. Setting the right project JDK version.
  • Lack of or unexpected interaction between ant/maven build tools' classpath and that of eclipse's (ant/maven clean causes Eclipse compiler errors when classpath is shared etc.).
  • Views and (large number of) perspectives are confusing/overwhelming at first. Which are useful when? How to drag views to the desired location or restoring closed ones?
  • Some JDK/Eclipse version combinations required too much PermGen space than available by default, took a while to diagnose.