SDK: ¿qué es un software development kit?

Los desarrolladores de software se enfrentan a desafíos a diario. Además de la tarea de programación en sí, han de diseñar conceptos y prototipos para nuevas aplicaciones, planificar las fases de desarrollo, analizar los resultados intermedios y solucionar fallos o puntos débiles de los sistemas. A esto se añade la creciente complejidad del software, que no pone las cosas fáciles. Por eso, herramientas como los frameworks (estructuras de base para programar listas para usar) se han convertido en algo esencial en el día a día de los programadores.

Otra herramienta indispensable son los llamados software development kits (SDK) o kits de desarrollo de software, un elemento clave en el trabajo con lenguajes de programación y en el desarrollo y creación de programas para plataformas específicas.

¿En qué consiste un SDK?

Un software development kit, abreviado SDK, es un paquete de herramientas y datos que facilita e incluso permite a los programadores desarrollar programas en un lenguaje concreto o para una plataforma o aplicación específica. De la composición y distribución de un SDK se encarga el desarrollador original del lenguaje o del hardware o software en cuestión, que está interesado en que el software de terceros esté disponible en el mercado para su propio producto o en el lenguaje de programación en cuestión. En la mayoría de casos, por lo tanto, los SDK son de uso gratuito, si bien su fabricante los puede limitar con ciertas reglas y licencias.

Definición: software development kit

Un software development kit (SDK) es un conjunto de herramientas que ayudan a desarrollar aplicaciones para hardware o software específicos o en un lenguaje de programación concretos. En algunos lenguajes interpretados, el SDK puede ser idéntico al sistema en tiempo de ejecución.

¿Qué contiene un software development kit?

La composición de un SDK varía según el fabricante y depende también de si está pensado para un lenguaje de programación, para un sistema operativo o para hardware concreto. Un componente estándar que incluyen casi todos los kits de desarrollo de software es la API (también mencionada a menudo en plural), a través de la cual los proyectos de software se pueden enlazar a nivel de código fuente. El suministro de esta interfaz de programación elemental suele ir acompañado de una extensa documentación que incluye instrucciones sobre cómo usarla, así como otra información de interés. Gracias a ella, los desarrolladores interesados pueden hacerse una idea rápidamente de si su proyecto es viable y de cómo realizarlo.

Nota

Algunos fabricantes utilizan denominaciones alternativas para sus paquetes de software en lugar de SDK. Oracle, por ejemplo, llama JDK (Java (SE) Development Kit) a su paquete para el lenguaje de programación que distribuye, Java.

Si es necesario o de gran ayuda para el proceso de desarrollo, un buen software development kit debe incluir compiladores o depuradores (debugger) y otras herramientas de prueba y análisis que estén disponibles, además de todos los componentes técnicos básicos como editores, bibliotecas, sistemas de tiempo en ejecución y entornos de desarrollo. Lo mismo se puede decir de los controladores especiales y protocolos de red que sean necesarios. En algunos casos, los fabricantes también añaden ejemplos o pequeños proyectos de prueba a los SDK, facilitando así en gran medida su uso.

Estos son los componentes que puede contener un kit de desarrollo de software:

  • API
  • Documentación
  • Editores
  • Bibliotecas
  • Sistemas de tiempo en ejecución y entornos de desarrollo
  • Compiladores
  • Debuggers o depuradores
  • Controladores
  • Protocolos de red
  • Ejemplos / proyectos de prueba

¿Qué normativas o licencias pueden aplicarse a los SDK?

Como ya se ha mencionado, la mayoría de SDK son gratuitos, principalmente porque el software nuevo es una de las oportunidades más sencillas que tienen los fabricantes para aumentar el valor de sus sistemas o dispositivos de cara al usuario. Esto se hace patente sobre todo en los smartphones y tablets, que perderían gran parte de su valor si no contasen con las aplicaciones de terceros. A la descarga y al uso de un software development kit, sin embargo, sí pueden aplicarse ciertas reglas.

Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

Así, por ejemplo, un fabricante puede permitir el acceso a un SDK solo a los usuarios que se comprometan a no revelar cierta información confidencial. Este tipo de acuerdo de confidencialidad (en inglés, non-disclosure agreement) suele aplicarse, sobre todo, a productos con algoritmos secretos o con estatus alfa o beta. Para asegurar que el software creado no se distribuya bajo otra licencia incompatible, un software development kit también puede incluir una licencia, ya sea de propiedad o libre. Por ello, los desarrolladores deberían familiarizarse, antes de empezar con el trabajo, con los tipos básicos de licencia, como muestran los siguientes ejemplos:

  • Si un SDK tiene una licencia de propiedad, no será apropiado para el desarrollo de software de código abierto.
  • Si un kit de desarrollo tiene una licencia tipo GPL (GNU General Public License), no será apropiado para el desarrollo de aplicaciones de propiedad.
  • Si un SDK tiene una licencia tipo LGPL (GNU Lesser General Public License), puede usarse también para proyectos con partes de código de propiedad. Dichos proyectos, sin embargo, deben estar siempre estructurados de manera que el usuario final pueda entender y modificar la parte de código abierto en cualquier momento.
Hecho

Las aplicaciones de código abierto como LibreOffice o Mozilla Firefox se desarrollan continuamente sobre todo gracias a estos kits de desarrollo: tanto los programadores aficionados, como los profesionales, utilizan los SDK de estos programas libres para programar nuevos diseños o funcionalidades y ponerlos a disposición de todo el mundo.

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.