07/03/2013

Framework, SDK, biblioteca, API: ¿cuáles son las diferencias?

Framework, SDK, biblioteca, API: ¿cuáles son las diferencias?

Con frecuencia mencionamos distintos recursos que asisten a los programadores en la tarea de desarrollar una aplicación: frameworks, SDK, bibliotecas y API son algunos de ellos. Sin embargo, estas herramientas presentan características muy similares, dando lugar a confusiones. Entonces, ¿cuáles son sus diferencias?

Una biblioteca (library) es una colección de implementaciones de comportamiento. Un comportamiento (o conjunto de acciones) puede implementarse a través de funciones o procedimientos. Invocar un comportamiento es utilizarlo dentro de nuestro programa. En este caso, la invocación requiere conocer la declaración del procedimiento o función, compuesta por su nombre, el tipo de valores que recibe como entrada y su posible salida. Por ejemplo, la función adición puede recibir dos números reales y devolver su suma. La invocación, en un lenguaje genérico, podría ser adición (numeroA, numeroB).

Una API (interfaz de programación de aplicaciones) es un conjunto de declaraciones de funciones y procedimientos que permiten interactuar con una plataforma determinada (en varias oportunidades hablamos de las API que ofrecen ciertas redes sociales). Solo que la implementación interna de esas funciones está oculta al público. Los programadores sólo pueden ingresar datos de entrada y obtener un resultado, sin saber lo que sucedió en el medio.

Un framework es un entorno de desarrollo completo, que suele facilitar herramientas tan indispensables como el compilador, el debugger y el editor de código. Pero también cuenta con un poderoso conjunto de bibliotecas, con funciones útiles ya previamente implementadas, que ahorran tiempo y esfuerzo al desarrollador y constituyen el núcleo del entorno. Estas funciones pueden ser extendidas, pero no modificadas. Pueden incorporar un editor visual que reduce la necesidad de manipular código y nos acerca al aspecto final de la aplicación antes de que la compilemos.

Por último, un SDK (kit de desarrollo de software) es similar a un framework, con la diferencia de que se orienta al desarrollo de aplicaciones exclusivas para una plataforma (sistema operativo, navegador, etc.) en particular. Un SDK puede incorporar las herramientas de un framework e incluso documentación detallada (incluyendo ejemplos de código), pero también puede limitarse a su biblioteca, encapsulada en una API.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce