Effective Java programming language guide
Effective Java programming language guide
IEEE Software
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Using structural context to recommend source code examples
Proceedings of the 27th international conference on Software engineering
Easing Program Comprehension by Sharing Navigation Data
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
Mica: A Web-Search Tool for Finding API Components and Examples
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Usability Implications of Requiring Parameters in Objects' Constructors
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Factory Pattern in API Design: A Usability Evaluation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Program comprehension as fact finding
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Scents in Programs: Does Information Foraging Theory Apply to Program Maintenance?
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
Mapping the Space of API Design Decisions
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
Jadeite: improving API documentation using usage information
CHI '09 Extended Abstracts on Human Factors in Computing Systems
Improving Documentation for eSOA APIs through User Studies
IS-EUD '09 Proceedings of the 2nd International Symposium on End-User Development
Using structure-based recommendations to facilitate discoverability in APIs
Proceedings of the 25th European conference on Object-oriented programming
A field study of API learning obstacles
Empirical Software Engineering
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Asking and answering questions about unfamiliar APIs: an exploratory study
Proceedings of the 34th International Conference on Software Engineering
What should developers be aware of? An empirical study on the directives of API documentation
Empirical Software Engineering
Methods towards API usability: a structural analysis of usability problem categories
HCSE'12 Proceedings of the 4th international conference on Human-Centered Software Engineering
Studying the Documentation of an API for Enterprise Service-Oriented Architecture
Journal of Organizational and End User Computing
An Empirical Investigation into Programming Language Syntax
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
To better understand what makes Application Programming Interfaces (APIs) hard to use and how to improve them, recent research has begun studying programmers' strategies and use of APIs. It was found that method placement --- on which class or classes a method is placed --- can have large usability impact in object-oriented APIs. This was because programmers often start their exploration of an API from one "main" object, and were slower finding other objects that were not referenced in the methods of the main object. For example, while mailServer.send(mailMessage) might make sense, if programmers often begin their API explorations from the MailMessage class, then this makes it harder to find the MailServer class than the alternative mailMessage.send(mailServer). This is interesting because many real APIs place methods essential to common objects on other, helper objects. Alternate versions of three different APIs were compared, and it was found that programmers gravitated toward the same starting classes and were dramatically faster --- between 2 to 11 times --- combining multiple objects when a method on the starting class referred to the other class.