Hammers and Nailguns#
People often ask me, “What is your tool for?”
They want an answer like “AI” or “ETL” or “Training Models”.
They want a clean and specific application for easy comparison.
I, of course, do not give them that satisfaction.
Instead I ask “What is Python for?” or “What is the cloud for?”
Them: Well, all sorts of different things.
Me: Exactly!
Unfortunately, this answer sucks.
Simple Tools, Humble Opinions#
The analogy I use here is of hammers and nailguns.
Nominally these tools do the same thing (nail things)
In reality they do very different things:
The nail gun puts nails into wood. The nailgun is 10x better than a hammer at doing this. If we have to nail 1000 nails then we should definitely get a nail gun.
The hammer whacks things. Those things can be nails, but they can also be wrenches, or rusty bolts, or drywall, or heck, even a zombie’s head.
I own a hammer, not a nailgun. I use it for all sorts of things (most recently to tap in drywall anchors). I can’t recall the last time I actually nailed something with it. Nailguns are better at nailing things, but it’s rare that that’s exactly what I want. Nailguns make enough assumptions about what I want to do that they’re rarely the right tool for me. The hammer’s design is more humble; it doesn’t assume much about how I want to use it.
Home improvement, like Python, is a place where all sorts of strange problems arise, and it’s great to have simple and flexible tools that extend our natural abilities (like whacking things) in any situation.
Nailguns are easier to market#
Writing copy for nailguns is easy
Nailguns: “Sink nails 10x faster, save time and energy!”
Hammers are harder
Hammers: “Whack things! So useful!”
Hammers have more applications and are far more commonly used. However the lack of a single “killer application” (just thousands of mundane ones) makes them awkward to pitch successfully.
I Like Hammers#
As a craftsman (in both wood and code) I like hammers. Hammers extend our natural abilities just a little (naturally our bodies know how to hit things, just not as hard). Hammers fit in our hands, are simple, and are intuitive to use in any situation.
We especially need hammers in unpredictable situations, which is exactly where Python data devs live. Python devs are the tip of an organizations problem-solving spear. They always get asked to tackle the wacky new dataset or computational method. Their problems are often novel and untested. Of course for any problem we would prefer a purpose built tool, but the market rarely responds to our needs that quickly, and by the time it does it’s usually someone else’s problem.
Simple tools with humble opinions like hammers are what I reach for when I face a new problem. They’re difficult to justify in words, but they’re always easy to use and effective at getting the job done.