Simon Brunning wrote: > On 8/15/05, Rocco Moretti <[EMAIL PROTECTED]> wrote: > >>Which lead me to the question - what's the difference between a library >>and a framework? > > > If you call its code, it's a library. If it calls yours, it's a framework.
Although that definition probably makes sense from a pure C perspective, where practically everything you deal with is a primitive, I'm not sure how much use the distinction is with a OO/duck typing language like Python. Say you have a "library" of objects - you (as a user) subclass one and change one of it's functions subtly (say to add logging). Now when the library code runs, it'll call into your code. Voila! Framework. Or say you have a library function which takes a file object as a parameter. Instead of feeding it a Python file, you feed it your own file-like object. Now it'll call your code whenever you do a read/write/seek etc. In fact, since the parameter was probably documented just as "takes a file", you're never quite sure which functions in your objects will get called, short of reading the source of the library - excuse me, it's a framework now. In fact, since Python works with duck typing, and even basic operations like addition and element access can be customized for any parameter, there is no guarantee that users' code won't get called when they use your "library." So is the library/framework distinction useful in Python, especially w/r/t Andy Smith's remarks? -- http://mail.python.org/mailman/listinfo/python-list