Hacker News new | ask | show | jobs
by jmsguy 4191 days ago
> 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/