1

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.

Robert Harvey
  • 199,517
yurisich
  • 1,391

1 Answers1

3

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.

Apalala
  • 2,283
  • 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 – yurisich Jan 05 '12 at 18:24
  • 3
    +1, but I like: "A library is the code that your code calls. Your code is the library the framework calls." – nlawalker Jan 06 '12 at 04: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. – yurisich Jan 06 '12 at 15:28