Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I talked myself into a hole at work, and I need some good ideas to help me better describe why we should include both Dojo and Knockout in our new web project.

A little background: I do mostly computer-computer interactions when I program; updating states, reading/writing to the database -- Knockout is exactly where I want to be.

So I said, "I don't want to use Dojo"...meaning, "I don't want to do client side user experience/visual effects programming". I think it's a great to utilize other people's work, and I think re-inventing the wheel is a bad thing, generally. I just don't enjoy the process as much. But now its turned into an "all or nothing" decision.

Please help me come up with a good way to describe the difference between a library and a web framework, and not in this technical way. I need something simpler to get my point across.


We're using mustache.js, since it came with the PhoneGap tutorial. Good looking out, PhoneGap. I'd feel bad closing this question, since someone might want to read it later. Feel free to post some answers later on, but I should be okay, thanks!

share|improve this question

The Design Patterns and the OO movement guys had a definition along the lines of:

An application uses parts of a library, and provides the missing parts in a framework.

Django is a framework in which the user provides a data model, page templates, and URL routing information to have a working Web Application. PIL is a library for manipulating images in Python.

share|improve this answer
Im sorry to say this but I used the dreaded "D" word to relate Knockout to an MTV framework. Apparently that was a trigger for my boss. +1 for going where I did! :D – Droogans Jan 5 '12 at 18:24
+1, but I like: "A library is the code that your code calls. Your code is the library the framework calls." – nlawalker Jan 6 '12 at 4:45
+1...I said...look at the <script src='http://....>...notice how it's on the web? That's typical of libraries. Frameworks? You store those in your project (they don't do a lot of things outside of their sole purpose - linking DOM-things to OO-things, and eventually tables. – Droogans Jan 6 '12 at 15:28

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.