Différence entre Framework vs Library vs IDE vs API vs SDK vs Toolkits? [fermé]

144

Je veux quelques exemples. Je suis toujours confus, donc avec quelques exemples, je pourrais peut-être mieux le comprendre.

Aussi: Eclipse est-il une API ou un IDE?

Manoj hans
la source
1
eclipse est un IDE
Thielicious

Réponses:

294

Un IDE est un environnement de développement intégré - un éditeur de texte amélioré avec une prise en charge supplémentaire pour le développement (comme les concepteurs de formulaires, les éditeurs de ressources, etc.), la compilation et le débogage des applications. par exemple Eclipse, Visual Studio.

Une bibliothèque est un morceau de code que vous pouvez appeler à partir de votre propre code, pour vous aider à faire les choses plus rapidement / facilement. Par exemple, une bibliothèque de traitement Bitmap fournira des installations pour charger et manipuler des images bitmap, vous évitant d'avoir à écrire tout ce code pour vous-même. En règle générale, une bibliothèque n'offre qu'un seul domaine de fonctionnalité (traitement d'images ou fonctionnement sur des fichiers zip)

Une API (interface de programmation d'application) est un terme désignant les fonctions / méthodes d'une bibliothèque que vous pouvez appeler pour lui demander de faire des choses pour vous - l'interface avec la bibliothèque.

Un SDK (kit de développement logiciel) est une bibliothèque ou un groupe de bibliothèques (souvent avec des applications d'outils supplémentaires, des fichiers de données et des exemples de code) qui vous aident à développer du code qui utilise un système particulier (par exemple, un code d'extension pour utiliser les fonctionnalités d'un système d'exploitation ( Windows SDK), dessiner des graphiques 3D via un système particulier (DirectX SDK), écrire des compléments pour étendre d'autres applications (Office SDK) ou écrire du code pour qu'un appareil comme un Arduino ou un téléphone mobile fasse ce que vous voulez). Un SDK aura toujours généralement un seul focus.

Une boîte à outils est comme un SDK - c'est un groupe d'outils (et souvent des bibliothèques de code) que vous pouvez utiliser pour faciliter l'accès à un périphérique ou un système ... Bien que peut-être plus axé sur la fourniture d'outils et d'applications que sur de simples bibliothèques de code .

Un framework est une grande bibliothèque ou un groupe de bibliothèques qui fournit de nombreux services (plutôt qu'une seule capacité focalisée comme le font la plupart des bibliothèques / SDK). Par exemple, .NET fournit un cadre d'application - il facilite l'utilisation de la plupart (sinon de la totalité) des services disparates dont vous avez besoin (par exemple, Windows, graphiques, impression, communications, etc.) pour écrire une vaste gamme d'applications. "library" fournit un support pour à peu près tout ce que vous devez faire. Souvent, un framework fournit une base complète sur laquelle vous construisez votre propre code, plutôt que de créer une application qui consomme du code de bibliothèque pour effectuer une partie de son travail.

Il existe bien sûr de nombreux exemples dans la nature qui ne correspondent pas exactement à ces descriptions.

Jason Williams
la source
3
Vous pouvez dire qu'un SDK, une bibliothèque ou un framework contient une API.
Bastien Vandamme
6
Un SDK est une implémentation spécifique au client pour faciliter la consommation d'une API, par exemple, le SDK javascript pour l'API Facebook. Vous verrez souvent plusieurs langages représentés dans la section SDK de la documentation de l'API, par exemple, l'API twilio a un sdk python, ruby, C # et Java pour leur API. Juste pour confondre un peu plus les choses, ils les appellent bibliothèques API et SDK, et j'ai entendu ces deux termes utilisés de manière interchangeable.
Rob
97

L'analogie de la voiture

entrez la description de l'image ici

IDE: Le MS Office of Programming. C'est là que vous tapez votre code, ainsi que des fonctionnalités supplémentaires pour faire de vous un programmeur plus heureux. (par exemple Eclipse, Netbeans ). Carrosserie: c'est ce que vous touchez, voyez et travaillez vraiment.

Bibliothèque: Une bibliothèque est un ensemble de fonctions, souvent regroupées en plusieurs fichiers programme, mais regroupées dans un seul fichier d'archive. Cela contient des programmes créés par d'autres personnes, pour que vous n'ayez pas à réinventer la roue. (par exemple junit.jar, log4j.jar ). Une bibliothèque a généralement un rôle clé, mais fait tout son travail dans les coulisses, elle n'a pas d'interface graphique. Moteur de la voiture.

API: documentation de l'éditeur de la bibliothèque. C'est ainsi que vous devez utiliser ma bibliothèque. (par exemple , API log4j, API junit ). Manuel d'utilisation de la voiture - oui, les voitures en viennent aussi avec un!


Des kits

Qu'est-ce qu'un kit? C'est une collection de nombreux éléments connexes qui fonctionnent ensemble pour fournir un service spécifique. Quand quelqu'un dit kit de médicaments, vous obtenez tout ce dont vous avez besoin en cas d'urgence: emplâtres, aspirine, gaze et antiseptique, etc.

entrez la description de l'image ici

SDK : Happy Meal de McDonald . Vous avez tout ce dont vous avez besoin (et dont vous n'avez pas besoin) soigneusement emballé: plat principal, boisson, dessert et un jouet bonus. Un SDK est un ensemble de composants logiciels différents assemblés dans un package, de sorte qu'ils sont «prêts à l'emploi» dès la sortie de la boîte. Il comprend souvent plusieurs bibliothèques et peut , mais pas nécessairement, inclure des plugins, de la documentation d'API, même un IDE lui-même. (par exemple , kit de développement iOS ).

Boîte à outils : GUI. GUI. GUI. Lorsque vous entendez «boîte à outils» dans un contexte de programmation, cela se réfère souvent à un ensemble de bibliothèques destinées au développement de l'interface graphique. Étant donné que les boîtes à outils sont centrées sur l'interface utilisateur, elles sont souvent fournies avec des plugins (ou des IDE autonomes) qui fournissent des utilitaires de peinture d'écran. (par exemple GWT )

Cadre : Bien que ce ne soit pas la notion courante, un cadre peut être considéré comme un kit. Il a également une bibliothèque (ou une collection de bibliothèques qui fonctionnent ensemble) qui fournit une structure et un modèle de codage spécifiques (donc le mot, framework ). (par exemple Spring Framework)

Jops
la source
41
Une API n'est pas seulement la documentation. En fait, ce n'est pas du tout de la documentation. Je comprends votre analogie mais la documentation ou la documentation API est le manuel de votre voiture et l'API est plus le tableau et les boutons de votre voiture.
Bastien Vandamme
1
Vous pouvez faire la différence entre l'interface graphique et l'API. La GUI (Graphical User Interface) est l'interface pour l'utilisateur final non professionnel. L'API (Application Programming Interface) est l'interface pour d'autres programmes. Lorsque vous développez et appliquez, vous pouvez créer une interface graphique ou une API ou les deux. Vous pouvez également créer d'autres types d'interfaces.
Bastien Vandamme
Il y a toujours une API derrière une interface graphique. Les interfaces graphiques simplifient uniquement le cas d'utilisation. Dans l'informatique, c'est plus pour des raisons non professionnelles comme les interfaces graphiques plutôt que pour le code. Pourtant, à propos de la logique de votre voiture: vous ne pourrez peut-être pas conduire seul, vous devez apprendre et savoir conduire (considérez les leçons de conduite comme un tutoriel ou une documentation). Si vous ne voulez pas y parvenir, vous voudrez peut-être prendre un bus ou un taxi à la place, car aucune compétence de conduite n'est requise (dans ce cas, aucune compétence en programmation) - par conséquent, je considérerais les moyens de transport publics comme des interfaces graphiques. Cela semble drôle mais sacrément vrai.
Thielicious
Je ne suis pas d'accord avec "[la bibliothèque] n'a pas d'interface graphique". Dans le monde JavaScript, il est très courant que les bibliothèques contiennent une interface graphique.
user1505520
5

Considérez le développement Android:

IDE: Eclipse etc.

Bibliothèque: bibliothèque android.app.Activity (classe avec tout le code)

API: interface essentiellement toutes les fonctions avec lesquelles nous appelons

SDK: le SDK Android vous fournit les bibliothèques d'API et les outils de développement nécessaires pour créer, tester et déboguer des applications pour Android (---- outils - DDMS, émulateur ---- plates-formes - versions du système d'exploitation Android, ---- plate-forme- outils - ADB, ---- API docs)

ToolKit: pourrait être un bundle ADT

Framework: grande bibliothèque mais plus orientée architecture

ashishpinninti
la source
3

En d'autres termes...

IDE Même votre bloc-notes est un IDE. Chaque logiciel avec lequel vous écrivez / compilez du code est un IDE.

Bibliothèque Un tas de code qui simplifie les fonctions / méthodes pour une utilisation rapide.

API Une interface de programmation pour les fonctions / configuration avec lesquelles vous travaillez, son utilisation est souvent documentée.

SDK Extras et / ou à des fins de développement / test.

ToolKit Tiny apps pour une utilisation rapide, souvent des interfaces graphiques.

Les applications GUI avec une interface graphique, ne nécessitent aucune connaissance de la programmation contrairement aux API.

Framework Bunch of APIs / énorme bibliothèque / Snippets enveloppés dans un espace de noms / ou encapsulés à partir de la portée externe pour une gestion compacte sans conflits avec d'autres codes.

MVC Un modèle de conception séparé en modèles, vues et contrôleurs pour de grandes applications. Ils ne sont pas dépendants les uns des autres et peuvent être modifiés / améliorés / remplacés sans prendre en charge d'autres codes.

Exemple:

Voiture (modèle)
L'objet présenté.
Exemple en informatique: un formulaire HTML.


Caméra (vue)
Quelque chose qui est capable de voir l'objet (voiture).
Exemple en informatique: navigateur qui rend un site Web avec le formulaire.


Pilote (contrôleur)
Quelqu'un qui conduit cette voiture.
Exemple en informatique: fonctions qui gèrent les données de formulaire soumises.

Snippets De petits codes de seulement quelques lignes, peuvent ne pas être même complets mais valent la peine d'être partagés rapidement.

Plug-ins Fonctions exclusives pour les frameworks / API / bibliothèques spécifiés uniquement.

Modules complémentaires Modules ou services supplémentaires pour des interfaces graphiques spécifiques.

Thielicious
la source
2

SDK représente un kit de développement logiciel, et IDE représente un environnement de développement intégré. L'IDE est le logiciel ou le programme est utilisé pour écrire, compiler, exécuter et déboguer comme Xcode. Le SDK est le moteur sous-jacent de l'EDI, comprend toutes les bibliothèques de la plate-forme auxquelles une application doit accéder. C'est plus basique qu'un IDE car il n'a généralement pas d'outils graphiques.

Haitham
la source