1. Incompatible versions, especially plug-ins, can work very well in one version and cannot work in another version, even if the version numbers of the two versions are slightly different.
2. It is too tightly bound with JDK. After a new JDK version is released, eclipse usually lags behind for a long time before a new version supports the new JDK, and it takes a long time for various plug-ins to be used in the new version of Eclipse. Eclipse should separate the development environment from the compiler. In this way, even with the new JDK, at most, it does not support the syntax of the new JDK In the IDE, but it does not affect the final work, if the current eclipse does not support jdk1.5, you will not be able to compile it.
3. the design in the jface class library is inappropriate.AbstractTreeViewer
Class
Setcontentprovider(Icontentprovider provider) function. In terms of parameters, you only need an icontentprovider object.AbstractTreeViewer
In the implementation of this function, you must check that the provider must be an itreecontentprovider object. The parameter type, as part of the interface protocol, should be exposed to the outside through the interface, which is clearly not done here.
SetcontentproviderThe purpose of a function is to provide an abstract and broad interface, but this abstraction is clearly out of the header. Not every subclass of contentviewer uses the same icontentprovider abstract interface, instead, different interfaces are used. This way, the sub-class features are forcibly abstracted to the parent class to achieve no benefit to the interface implementers or users. The design of the SWT class library is also unreasonable. It is a noodle-style design using object-oriented language, and it is completely out of the class and encapsulation according to the actual characteristics of the object. As long as you take a look at the SWT class, you will not be able to resist the anger, a lot of messy constant definitions, no matter where you want to use them, are all defined here. Swing is a very good platform-independent interface library. I don't know why the Eclipse project has to jump out of the open-source environment when everyone is shouting open-source and unified standards. This is an unreasonable structure, fully functional class libraries.