For me, this basically boils down to:
While I know this is oversimplification, I really don't think that going inside all of this "architecture", "patterns" etc stuff is necessary when talking about such things.
While I like the analogy, I would describe it as completely opposite. A library gives you a single hammer. It's a great hammer but it doesn't work as a screwdriver. You'll have to find one of those yourself. On the other hand, a framework is the already built-house that only allows you to do the interior design.
Thanks for your reply!
I wouldn't say so, for example, look at jQuery. It gives you stuff like show, hide, its own selector syntax etc. Or, okay, as this may be a bad example, look at Velocity. It's a library with sole purpose of animating stuff. It gives your their syntax, their methods and produces output carefully designed by them.
Now look at React. You're basically getting Virtual DOM builder, with some state controls. And quite frankly, they don't care whether you build a button and place it among jQuery ones, a component that will be sold, a web application consisting of thousands of elements. They just give you the tools to do so.
Same is with the wood/house metaphor. You can get hammer, nails etc branded by Facebook or Google and build a house, a single room, or a box. The second option just gives you a house, perhaps it's a small house, perhaps it's just a room, because given library is focused on solving one thing. But it always be a ready-made solution.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.