Frameworks Are Not Tools

A friend of mine, a long time ago, asked me why it is that “gun guys” are so interested in firearms in the first place. “They’re just tools,” he said. “I have a detached interest in my tools, like the knives I use for cooking, or the tools I use in my garden, but they’re not objects of endless comparison and discussion for me.”

My response was that a pistol, or a rifle, or any other modern firearm, is not merely a tool. It is a machine. It has interrelated interdependent moving parts that all work in concert. (Additionally, it is powered by explosives, which makes it even more interesting.)

My friend got the point after that. Tools are not especially interesting because they are not especially complex. But machines are fascinating because they are complex.

With that in mind, we have to realize that frameworks are not tools. Frameworks are machines. Each one has the code equivalent of interrelated interdependent moving parts. Frameworks are fascinating for the same reasons that machines are fascinating.

So the next time someone says “use the right tool for the job” and then mentions a framework, consider that the person making the framework suggestion might not be thinking about frameworks in the right way. Indeed, they might be thinking about something else entirely, and using “the framework” as a shorthand for whatever concept they really have in mind.


Are you stuck with a legacy PHP application? You should buy my book because it gives you a step-by-step guide to improving your codebase, all while keeping it running the whole time.

10 thoughts on “Frameworks Are Not Tools

  1. […] A friend of mine, a long time ago, asked me why it is that “gun guys” are so interested in firearms in the first place. “They’re just tools,” he said. “I have a detached interest in my tools, like the knives I use for cooking, or the tools I use …read more […]

  2. Interesting point, and worth considering.

    But it also might be slightly pedantic. When I say framework I know it’s a complex “machine” but it’s also a tool in a more generic sense. Saying tool — though slightly inaccurate — when referring to something like a PHP framework is easier.

    It also might be more accurate than saying machine because the machine is more of an analog or metaphor for what a framework actually is. For example, a framework doesn’t do anything by itself, unlike a real machine.

    Maybe mechanism or complex mechanism is closer to the truth.

    I completely get your point. Sometimes it’s also fun to split hairs.

  3. Frameworks can also be ideologies and communities unto themselves. There’s a lot of good that comes with this, but there’s a lot of bad, too.

    Too often I see folks drink the koolaid of unable to see beyond “the way” of doing things.

    I believe this mindset is not healthy to PHP (or any language) as a whole.

  4. But knives are interesting! The choice of tool is very important depending on the application. Technique, application, style and intuition is what seems to distinguish the amateur chef from the professional.

    I would offer that I would rather have a selection of hand picked knives over a “block of knives” set, but I can see the convenience of just pulling one of the rack.

    Same argument applies to frameworks vs components.

    • Technique, application, style and intuition is what seems to distinguish the amateur chef from the professional.

      That’s very insightful. I will have to use that phrase some day (with attribution of course).

    • Cooking knives are, in fact, “objects of endless comparison and discussion” for many people who are into that sort of thing.

      I’m not sure the central point holds, because it’s not just machines that draw this sort of attention

      The fact is, just as “gun guys” (maybe better to say “gun folks”) are into their gun machines, “iron fry pan folks” are into their iron fry pans, “dahlia folks” are into their dahlias, “Papillion dog folks” and so on. These counterexamples are real, not made up. And dahlias, dogs and frying pans certainly aren’t machinery.

  5. […] Paul M. Jones faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://paul-m-jones.com/archives/6175 […]

Leave a Reply

Your email address will not be published. Required fields are marked *