A software development kit (SDK or
"devkit") is typically a set of development tools that allows
a software engineer to
create applications for a certain software package, software
framework, hardware platform, computer system, video game console,
operating system, or similar.It may be something as simple as
an application
programming interface in the form of some files to interface
to a particular programming language or include sophisticated
hardware to communicate with a certain embedded system. Common tools include debugging
aids and other utilities often presented in an IDE. SDKs also
frequently include sample
code and supporting technical notes or other supporting
documentation to help clarify points from the primary reference material.
A software engineer typically receives
the SDK from the target system developer. Often the SDK can be downloaded directly via
the Internet. Many SDKs are provided for free to encourage
developers to use the system or language. Sometimes this is
used as a marketing tool. For example, Foo Products might
provide the Widget SDK
for free to encourage people to use it. In turn, more people
will be encouraged to buy more of their widgets since they can
program them for free. SDKs may have attached licenses that
make them unsuitable for
building software intended to be developed under an
incompatible license. For example, a proprietary SDK will likely be
incompatible with Free software development, while a GPL
licensed SDK will likely
be incompatible with proprietary software development. LGPL
SDKs are typically safe for proprietary development.