SDK

SDK (Kit de Desarrollo de Software)
Información sobre la plantilla
SDK2.jpeg
Concepto:Conjunto de herramientas de desarrollo que le permite a un programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc

SDK. Un kit de desarrollo de software o SDK (siglas en inglés de software development kit) es generalmente un conjunto de herramientas de desarrollo que le permite a un programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc.

Es algo tan sencillo como una interfaz de programación de aplicaciones o API (del inglés application programing interface) creada para permitir el uso de cierto lenguaje de programación, o puede, también, incluir hardware sofisticado para comunicarse con un determinado sistema embebido. Las herramientas más comunes incluyen soporte para la detección de errores de programación como un entorno de desarrollo integrado o IDE (del inglés Integrated Development Environment) y otras utilidades. Los SDK frecuentemente incluyen, también, códigos de ejemplo y notas técnicas de soporte u otra documentación de soporte para ayudar a clarificar ciertos puntos del material de referencia primario.

Los SDK como técnica de marketing

Un programador suele recibir el SDK del desarrollador del sistema para el que se está escribiendo el programa. Incluso, a veces el SDK puede descargarse de Internet. De hecho, muchos SDKs se distribuyen gratuitamente para animar a los desarrolladores a usar el sistema o el lenguaje. Así pues podemos deducir que a veces son usados como herramientas de marketing, por ejemplo, Foo Products distribuye el Widget SDK gratis para animar a la gente a utilizarlo. En consecuencia mucha gente se anima a comprar muchos otros widgets suyos ya que pueden programarlos gratuitamente.

Incompatibilidad de licencias

Los SDK pueden incluir licencias que los hacen incompatibles para crear software que se pretenda hacer para una licencia no compatible. Por ejemplo un SDK propietario probablemente será incompatible para el desarrollo de software gratuito. Y un SDK bajo la licencia GPL será, posiblemente, incompatible con el desarrollo de software propietario. Sin embargo los SDKs bajo la licencia LGPL suelen ser seguros para el desarrollo de software propietario.

SDK para añadidos

Un SDK para un añadido (o add-on) de un determinado sistema operativo (por ejemplo, QuickTime para Mac OS) puede incluir también el software añadido en sí para ser usado para el desarrollo pero no necesariamente para la redistribución. Una situación interesante surge aquí entre plataformas donde es posible desarrollar aplicaciones que pueden iniciar la configuración de un sistema sin que el add-on esté instalado, y usar una rutina de petición de entorno de tipo Gestalt para determinar si dicho add-on está instalado, y otros donde la aplicación simplemente fallará al iniciarse. En otras palabras, es posible construir un único binario que funcione en configuraciones donde el add-on esté presente o no, con una funcionalidad reducida en este último caso.

Términos más específicos

Los proveedores de SDK para ciertos sistemas o subsistemas pueden utilizar un término más específico que el de "software". Por ejemplo, tanto Microsoft como Apple proveen Driver Development Kits (DDK) o kits para el desarrollo de drivers para desarrollar drivers para dispositivos, y PalmSource distribuye su propio kit de desarrollo como el PalmOS Development Kit (PDK) o kit de desarrollo para PalmOS.

Ejemplos

  • El SDK de Virtual Earth de Microsoft
  • El SDK de DirectX de Microsoft, en el que se basan, por ejemplo, la mayoría de juegos para Windows actuales
  • EL .Net Framework de Microsoft, en el que se basan muchas aplicaciones basadas en formularios
  • El SDK de Java de Sun Microsystems, en el que se basa, por ejemplo, la herramienta de lucha contra el vandalismo de CryptoDerk
  • Los kits de herramientas de Widgets, en los que se basan muchas utilidades desarrolladas con lenguajes de programación orientados a objetos
  • Turbo Pascal
  • Clipper
  • Delphi
  • El Source SDK, una herramienta diseñada por Valve en el cual puedes diseñar mods y mapas para juegos del motor Source. Disponible en Steam al comprar un juego que use el motor Source
  • El SDK de Android, elaborado por Google para su sistema homónimo

Referencia