How to design a good API and why it matters

  title={How to design a good API and why it matters},
  author={Joshua J. Bloch},
  booktitle={OOPSLA '06},
In lieu of a traditional , I've tried to distill the essence of the talk into a collection of maxims:All programmers are API designers. Good programs are modular, and intermodular boundaries define APIs. Good modules get reused.APIs can be among your greatest assets or liabilities. Good APIs create long-term customers; bad ones create long-term support nightmares.Public APIs, like diamonds, are forever. You have one chance to get it right so give it your best.APIs should be easy to use and hard… 
Assessing the Evolution of Quality in Java Libraries
The findings indicate that the examined software libraries can be considered as stable software projects in terms of quality, in the sense that in contrast to the general belief about software aging, their quality does not degrade over time.
Computational Science and Its Applications – ICCSA 2020: 20th International Conference, Cagliari, Italy, July 1–4, 2020, Proceedings, Part VI
The authors propose the concept of a virtual private supercomputer as a tool for virtual testbed computer environment and examples of the implementation of thevirtual testbed in different areas are given.
A systematic mapping study of API usability evaluation methods
Converting an OPC UA software development kit from Java to Delphi.
This paper aims to provide a history of Finnish computer programming and some of the techniques used to develop and publish types of computer programming languages, as well as some examples of applications.
Developers are Not the Enemy!: The Need for Usable Security APIs
Using the example of cryptographic APIs, the authors show that developers aren't the enemy and that, to strengthen security systems across the board, security professionals must focus on creating developer-friendly and developer-centric approaches.
Intelligence as a service : designing semantic APIs to intelligent software
Vulnerability Extrapolation: Assisted Discovery of Vulnerabilities Using Machine Learning
This paper proposes a method for assisted discovery of vulnerabilities in source code by embedding code in a vector space and automatically determining API usage patterns using machine learning, which can be exploited to guide the auditing of code and to identify potentially vulnerable code with similar characteristics.
A field study of API learning obstacles
This study conducted a mixed approach, multi-phased study of the obstacles faced by Microsoft developers learning a wide variety of new APIs, with a special focus on obstacles related to API documentation.
Ikaros: Building cognitive models for robots
Perceived Self-Efficacy and APIs
This work describes the development of a novel PSE instrument that focuses on the task of using an API and evaluates the validity and sensitivity of the instrument with respect to changes in the information given professional programmers about an API.


Returns the rendering hints for this operation, // or null if no hints have been set
    • Return zero-length array or empty collection