¿Diferencia entre framework vs Library vs IDE vs API vs SDK vs Toolkits? [cerrado]

144

Quiero algunos ejemplos Siempre me confundo, así que con algunos ejemplos podría resolverlo mejor.

Además: ¿Eclipse es una API o IDE?

Manoj hans
fuente
1
eclipse es un IDE
Thielicious

Respuestas:

294

Un IDE es un entorno de desarrollo integrado: un editor de texto mejorado con soporte adicional para desarrollar (como diseñadores de formularios, editores de recursos, etc.), compilar y depurar aplicaciones. por ejemplo, Eclipse, Visual Studio.

Una biblioteca es un fragmento de código al que puede llamar desde su propio código, para ayudarlo a hacer las cosas más rápida / fácilmente. Por ejemplo, una biblioteca de procesamiento de mapas de bits proporcionará funciones para cargar y manipular imágenes de mapas de bits, lo que le ahorrará tener que escribir todo ese código por sí mismo. Por lo general, una biblioteca solo ofrecerá un área de funcionalidad (procesamiento de imágenes u operación en archivos zip)

Una API (interfaz de programación de aplicaciones) es un término que significa las funciones / métodos en una biblioteca a los que puede llamar para pedirle que haga cosas por usted: la interfaz a la biblioteca.

Un SDK (kit de desarrollo de software) es una biblioteca o grupo de bibliotecas (a menudo con aplicaciones de herramientas adicionales, archivos de datos y código de muestra) que lo ayudan a desarrollar código que usa un sistema en particular (por ejemplo, código de extensión para usar características de un sistema operativo ( Windows SDK), dibujar gráficos en 3D a través de un sistema particular (DirectX SDK), escribir complementos para ampliar otras aplicaciones (Office SDK) o escribir código para hacer que un dispositivo como un Arduino o un teléfono móvil haga lo que quiera). Un SDK todavía tendrá un solo foco.

Un kit de herramientas es como un SDK: es un grupo de herramientas (y a menudo bibliotecas de códigos) que puede usar para facilitar el acceso a un dispositivo o sistema ... Aunque quizás con más énfasis en proporcionar herramientas y aplicaciones que solo en bibliotecas de códigos .

Un marco es una gran biblioteca o grupo de bibliotecas que proporciona muchos servicios (en lugar de quizás una sola capacidad enfocada como lo hacen la mayoría de las bibliotecas / SDK). Por ejemplo, .NET proporciona un marco de aplicación: hace que sea más fácil usar la mayoría (si no todos) de los servicios dispares que necesita (por ejemplo, Windows, gráficos, impresión, comunicaciones, etc.) para escribir una amplia gama de aplicaciones, así que uno "biblioteca" proporciona soporte para casi todo lo que necesita hacer. A menudo, un marco proporciona una base completa sobre la que construye su propio código, en lugar de crear una aplicación que consume código de la biblioteca para realizar partes de su trabajo.

Sin embargo, hay muchos ejemplos en la naturaleza que no coincidirán exactamente con estas descripciones.

Jason Williams
fuente
3
Puede decir que un SDK, una biblioteca o un marco contiene API.
Bastien Vandamme
66
Un SDK es una implementación específica del cliente para facilitar el consumo de una API, por ejemplo, el SDK de JavaScript para la API de Facebook. A menudo verá varios idiomas representados en la sección SDK de la documentación de la API, por ejemplo, la API twilio tiene un sdk de Python, Ruby, C # y Java para su API. Solo para confundir un poco más las cosas, lo llaman Bibliotecas API y SDK, y he escuchado que ambos términos se usan indistintamente.
Rob
97

La analogía del auto

ingrese la descripción de la imagen aquí

IDE: La Oficina de Programación de MS. Es donde escribe su código, además de algunas características adicionales para que sea un programador más feliz. (por ejemplo , Eclipse, Netbeans ). Carrocería: es lo que realmente tocas, ves y trabajas.

Biblioteca: una biblioteca es una colección de funciones, a menudo agrupadas en múltiples archivos de programa, pero empaquetadas en un solo archivo comprimido. Contiene programas creados por otras personas, para que no tenga que reinventar la rueda. (por ejemplo , junit.jar, log4j.jar ). Una biblioteca generalmente tiene un papel clave, pero hace todo su trabajo detrás de escena, no tiene una GUI. El motor del auto.

API: la documentación del editor de la biblioteca. Así es como debes usar mi biblioteca. (por ejemplo, log4j API , junit API ). Manual de usuario del automóvil: sí, ¡los automóviles también vienen con uno!


Kits

¿Qué es un kit? Es una colección de muchos artículos relacionados que trabajan juntos para proporcionar un servicio específico. Cuando alguien dice botiquín, obtienes todo lo que necesitas para una emergencia: tiritas, aspirina, gasas y antisépticos, etc.

ingrese la descripción de la imagen aquí

SDK : Comida feliz de McDonald's . Tiene todo lo que necesita (y no necesita) en caja: plato principal, bebida, postre y un juguete adicional. Un SDK es un conjunto de diferentes componentes de software ensamblados en un paquete, de modo que están "listos para la acción" desde el primer momento. A menudo incluye varias bibliotecas y puede , pero no necesariamente puede incluir complementos, documentación de API, incluso un IDE en sí. (por ejemplo , kit de desarrollo de iOS ).

Kit de herramientas : GUI. GUI GUI Cuando escuche 'toolkit' en un contexto de programación, a menudo se referirá a un conjunto de bibliotecas destinadas al desarrollo de GUI. Dado que los kits de herramientas están centrados en la interfaz de usuario, a menudo vienen con complementos (o IDE independientes) que proporcionan utilidades de pintura de pantalla. (por ejemplo, GWT )

Marco : aunque no es la noción predominante, un marco puede verse como un kit. También tiene una biblioteca (o una colección de bibliotecas que trabajan juntas) que proporciona una estructura y patrón de codificación específico (de ahí la palabra, marco ). (por ejemplo, Spring Framework)

Saltos
fuente
41
Una API no es solo la documentación. En realidad no es documentación en absoluto. Entiendo su analogía, pero la documentación o documentación de API es el manual de su automóvil y la API es más la placa y los botones de su automóvil.
Bastien Vandamme
1
Puede hacer la diferencia entre la GUI y la API. La GUI (interfaz gráfica de usuario) es la interfaz para el usuario final no profesional. La API (interfaz de programación de aplicaciones) es la interfaz para otros programas. Cuando desarrolle una aplicación, puede crear una GUI o una API o ambas. También puede crear otro tipo de interfaces.
Bastien Vandamme
Siempre hay una API detrás de una GUI. Las GUI solo simplifican el caso de uso. En TI, es más por razones no profesionales o profesionales como interfaces gráficas en lugar de código. Sin embargo, sobre la lógica de su automóvil: es posible que no pueda conducir un automóvil por su cuenta, debe aprender y saber conducir (considere las lecciones de manejo como un tutorial o documentación). Si no desea lograrlo, es posible que desee subirse a un autobús o un taxi ya que no se requieren habilidades de conducción (en este caso, aquí no hay habilidades de programación), por lo tanto, consideraría los medios de transporte público como GUI. Suena divertido pero muy cierto.
Thielicious
No estoy de acuerdo con "[biblioteca] no tiene una GUI". En el mundo de JavaScript, es muy común que las bibliotecas contengan una GUI.
user1505520
5

Considere el desarrollo de Android:

IDE: Eclipse, etc.

Biblioteca: biblioteca android.app.Activity (Clase con todo el código)

API: interfaz básicamente todas las funciones con las que llamamos

SDK: El SDK de Android le proporciona las bibliotecas API y las herramientas de desarrollador necesarias para compilar, probar y depurar aplicaciones para Android (---- herramientas - DDMS, Emulador ---- plataformas - versiones del sistema operativo Android, ---- plataforma- herramientas - ADB, ---- documentos API)

Kit de herramientas: podría ser un paquete ADT

Marco: gran biblioteca pero más orientada a la arquitectura

ashishpinninti
fuente
3

En otras palabras...

IDE Incluso su bloc de notas es un IDE. Cada software con el que escribe / compila código es un IDE.

Biblioteca Un montón de código que simplifica las funciones / métodos para un uso rápido.

API Una interfaz de programación para funciones / configuración con la que trabaja, su uso a menudo se documenta.

SDK Extras y / o para fines de desarrollo / prueba.

ToolKit Pequeñas aplicaciones para un uso rápido, a menudo GUI.

Las aplicaciones GUI con una interfaz gráfica no requieren conocimientos de programación a diferencia de las API.

Framework Bunch de API / gran biblioteca / fragmentos envueltos en un espacio de nombres / o encapsulados desde el alcance externo para un manejo compacto sin conflictos con otro código.

MVC Un patrón de diseño separado en Modelos, Vistas y Controladores para grandes aplicaciones. No dependen unos de otros y se pueden cambiar / mejorar / reemplazar sin tener que ocuparse de otro código.

Ejemplo:

Auto (Modelo)
El objeto que se presenta.
Ejemplo en TI: un formulario HTML.


Cámara (Ver)
Algo que puede ver el objeto (automóvil).
Ejemplo en TI: navegador que representa un sitio web con el formulario.


Conductor (Controlador)
Alguien que conduce ese automóvil.
Ejemplo en TI: Funciones que manejan datos de formulario que se envían.

Fragmentos Los códigos pequeños de solo unas pocas líneas pueden no estar completos pero valer la pena compartirlos rápidamente.

Complementos Funciones exclusivas solo para marcos / API / bibliotecas especificadas.

Complementos módulos o servicios adicionales para interfaces gráficas de usuario específicos.

Thielicious
fuente
2

SDK representa al kit de desarrollo de software, e IDE representa al entorno de desarrollo integrado. El IDE es el software o el programa se utiliza para escribir, compilar, ejecutar y depurar, como Xcode. El SDK es el motor subyacente del IDE, incluye todas las bibliotecas de la plataforma a las que una aplicación necesita acceder. Es más básico que un IDE porque generalmente no tiene herramientas gráficas.

Haitham
fuente