Analyzing the Eclipse API Usage: Putting the Developer in the Loop

Eclipse guidelines distinguish between two types of interfaces provided to third-party developers, i.e., APIs and non-APIs. APIs are stable and supported, while non-APIs are unstable, unsupported and discouraged as they are subject to arbitrary change or removal without notice. In our previous work, we found that despite the discouragement of Eclipse, the use of non-APIs in Eclipse third-party plug-ins (ETPs) is not uncommon. Furthermore, we found that these non-APIs are the main cause of ETP incompatibilities in forthcoming releases of the Eclipse. In the current work we conducted a survey aiming at understanding why do the ETP developers use non-APIs. We have observed that developers with a level of education of up to master degree have a tendency not to read product manuals/guidelines. Furthermore, while for less experienced developers instability of the non-APIs overshadows their benefits, more experienced developers prefer to enjoy the benefits of non-APIs despite the instability problem. Finally, we have observed that there are no significant differences between Open Source and commercial Eclipse products in terms of awareness of Eclipse guidelines and interfaces, Eclipse product size and updating of Eclipse product in the new SDK releases.

[1]  W. Velicer,et al.  Affects of variable and subject sampling on factor pattern recovery. , 1998 .

[2]  Richard L. Gorsuch Exploratory Factor Analysis , 1988 .

[3]  Julia Eichmann,et al.  Making Software - What Really Works, and Why We Believe It , 2011, Making Software.

[4]  B. Tabachnick,et al.  Using Multivariate Statistics (5th Edition) , 2006 .

[5]  Marco Torchiano,et al.  Migration of information systems in the Italian industry: A state of the practice survey , 2011, Inf. Softw. Technol..

[6]  J. Knottnerus,et al.  Real world research. , 2010, Journal of clinical epidemiology.

[7]  Alexander Serebrenik,et al.  Mining student capstone projects with FRASR and ProM , 2011, OOPSLA Companion.

[8]  Alexander Serebrenik,et al.  An empirical study of the evolution of Eclipse third-party plug-ins , 2010, IWPSE-EVOL '10.

[9]  Alexander Serebrenik,et al.  Compatibility Prediction of Eclipse Third-Party Plug-ins in New Eclipse Releases , 2012, 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation.

[10]  Alan Agresti,et al.  Categorical Data Analysis , 2003 .

[11]  Mark S. Litwin,et al.  How to Measure Survey Reliability and Validity , 1995 .

[12]  Jason W. Osborne,et al.  Best practices in exploratory factor analysis: four recommendations for getting the most from your analysis. , 2005 .

[13]  Alexander Serebrenik,et al.  Survival of Eclipse third-party plug-ins , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[14]  Alexander Serebrenik,et al.  Eclipse API usage: the good and the bad , 2013, Software Quality Journal.

[15]  M. J. Norušis,et al.  SPSS 13.0 Guide to Data Analysis , 2000 .