-3

What is the difference between the next terms, it can help a lot in interviews and general understanding.

  1. Framerwork
  2. Library
  3. IDE
  4. API
Alvaro Fuentes
  • 16,937
  • 4
  • 56
  • 68
Taimur Ajmal
  • 2,778
  • 6
  • 39
  • 57
  • 7
    You're asking what the "difference" is between a bunch of orthogonal concepts. Library and API _could_ overlap, I guess, but I don't think there's much to answer in this question except looking for the Wikipedia definitions of these things. – Gian Jul 21 '10 at 17:17
  • 2
    You might also checkout this thread: http://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library – Darin Dimitrov Jul 21 '10 at 17:28
  • "it can help a lot in interviews"? You really shouldn't be interviewing for programming jobs yet if you don't understand any of those terms. – Cam Jul 21 '10 at 17:36
  • Cam - incrediman i am not a interviewer , i am appearing for interviews myself. And i want to clear my concepts about these terms ! – Taimur Ajmal Aug 09 '10 at 19:34

3 Answers3

4

Framework

Some predefined architecture that a developer has chosen and which dictates how the application will be written. It usually already includes many concepts which helps the developer to concentrate on the domain of the application instead of the plumbing. This plumbing is provided by the framework. For example the .NET framework provides out-of-the-box tools that would allow you to talk to web servers, without even knowing the internals of the TCP/IP protocol (actually it helps knowing the internals but you get the point).

Library

A reusable compiled unit that can be redistributed and reused across various projects. Well not necessary compiled in case of dynamic languages.

IDE

It's the development environment where you create the other three parts (usually text editor), it might also include compiler and the possibility to execute, debug and see the output of the program in order to speed up the development process.

API

Application Programming Interface. This could mean many things but usually it is a set of functions given to the disposition of the developer and which perform specific tasks and work only in a specific context.

Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
  • The "I" in "IDE" means it is more than a text editor at a minimum. It implies the ability to invoke compilation and view build output from within the environment and possibly the ability to execute, debug, and view program output as well. – Amardeep AC9MF Jul 21 '10 at 17:28
  • The key is "Development Environment" vs. "Integrated Development Environment". http://en.wikipedia.org/wiki/Integrated_development_environment – Amardeep AC9MF Jul 21 '10 at 17:30
  • @Amardeep, I agree with you, I've updated my answer to take your comment into account. – Darin Dimitrov Jul 21 '10 at 17:34
0

IDE is a tool for fast, easy and flexible development

An API is provided for an existing software. Using these third party applications can interact with main/primary application.

A framework or library are typically same. They are a common set of functionality for other software to use.

Ref: wiki for Framework, API

ankitjaininfo
  • 11,961
  • 7
  • 52
  • 75
0

Framework: a collection of libraries and programming practices to provide general functionality for a program, so that it doesn't have to be rewritten. Typically a framework for an application program will handle user display and input, among other things. The intent is usually to hide the more complex functionality of an application, and to encourage a certain style.

Library: A piece of software to provide certain functionality to other programs that call it. Typically designed to be reusable and modular, so that a library can be distributed and be useful without its source code.

Integrated Development Environment: A integrated set of tools to write programs and turn them into finished products, usually including at least an editor, compiler, linker, and debugger. IDEs sometimes provide support for frameworks.

Application Programming Interface: A set of function calls and sometimes variable accesses available to a program, typically being the public interface of one or more libraries.

David Thornley
  • 56,304
  • 9
  • 91
  • 158