Un kit de desarrollo de software (SDK) es un conjunto de herramientas proporcionadas por el fabricante de (generalmente) una plataforma de hardware, sistema operativo (SO) o lenguaje de programación. Los SDK ayudan a los desarrolladores a crear aplicaciones específicas para esa plataforma, sistema o lenguaje de programación. Piense en ello como una bolsa de plástico con herramientas que viene empaquetada con las piezas de un tocador que compró para ensamblar usted mismo. Tiene lo que necesita para hacer el trabajo y lo que se incluye en el kit varía de un fabricante a otro.
Por lo general, un SDK básico incluirá un compilador, un depurador y interfaces de programación de aplicaciones (API), pero también pueden incluir cualquiera de los siguientes:
- Documentación
- Bibliotecas
- Editores
- Entornos de ejecución / desarrollo
- Herramientas de prueba / análisis
- Controladores
- Protocolos de red
Un buen SDK proporcionará cualquier componente que un desarrollador considere necesario al crear aplicaciones para ese producto específico. Algunos SDK también incluirán un ejemplo o un proyecto de prueba básico para ayudar a los desarrolladores a comenzar lo más rápido posible.
Algunos ejemplos de kits de desarrollo de software son el kit de desarrollo de Java (JDK), el SDK de Windows 7, los MacOs X SDK y iPhone SDK. Como ejemplo específico, el SDK del operador de Kubernetes puede ayudarlo a desarrollar su propio operador de Kubernetes. Contiene API de alto nivel, herramientas para andamiaje y generación de código, y extensiones para cubrir casos de uso de operadores comunes.
Se incluye una API en la mayoría de los SDK para conectar nuevas aplicaciones o proyectos en el nivel del texto fuente. También suelen incluir código de muestra, que ofrece a los desarrolladores programas y bibliotecas de ejemplo para ayudarles a aprender a crear programas básicos. A partir de ahí, pueden pasar al desarrollo de aplicaciones más complejas.
Algunos SDK incluyen documentación sobre cómo utilizar las API, así como tutoriales, preguntas frecuentes y gráficos de muestra, ya que a veces un desarrollador puede tardar un poco en aprender a utilizar un nuevo SDK. Por esta razón, una interfaz de programación intuitiva (o documentación más extensa) es útil para alentar a los desarrolladores a usar el programa particular de una empresa en lugar de la opción de la competencia.
De manera similar, un SDK puede ser una excelente manera para una empresa para presentar a los desarrolladores su producto y alentarlos a crear aplicaciones utilizando su plataforma o sistema operativo. Por esta razón, la mayoría de los SDK son de uso gratuito: un desarrollador puede descargarlos y comenzar a programar de inmediato.
Algunas cosas a considerar
Algunos SDK pueden tener reglas o acuerdos que deben reconocerse y cumplirse antes de que se puedan usar, especialmente para productos nuevos en una etapa alfa o beta, o para software con algoritmos que no se divulgan al público (no de código abierto). Un SDK también puede estar sujeto a un acuerdo de licencia, de modo que el software que se crea no se publique con una licencia incompatible.
Un desarrollador debe tener en cuenta estas cosas al elegir con qué SDK comenzar a trabajar. Por ejemplo:
- Un SDK con una licencia propietaria es incompatible con el desarrollo de software de código abierto.
- Los SDK con una Licencia pública general (GPL) no funcionarán para desarrollo de aplicaciones propietarias
- Existen salvedades al trabajar con una Licencia Pública General Reducida (LGPL) para proyectos con elementos de código propietario.
¿Por qué elegir Red Hat?
Las aplicaciones de código abierto se desarrollan continuamente, por aficionados y profesionales, porque sus SDK permiten la codificación de nuevos diseños y expansiones de funcionalidad, que luego se comparten con el resto de la comunidad.
Red Hat reúne las mejores herramientas, soluciones y servicios en el desarrollo de aplicaciones, y lo hacemos de forma abierta. Ya sea que esté buscando una plataforma para construir su aplicación (Red Hat OpenShift), un entorno de tiempo de ejecución para construirlos (Red Hat Runtimes) o un entorno de desarrollo con todas las herramientas necesarias para desarrollar, probar e implementar aplicaciones ( Red Hat CodeReady Studio), Red Hat lo tiene cubierto.