title: Difference between an API and SDK
body: <p>I am trying to explain to a non-developer the difference between an API an SDK. I need to explain why a commercial fingerprint software vendor will likely not provide an SDK, although they may certainly have used one.</p>
  
  <p>Both device vendors and software vendors can and should expose a well-defined API. This API allows other software programs to (be written to) inter-operate with the vendor’s own software components or hardware devices.</p>
  
  <p>If someone has more ideas to explain this clearly, I would very much appreciate the suggestions. I want to emphasize that <strong>the goal is to explain the concepts to a non-programmer who does not know developer lingo</strong>.</p>
  
  <p>Specifically, in the context of a fingerprint sensor versus software to do enrollment/verification, here is how I attempted to explain it:</p>
  
  <blockquote>
    <p>If I am a fingerprint device/sensor manufacturer and not in the
    business of writing software, the ways I could better market my
    product are:</p>
    
    <ol>
    <li>Make sure my device drivers are installable on a wide variety of operating systems</li>
    <li>Define and provide an API for software developers to write programs (e.g., for enrollment, verification) to “talk” to or use my
    device</li>
    <li>Develop and provide an SDK (one step beyond an API) to make it easier and faster for software developers to write programs that work
    with my device. SDKs may provide helper code libraries, reference
    applications, documentation etc.</li>
    </ol>
  </blockquote>