Search code examples
javaeclipseidejakarta-eesurvey

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


I am working on a solution that aims at solving problems that newbie programmers experience when they are "modifying code" while bug fixing / doing change requests, on code in production. Eclipse, as we all know is a great IDE. Features such as Code Completion, Open Declaration, Type Hierarchy, Package Explorer, Navigator, Finding References etc aids people in fixing things quicker compared to say using something like Textpad.

If you are a newbie java programmer and you are using Eclipse IDE, what areas of the Eclipse IDE do you think were less helpful/ less intuitive? If you are a seasoned programmer, what are the common issues that newbies look up to you to solve for them?

Please ignore issues related to : Domain Expertise (Business Knowledge), Infra( where to test your change etc), performance related (eclipse search being slow,etc), Skill level in a particular language (think of the developer as a noob) ... and think one language - Java

I did a local survey in my small team and here are some:

  • Newbies using Eclipse to handle code that is written to interfaces where the implementation is supplied at runtime. Doing a 'Open Declaration' will always show you an interface. This could be confusing at times.
  • Eclipse is not intuitive while developing EJBs. Sure, you know all you have to do to create a new bean is to right click and 'Create Bean', however, once created it shows no contextual help to what the next step should be. For instance, generating stubs.
  • When Data Source Mapping with entity beans, changing something screws up the entire flow of things and eclpise never complains / hints.
  • Developing applications that make use of Struts, eclipse doesn't tell you that when you change struts-config.xml, particular web flow would get affected.

At this point, to me, as someone who is interested in collecting opinions for my research, it appears as if Eclipse could use more 'contextual runtime hints'.

I am sure the community would have a lot more to add... Please add more of your negative experiences (just from the code change perspective).

EDIT: I guess, my question was too lengthy and confusing. I am gonna rephrase it a bit and keep it short:

While "making a code change" (not analogous to code formatting, infra related activities, CVS etc... say something like refactoring), what feature(s) of eclipse IDE did you not like / hate the most? Here are the examples:

  • When modifying code that has been written to interfaces: 'Open Declaration /F3 on an object instance shows you the interface when the implementation is supplied at runtime'.
  • When changing apps using EJBs: No contextual help
  • When changing apps using MVCs(Spring / Struts) : No warnings about change impact.

Solution

  • 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.

    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!

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

    which are all under the umbrella of the ICSE conference.