You Don’t Need a Bazooka to Hunt Rabbits

Is this you?

You may remember my recent article on how to make an API using PHP. It’s a real-page-turner (or mouse-scroller).

It shows you how to build a basic-functionality API to return a JSON object containing an array of numbers back to the caller. It’s little, concise, efficient and still in operation right now.

I posted links to it to show other people, and for the most part it was pretty well received. A lot of people learned how simple the concept of an API really can be, which helped them to understand just how complex an API really can be. That, of course, was the goal of the article, so I call it an absolute win.

But there’s always that guy.

If you don’t know “that guy” there’s a chance that you ARE “that guy”

You know the guy; many industries, and especially people in the gaming community call him a “rules lawyer.” He’s the guy who always raises that one seemingly trivial detail to paramount obstruction.

It’s the rules-lawyer’s one trick, and often they can catch something important, but just as often (okay, more often) they’re usually just hacking away at your creation because they literally have nothing else to offer.

Take this blog post, f’rxample: how many literary “rules” do you think I have broken already — in the five paragraphs I’ve put down here?

All of them? Maybe. I’m not going to bother counting, you’re still here and seem to be keeping up, so let the linguistic lawyers judge us all they want.

Relevant XKCD

It’s a fine line to determine whether the person criticizing your creation is simply snarking wildly or is actively attempting to assist in making you better at your craft. A good measure of their sincerity is to simply view their own portfolio. Rules lawyers are rarely creators themselves, because if they were, they would understand the flexibility involved in the act of creation.

Lately the rules-lawyers have been branching out, insinuating their lofty requirements (for everyone but themselves) into the areas of style, format and standards.

When I presented that blog article about the PHP API, here’s what “that guy” had to say:

“$_GET? And you don’t even use a framework!”

How about that? I used $_GET to $_GET a url parameter. And (gasp) how dare I go wabbit hunting without my bazooka?!

Off with his head!

That’s the mentality; here’s how to deal with it:

I used to let those guys bother me, but they don’t any more. One thing that really makes them wither is when you always provide a link to your github repo. Few things serve up a heaping helping of humble pie more than instant access to the code so you can “fix” it yourself.

In 40 years I’ve written literally (correct use of the word) thousands of apps. All of them functioned, many don’t suck. The thing is, out of all the rules-lawyers I’ve encountered in that time, not one has made the slightest effort to correct any of the grievous shortcomings they’ve always found in my code.

Not one. Ever.

You know why? Because they can’t. And here’s why. The fact that you’re reading this suggests that you possess the perspicacity to discern the relative meaning of unfamiliar terms simply through context.

This provides you with an understanding of words that are normally not in your available inventory of words to use yourself. And, yes, I had to look up “perspicacity” to see if I was using it right — but I bet you didn’t have to.

Have I ever told you my definition of the difference between “intelligence” and “genius?”

Intelligent people are able to understand complexity; genius people are able to create it.

The world is full of consumers and creators. You’re a creator. So create.

Rules Lawyer Kryptonite: “show me”

Here’s a real-world example you can use: have you ever heard of a website called “Facebook?” Small, social-media platform used by Harvard students to basically see what bar everyone’s hanging out at tonight?

When that site blew up, you know what all the developers they hired spent the first six months of their tenure there doing? Refactoring the code. Standardizing, structuring, streamlining; all things they’re still doing today.

But do you know why that site blew up like it did? Because it worked.

Do you want to write concise, efficient and elegant code the first time, every time? Well that would be great. Are you going to beat yourself up over every instance of inline-styling, repeated code or uncommented loop? Maybe don’t.

But do you need to install a framework and countless libraries to build an API in PHP to deliver an array of random numbers? I’m sticking with “no.”

Maybe if 11ty-zillion people suddenly need access to your data you can get your newly hired team of developers to streamline and scale it. But you don’t — let me repeat that — -you do NOT — have to scale the first instance of your software to accommodate a global audience.

Good luck even getting them to look at it in the first place.

Just keep moving forward. Have fun. Write your code. Boldly present it to your peers. Provide the rules-lawyers the opportunity to complain and condescend. That’s how they enjoy themselves. Let them, but also enjoy yourself. Let them fork-clone-and-refactor.

And regardless of what the rules lawyers would have you believe, you don’t need a bazooka to hunt rabbits.



4a 75 73 74 20 61 6e 6f 74 68 65 72 20 63 6f 6d 70 75 74 65 72 20 6e 65 72 64 20 77 69 74 68 20 61 20 62 6c 6f 67

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

4a 75 73 74 20 61 6e 6f 74 68 65 72 20 63 6f 6d 70 75 74 65 72 20 6e 65 72 64 20 77 69 74 68 20 61 20 62 6c 6f 67