Do not Kick against the Pricks

2025-08-03

An 16th century image of two farmers poking at a pair of yoked oxen with a goade

The old farmer has a path which his cattle must walk. To move the herd along, the farmer employs the use of a goad, also called a cattle prod or prick. The farmer pokes and prods at the herd to spur them forward.

The stubborn bull, with his own idea of where to go, tries to assert his will by kicking back at the annoying prods. The farmer is unphased. She is a safe distance away. All the bull manages to do is to hurt himself as he drives his own hooves into the pricks.

The phrase to kick against the pricks thus describes the act of fighting against the inevitable, managing only to harm one's self. It is hubris and stubbornness in one vivid image.


At my current job, I work with Apex—Salesforce's proprietary backend language that resembles Java 8. Getting started was terrible. I had come from Rust and immediately missed pattern matching, type aliases, closures, and many other Functional Programming niceties. I hated how Apex demanded mutable state and class definitions and imperative for loops.

So I fought back. "OOP sucks," I thought, "so I will work with functions." I wrote each of my services as a pure functions in static methods. And what did I get? Long, inflexible, and untestable functions. I resisted the language's design principles and paid for it. I was kicking against the pricks.

Have you ever:

If so, then you may be kicking against the pricks.

Do not be afraid to abandon what feels smarter in favor of what is idiomatic. Lean into the patterns that your language or framework of choice are designed for.

Stephen Funk