Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.
like image 565
Jay Avatar asked Nov 20 '09 15:11

Jay


People also ask

Is Eclipse IDE good for beginners?

Eclipse is an open-source IDE that's been around for quite some time. It's popular amongst Java developers and offers many similar features to IntelliJ. Eclipse is also known for its community support, which is excellent for beginners.

How can I see all problems in Eclipse?

The Eclipse error log captures internal errors that are caused by the operating system or your code. To view the Eclipse error log: Switch to the Plug-in Development perspective. From the main menu, select Window > Show view > Other.

How do I get Java EE tools in Eclipse?

Select Help -> Software Updates.. from the menu. On the next screen select Available Software tab, and expand Ganymede. Expand Web and Java EE Development, select Java EE Developer Tools and Web Developer Tools. Click Install.


1 Answers

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.

like image 91
akuhn Avatar answered Oct 25 '22 13:10

akuhn