DEV Community

Discussion on: What is the importance of understanding libraries and frameworks?

Collapse
 
jmcp profile image
James McPherson

I don't agree (and strongly so) with your representation. Linking an application means that you use tools to bolt together all the components which you need in order to make the application work.

Whether you use static or dynamic linking is irrelevant - you're still using libraries.

A framework, otoh, is an API. It's a (more or less) abstract definition of exposed surfaces between components.

Those that I'm most familiar with are for hardware support in Solaris - the Solaris MultiPathed IO (mpxio) stack. The API/framework in that area is a set of interfaces which driver writers are expected to support, so that software further up the stack (closer to userspace) can use the appropriate function calls and callbacks to do the right thing. Having a [documented, supported] framework allows you, the vendor, to get third parties (Emulex, QLogic, Brocade et al) to write their drivers for your OS, rather than requiring the vendor have those staff in-house and extra lawyers to do the IP licensing dance.

The library implements the framework.