API and SDK are real buzzwords when it comes to system integration. Despite their popularity thereare some of us who cannot make a clear distinction between the two. And let me tell you – the fault isnot entirely with us. We see these terms on a daily basis, yet most of the time they are poorly definedeven in professional manuals or documentation. So, let’s get to the bottom of this question and see themeaning behind these expressions.
Strictly speaking, an Application Programming Interface – API for short – is a software library used forproviding access to the functions of a certain library from other software modules. A proper API shouldinclude concise documentation and sample codes explaining how to use of each function. A Software Development Kit or SDK is more than this. The emphasis is on “KIT”, as in a set of toolsand materials that you use to construct something, like a model airplane. In software development, theterm SDK refers to a package that includes everything you need for developing your application:programming libraries, software development tool, compiler, sample codes, sometimes even adebugger. A good example is the Java SDK (JDK). So, we have arrived at the conclusion that an API can be a subset of an SDK, so they are certainly notsynonyms. But why are they mixed up so often? The source of confusion surrounding the proper use of these expressions is how they are often used assynonyms of each other. There is a very similar situation with the word “app” which is commonly usedfor all kinds of software pieces nowadays. If we jump back just a few years, at that time we still hadlots of different expressions like program, application, applet, driver, library, widget, utility, nowsimply called “apps”. Maybe the SDK-API mix-up is the sign of yet another wave of simplification interms of terminology. In the LPR business, software systems are usually delivered in the form of an application and/or APIwith sample codes. However, such packages are often referred to as SDK. The truth is that calling theman API would be more precise. The same applies for LPR engines, in most cases they are delivered asAPI, with documentation (sample codes) and demo applications, not an SDK.