Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ide-dev] Some constructive criticism for Eclipse

Hello Everyone,
I would like to start by saying that I have about 16 years of
professional continuous Java programming experience and for about 14
of those I have been using Eclipse (before that I used Forte).
Needless to say I consider myself an expert user of Eclipse and Java.
I have reported a number of bugs to eclipse and have to honestly say
that a significant portion of them have not been fixed.
About 2 years ago I thought I would try and contribute bug fixes to
Eclipse in an attempt to pay back some of the benefit I have had from
Eclipse, to have some fun and to have something else to put on my CV.
It seemed logice for me to fix bugs in the refactoring code (seeing as
that would require the least amount of external knowledge) I found
that experience positive and negative.
On the one side I was able to successfully contribute bug fixes to
Eclipse which did make it into the product. The JDT UI team even felt
that they could ask me to fix a few high priority bugs to see if I was
up to the challenge.
However the whole thing fizzled out after I made contributions to a
couple of bugs which simply got ignored despite me prompting people to
look at my patch. Most notably
https://bugs.eclipse.org/bugs/show_bug.cgi?id=99622 which is still
ignored 2.5 years later.

All of that I can understand and don't feel too aggrieved about.
What really disappointed me was how difficult and I may go as far as
to say impossible it was to set up a development environment. It never
felt like I had done it properly and after just a few weeks of neglect
the whole thing would stop working and I would have to spend several
hours trying to figure out why I can't run the unit test. I could
never find reliable documentation that covered all the required topics
you need to get going.

So a few days I filed another bug thinking I would be a good citizen
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=490769).  It
immediately got closed as "NOT_ECLIPSE" and blame was attributed to
Xerces. It transpired that Eclipse is using a 10 year old version of
Xerces but moving to the latest version of Xerces doesn't address this
issue. So being a developer I thought I would try and investigate what
can be done about this.
Initially I just browsed the code and concluded that Eclipse is indeed
to blame because it has explicit code that overcomes limitations of
Xerces in the
org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDMessageInfoHelper
class. So naturally I thought I would try and see if I can get Eclipse
dev environment set up to try and see if I can write some code to fix
this issue.
I spent roughly 4 hours and didn't get anywhere near to success.

It seems the process has come along way with the introduction of this
page: https://wiki.eclipse.org/Platform_UI/How_to_Contribute#Setting_up_your_SDK_for_code_contributions.
However even after following the steps on there it still doesn't feel
like it is quite correct and that I have missed something:
That wiki page should for one thing talk about the fact that you need
to install the correct version of JRE/JDK and what those versions are.
It should also talk about Execution Environments because you need to
set those up as well otherwise you get nowhere fast.
The page should also discuss Bundle pools. This is something new and I
am not quite sure what it is and how it works (more on this later).

Anyway the Eclipse installer doesn't yet seem to have support for the
setting up a dev environment for the web tools project which is
probably another reason for my frustrations.
So I ticked the JDT UI project instead. After the installer had
completed I was left with a project which had 7 errors 4 of which I
don't understand (see at the end). Also somehow the
org.eclipse.jdt.launching.prefs file was modified on several of the
projects without me doing anything (the
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE
property was changed to warning).

Searching for a page that describes how to set up a WTP for dev yields
this horrifically out of date page that is useless:
http://www.eclipse.org/webtools/community/tutorials/DevelopingWTP/DevelopingWTP.html

I ignored all that and tried to get the wst xsd editor code checked
out from git by pulling from
https://git.eclipse.org/r/sourceediting/webtools.sourceediting and
importing all the projects into their own working set. This of course
didn't achieve what I really wanted as there were several projects
that were only there for unit testing. After I removed those I was
left 87 plugin project, 18016 errors and roughly 100 modified files.
Not a good start.
Most of the errors were that dependencies weren't being looked up
somehow. I thought I would try and fix the org.eclipse.wst.xsd.core
plugin as that contained the Class I was actually going to modify.
That plugin seems to depend on other plugins which somehow weren't
being resolved.
so for example org.eclipse.core.runtime was quite happily being picked
up from the Bundle pool (C:\Users\Nikolay\.p2\pool\plugins) but
org.eclipse.wst.comon.uriresolver was showing up with a red cross even
though that plugin is in exactly the same location. I managed to
actually get that dependency working by checking out another git
project (http://git.eclipse.org/gitroot/webtools-common/webtools.common.git)
into its own Working set. This managed to resolve the
org.eclipse.wst.comon.uriresolver project but still left
org.eclipse.xsd unresolved, so I checked out
(https://git.eclipse.org/r/xsd/org.eclipse.xsd)
so now I am up to 137 project and the errors have gone down to 15712.
This is where I got stuck. Things still weren't compiling because
org.eclipse.wst.xml.core depends on org.apache.xerces and eclipse is
refusing to pick up that dependency from the pool bundle, and I don't
have a git repository I can check it out of.

I am guessing that all my problems can be addressed. Probably the
easiest would be for someone to write a wiki page explaining how to
set all this up or to get Web tools support added to Oomph.

Overall I have to admit that I feel like I am fighting an uphill
battle trying to be an Eclipse champion. All my colleagues use Idea
and are constantly showing me amazing things it definitely feels like
Eclipse is falling behind. I have filed a few bugs against Idea and
there pretty much everything I file gets fixed within a day or two, so
I have never had to roll my sleeves up there (nor would I want to). In
the mean time Google threw away all their Eclipse code and replaced it
with Idea code (what's that all about?)
If people like me are getting ignored when submitting bugs and find it
extremely hard to fix bugs themselves it feels like Eclipse is a lost
cause and it's only a matter of time before it dies a death.


If you have read this far I commend you. Thanks for listening.


JDT UI Errors that don't make sense:
Description Resource Path Location Type
Invalid @since 3.1 tag on internalProcessOnCancel(Change); expecting
@since 3.7 CompositeChange.java
/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring
line 406 @since tag problem
Invalid @since 3.1 tag on
internalSetQueryFactory(IValidationCheckResultQueryFactory); expecting
@since 3.7 RefactoringCore.java
/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring
line 133 @since tag problem
Missing @since tag on internalHandleException(Change, Throwable)
CompositeChange.java
/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring
line 365 @since tag problem
The minor version should be incremented in version 3.7.0, since new
APIs have been added since version 3.7.0 MANIFEST.MF
/org.eclipse.ltk.core.refactoring/META-INF line 5 Version Numbering
Problem


Back to the top