| > But I'm genuinely curious how most people classify the difference between api and library. JMS is an API [1], [2]. ActiveMQ [3] is an implementation of the JMS API. Commons BeanUtils [4] is a library. The library itself has an API (that's how we interact with the library). There is a semantic difference between the "JMS API" and the "BeanUtils API". The former is just an API. It's a standard. It has no implementation. Implementations are all expected to utilize the API. The latter is a library, but we need to talk to the library - and we do that through its API. However, the API that BeanUtils exposes is not standardized. It's by and large local to BeanUtils. I hope this helps. Sorry it's so Java centric. [1] http://en.wikipedia.org/wiki/Java_Message_Service [2] http://docs.oracle.com/javaee/6/tutorial/doc/bncdr.html [3] http://activemq.apache.org/ [4] http://commons.apache.org/proper/commons-beanutils/ |