Software development kit: Difference between revisions

Content deleted Content added
No edit summary
Dupz (talk | contribs)
m Reverted edits by 164.100.193.54 to last version by 200.247.100.129
Line 1:
A '''software development kit (SDK)''', is typically a set of development tools that allows a [[software engineer]] to create [[application]]s for a certain [[software]] package, [[software framework]], [[hardware]] platform, [[computer system]], [[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 [[Software development tools|tools]] include debugging aids and other [[Utility program|utilities]]. 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 times, 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 [[license]]s 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. And a [[GPL]] licensed SDK will ''likely'' be incompatible with proprietary software development. [[LGPL]] SDKs are typically safe for proprietary development.
 
An SDK for an operating system add-on (for instance, [[QuickTime]] for [[Mac OS]]) may include the add-on software itself, to be used for development purposes, if not necessarily for redistribution. An interesting situation arises here between platforms where it is possible to develop applications that can at least start up on a system configuration without the add-on installed, and use a [[Gestalt (Mac OS)|Gestalt]]-style run-time ''environment query'' to determine if the add-on is present, and ones where the application will simply fail to start. In other words, is it possible to build a single binary that will run on configurations with and without the add-on present, albeit operating with reduced functionality in the latter situation.
 
Providers of SDKs for specific systems or subsystems may sometimes substitute a more specific term instead of ''software''. For instance, both [[Microsoft]] and [[Apple Computer]] provide '''Driver Development Kits (DDK)''' for developing [[device driver]]s, and [[PalmSource]] brands its development kit as PalmOS Development Kit (PDK).
 
==Examples==
* The [[DirectX|DirectX SDK]] from [[Microsoft]]
* The [[Java 2 Software Development Kit|Java SDK]] from [[Sun Microsystems]]
* [[Widget toolkit]]s
 
''See also:'' [[Application programming interface]]
 
[[Category:Computing]]
[[Category:Software engineering]]
 
[[de:Software Development Kit]]
[[fr:Kit de développement]]
[[nl:Software Development Kit]]
[[pl:SDK]]
[[pt:SDK]]
[[ru:SDK]]
[[sv:SDK]]
[[zh:软件开发工具包]]