Saturday, May 30, 2015

Framework, Library, API - What Are You!?

 
If you’re new to programming like me, you might be lost in all the labels. As I’ve studied, I’ve heard so many different labels tossed around — Framework, Library, API, Toolkit… they seemed to be used interchangeably. Then when I had an expert proof-read my resume, he told me “JQuery is a library not a framework, and AJAX is more of a technique”. I realized I needed to study a little bit of vocabulary here.

Well here’s what I understand, based on my research:

A Framework is like the skeleton of your software or website, it dictates the architecture of your software. Like the frame of a car, it’s typically a pre-designed template to support whatever it is you’re creating. Examples of frameworks: Bootstrap, Ember.

A Library is a bunch of code that you can easily use when developing any application, without having to focus on all the details of its inner workings. Libraries make development quicker and easier. Usually libraries focus on specific tasks, and don’t include all the services necessary to run an application like frameworks do. Examples of libraries: JQuery, Sass.

A Toolkit is similar to a library, in that it is a set of code that can be used for specific tasks. Toolkits are supposedly not so popular anymore, since libraries are now the preference.
Example: Dojo

An API (Application Programming Interface) is essentially the documentation, or the rules that govern a framework or library. You follow these rules to use a library correctly.

It seems that most of these resources clearly define themselves on their respective websites. Some seem to be oddly categorized though, for instance Angular defines itself as “a toolset for building a framework”, but I’ve also heard it referred to as a library. I suppose at a certain point the vocabulary becomes natural.


References

[1] http://stackoverflow.com/questions/3057526/framework-vs-toolkit-vs-library

[2] http://stackoverflow.com/questions/8772746/difference-between-framework-vs-library-vs-ide-vs-api-vs-sdk-vs-toolkits

[3] http://cs.lmu.edu/~ray/notes/toolkitsandframeworks/

No comments:

Post a Comment

Learning MongoDB from MySQL Background

Until this point, I've only had experience with using MySQL databases, but I've been wanting to try MongoDB because it has a fu...