“Don’t Reinvent the Wheel” and Other Web Developer Cop-outs

Image for post
Image for post

In programming and development, there are a lot of lame excuses we hear mindlessly parroted. Many of them started out as good ideas — take Knuths “premature optimization” — but have been twisted, spun, and misinterpreted far beyond the original scope for one reason: To be a lame excuse for people to either wallow in ignorance, or somehow get away with doing a half-assed job.

“Framework” developers and users topping the list of people who use these catch-phrase excuses for their shoddy work, most of which is just slopping together disparate code and just hoping it all plays nice together.

The Excuses

Typically said by those who use massive bloated poorly written code. Why? Because the truth is they don’t actually know how to do it, never learned enough of the underlying language to do it, and as such are unqualified to even know if the solution they chose is any good!

That’s one of the many traps of frameworks and the blind copy-pasta of other people’s code before you even know enough of the underlying language to recognize when you’re being saddled up and taken for a ride.

Sad part is in most cases any qualified programmer could recreate the task in question in not just a half dozen or less lines of code, in better quality code, in more legible and digestible code… but also in a fraction the time it takes to figure out how the off the shelf answer even works!

But then in most cases the lions share of people calling themselves developers out there again refuse to learn how to do it, or simply don’t care about “how” because they’re too focused on “what”. They want the task done, but they don’t care about how, or why… and that is why you fail.

‘Tis oft akin to get rich quick scams. Many people think that web development is “easy” or that HTML is “simple”, and view it as a way to make money for very little effort or investment. This attitude that “anyone can just take off the shelf software and be successful” should set off the bullshit alarm of anyone who actually understands business! In that way many of these “systems” with their junk code being slopped together by people who don’t even really understand any of it ends up the Internet equivalent of 3AM TV infomercials like “make money fast in real estate” or “anyone can apply for a national grant” — just send us $100 a month for the next 12 months. BARF!

If anyone could do it as easy as downloading wordpress, grabbing a free theme and plugins, and dicking around with bootstrap, we’d all be rich. Life doesn’t work that way.

Image for post
Image for post
Huzzah!!! I’m a PROGRAMMER!

If nothing else, imagine if someone had said “don’t reinvent the wheel” to John Dunlop or Édouard Michelin. We’d still be riding around on steel hoops heat-shrunk onto wooden rims. This “horse and buggy” mentality is why so many projects fail to innovate, and therefor fail to succeed. Scraping by on as little effort as possible is NOT a road to success!

With this attitude so prevalent, is it any wonder most every codebase is now knee-deep in dependency hell? What with people layering framework upon framework, library upon library, import upon import resulting in megabytes of code — most of which isn’t even used — to do what any competent developer could probably handle in 6 lines or less of vanilla code?

And that’s no exaggeration, I’ve seen it first hand. Google “NPM” for more…

For those of you unfamiliar with it, decades ago Donald Knuth wrote:

Premature optimization is the root of all evil

But much like the dimwits who pine for penis-extensions obsessing over “shall not be infringed” — to the exclusion of the entire rest of the 2nd amendment — it is quoted out of context and has its intent distorted far beyond the original scope and meaning. The entire passage reads:

Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.

The biggest problem though is that often “good practices” end up being blanket labeled as “premature optimization” by lazy know-nothings who just don’t want to change the way they’ve always sleazed code together.

See simple things like single vs. double quotes or string addition vs. comma delimits in languages like PHP. You’ll hear all sorts of stupidity like “It’s more work to use singles” (Really? NOT hitting shift is “more work”?!?), or “it’s premature optimization to worry about the memory footprint difference, besides RAM is cheap now.”

When what it really comes down to is lazy sloppy practices defended by rationalization and evasion. Good practices that pay benefits and require little to no extra effort are NOT “premature optimization”… and even in cases where they are, they often fall into that 3%!

A few months ago I dealt with this one on a job site, where a know-nothing was saying that my suggestion of moving a certain bit of code to before the loop it was inside was “premature optimization”

I’m sorry, but any of you out there who think that moving a piece of static code that always evaluated the same way out of a loop was a bad idea? Well… go teach your grandma to suck eggs. Actually, no… Not sorry one damned bit!

Another classic of the framework fanboys. They’ll talk about how without the frameworks their projects would take years, and how with the framework it only took them two weeks — over things that are 40 minutes work for anyone qualified to work with the underlying languages. This is worst amongst front-end frameworks — those monuments to ignorance, incompetence, and ineptitude — but is prevalent amongst all developers who basically refuse to learn the languages they claim to know well enough to write programs with.

Because they dove for the frameworks long before they even had the slightest clue how to do things on their own, they form a confirmation bias that leads them to make nonsensical statements like that.

A variations of this is the “better for collaboration” claim, as if magically developers are all too stupid to understand the base language or code written in it. This becomes comedy gold in front-end development where the dumbass frameworks start you out with twice the code you should even have once done, to write two to ten times the markup needed, with having to write as much if not more CSS and JavaScript than you’d have without the framework. But tell me again how much easier it was and how much less time it took.

And when pressed, rather than proof or supporting facts, the people using this fallacy simply go “wah wah, is not” and then repeat the same unfounded assertions. It’s actually something of a tell of how full of manure these clowns often are. When you question them asking “HOW” they go “because” like a parent sick of their child asking “why?” repeating the same non-answer rhetoric.

Even bigger tell is when they try to paint you the bad guy for daring to ask the question.

This one comes in multiple flavors; “Fortune 500 companies use this”, “Some big name in the industry speaks for it”, “It was used by Twitter or Google”.

And if all the other lemmings go running off the cliff?

It’s the bandwagon fallacy. Just because something is popular, or used by a success, doesn’t mean it’s good, or right, or just. I equate this to how Christians will often say “2.2 billion people can’t be wrong”; ignoring the other 5 billion plus on the planet who think you’re full of ****!

People believe all sorts of crazy nonsense.

Billions of people think there’s a magical genocidal maniac in the sky threatening us with eternal torment “because he loves us”

Millions of people actually believe that Donald Trump is a “really stable genius”

Millions of people think that “naturopathy” is a legitimate science

Millions of people think jet fuel doesn’t burn hot enough to compromise the load bearing capacity of steel

Millions of people think the earth is flat despite centuries of data and a plethora of real-world proof to the contrary.

Thousands of women shoved a jade egg up their steamed clam because Gwenyth Paltrow said it was good for their health. Enjoy your toxic shock syndrome ladies.

Thousands of people think the dirtbag calling himself an avocado is qualified to given them advice on healthy living.

Millions of people think Billie Eilish deserved a Grammy despite not actually being able to sing. Almost as if it were a popularity contest and not at all based on the quality of music.

Doesn’t make a single blasted one of them right!

Image for post
Image for post
Jane, you ignorant slut!

Bandwagon and confirmation bias are two of the most powerful tools in the propagandists arsenal, and it’s painfully shocking how web developers — people you’d think would have some degree of logic and reason given the task — are easily suckered by a pretty facade, bald faced lies wrapped in soothing-syrup words, and a slick marketing blurb in their never ending pursuit of the hot and trendy.

I suspect this is why many developers hop between languages and development stacks with all the frequency of a cheap HAM radio. Probably made easier by the fact they never ACTUALLY learn or invest in any of these languages, and instead just blindly use frameworks or copy from others. It’s a lot easier to turn about on a dime when you’ve not “wasted’ the time learning how to ACTUALLY do anything.

Just like how many of them likely got through college. Cliff notes, copying others, and pretending they are actually learning anything… mostly so they can make it to the next kegger.

Confirmation bias. Because they avoided notice, never had “real” traffic before, and in general were just plain lucky, the idea that “yeah, well you’ve been doing it wrong for years” ends up simply beyond their comprehension.

This particular bias leads to the mental failing known as cognitive dissonance. Because they got a result — ANY result — using broken methodologies, then continued down the path of even more broken garbage, they assume everything is hunky-dory. As such when the failings finally start biting them, they refuse to believe their choices of tools or methodology is what wrong. Difficulty of maintenance; complaints (and even legal action) regarding accessibility; dwindling user-base and lack of growth; rapidly climbing hosting needs and costs if the content is good enough that the failings don’t prevent said growth… etc, etc… problems common to most normal projects that could have been avoided from the start.

But no, because it was “fine” for them for a while, it can’t be “wrong” now and instead of fixing deep rooted issues, they instead look for more junk code to just blindly throw at the problem. I deal with this all the time in accessibility consulting where they argue the simplest of changes or the removal of their favorite pet framework because they simply flat out cannot believe that’s what’s wrong!

And they use “but we’ve BEEN fine” as a mask to hide either ignorance, or the simple fact they have their head stuck up the 1990’s backside.

Image for post
Image for post
My God man, drilling holes in his head is not the answer! The artery must be repaired! Now, put away your butcher’s knives and let me save this patient before it’s too late!

Look no further than Domino’s response to a blind man and the ensuing legal case. Instead of going “my bad”, admitting fault, and settling early, they fought even admitting wrongdoing tooth and nail until it escalated to a multi-million dollar lawsuit. They fought it so hard and for so long that they appealed it all the way to the Supreme Court, who basically told them to sod off.

Their developers REFUSED to admit how they built the site was wrong (and still is), their upper management believed them, and they threw millions of dollars into a dumpster fire of defense lawyers that in the end, only cost them two to five times what a settlement AND “just fixing the blasted site” would have.

Seriously, I bet the guy wouldn’t have gotten as far as getting an ambulance chaser if they just said “Yes, it’s a problem. Let us make it up to you with some free pizza’s and we’ll get on fixing it right away”. Instead they insulted the guy, refused to say they did anything wrong, STILL haven’t fixed the issue, and lost a court battle that ended up with a pretty big finding against them.

And when you point this out to other developers who were not involved in this, many will try to demonize the blind guy who stood up for right to access. Why? Because it points out that they too probably aren’t qualified to do their jobs either.

A half-truth and card-stacked statement, visitors do actually care. They just don’t know how to articulate it!

Visitors know when a UI has accessibility problems. They know when the page is slow loading. They know when simple tasks they can do on “normal” sites are made harder by “JS for nothing” and stupid “bling bling” animated junk. They recognize when a site is devoid of content or uses a layout that is hard to navigate. They know it when an error occurs but there’s no feedback to tell you something went wrong.

They just don’t know that sloppy code under the hood is WHY such sites suck. They don’t know that such issues are caused by non-semantic markup; using PX instead of EM or willy-nilly mixing the two; using two to ten times the HTML needed to do the job; using one to twenty times the JavaScript needed; broken practices that result in pages that don’t gracefully degrade scripting or even CSS off; That the dozens or even hundreds of separate files results in so much handshaking it adds tens of seconds or even minutes to the load time.

They don’t know WHY the sites suck, they only know that they suck. They suck for reasons, so saying that they don’t care is ignorant nonsense and again little more than deflecting responsibility.

Ah “target audience”, a favorite of those who don’t know what it really means, never did a single proper study, or based their conclusion on survivorship bias.

Whilst an entirely legitimate marketing term, it has very little meaning on the web. There is one simple truth about web development:

The only thing we can know for sure is that we have no idea who will visit the website or how they will do so.

Survivorship bias again rears its ugly head on this one a lot. For those not well versed in it what basically occurs is people look so much at the group they’re engaging or the data they have, they’re ignoring what they don’t have.

A classic case study for this is allied forces in World War II. They were looking at the damage planes that made it back from battle had taken, and were set on armoring the parts with the most damage. Seems reasonable, right? WRONG!

Image for post
Image for post
Abraham Wald — a Hungarian Jewish Mathematician — saw the flaw in using information like that in the diagram above on where to reinforce and armor warplanes.

Do you see the logic flaw? They were basing data on the planes THAT CAME BACK, not those that didn’t come back. The above diagram shows where the planes could take hits and survive, NOT where you should armor them to improve survivability!

We see the same nonsense with “target audience” where they base their assumptions on the audience they are reaching, instead of those who they aren’t! That’s the flaw in relying on your own statistics to determine “target audience” as that’s not your target, that’s just who you’re actually hitting! For all you know — if looking at just your own traffic stats — you could be putting every round into the berm and missing the target altogether!

I see this a good deal with marketing executives, who get so obsessed with certain details they don’t realize they already won. I had a client back in July/August 2019 where their VP of marketing lost her flipping mind when I removed some advertisements from inside the account portal. Said ads were making it take too long and be painful to use. She literally started screaming at me “We have to keep those so we can get more users!”

Do you see the logic flaw? If they’re logged into the portal they’re already users! Don’t fight battles you already won!

If the ads had been about up-selling the users something, or generated revenue for being external, I’d have found a way to make it work. But this particular know-nothing advertising and marketing exec refused to see the flaws in their approach. She fought me over their illegible colours and equally garbage webfonts because “branding”. She fought me over removing around two-thirds the advertising.

She and their IT director both fought me over throwing their broken React and Bootstrap garbage in the dumpster where it belonged. And they used all the same lame excuses presented here as a rather pathetic attempt to resist change, but more importantly to maintain the status quo. Shocking in the face of their company being dragged through the legal system.

Which is how I as a “lowly little nobody” (her words) and “pedantic nobody” (his words) got both of them fired from six figure a year jobs.

Really what it comes down to with “target audience” is that it should not be “those people aren’t who we want to reach!” That’s no recipe for success. One should always be trying to expand your audience and extend your reach. You rest on your laurels? Well, look at what happened to DEC, or Wang, or WYSE, or IBM… or even what’s currently happening to Intel.

This should be a valid claim, but typically ’tis not used to talk about quality of content, ease of access, usability, accessibility, etc, etc… NO! ’Tis used instead to talk about flashy graphics, bandwidth wasting animations, auto-playing videos that just piss of users, and so forth.

You cannot “engage’ the user by pissing them off. A lot of the junk people put on websites does little more than that. Vague interface choices, loss of context, failing to meet accessibility minimums, and for what? So some graphic artists can spank it on their tablet and JS fanboy can cream their panties over the latest jQuery derptitude?

It comes down to something my dearly departed friend and compatriot used to say:

People don’t visit websites for the fancy layouts or graphics you hang around the content. They visit for the CONTENT! — Dan Schulz (RIP)

Which is not to say that all animations and graphics are bad, but look at how successful, popular, and useful “flat” design was, which basically threw all that extra nonsense in the trash… hell, it kneed skeuomorphism in the groin!

And yet, despite the lessons learned and improvements brought by concepts like “flat plus” or “Flat 2.0”, skeuomorphism and realism are making a slow and ugly return… resulting in slow loading, confusing to navigate sites and applications.

Sadly far too often all this fancy bling amounts to nothing more than attempts to dump a can of shellac on a pile. You can polish it to a fine sheen, but that changes not that it’s just bug excrement on horse manure.

It is thrown so often at websites devoid of useful content, that it’s damned near a running gag at this point.

Because if the site is hard to use, slow loading, devoid of “content of value”,m and tells users with accessibility needs to BOHICA, it really doesn’t matter how flipping pretty you make it!

Whilst some really ugly websites — even with accessibility failings — have hit the sky. Why? CONTENT OF VALUE!

Don’t believe me? Look at Google, Craigslist, E-Bay…

Whilst sure, we can’t all be those sites, their content and easy access are what put them on top. Even if Google does seem bound and determined to forget what made them #1 in the first place.

Whenever a variation of this one comes up, it’s most always an ad-hominem attack because they have nothing left to defend themselves with. Even more of a laugh when people who’ve worked the same place for a decade in their own little echo-chamber say it. Pure comedy when people half your age with a third the experience say it to your face.

It is quite literally “attack or discredit the messenger” because they don’t want to hear the message. This is a common problem as all these clowns usually have for defense is lame excuses and the propaganda BS they’ve swallowed hook, line, sinker, and a bit o’ the rod. Whenever people lack facts to support their views, you’ll hear “Oh you don’t work on real projects” or “you just don’t do the stuff we need to do” or the all time popular:

BULLCOOKIES! It’s exactly what was said and don’t pretend otherwise!

“How you said it” is always a fallback for people who just don’t want to hear a message they disagree with. It’s part of the “don’t make waves” mentality designed to perpetuate the status quo; regardless of how badly the world is burning down around us. It’s a bit like the joke from the South Park movie:

There’s nothing wrong with sex and violence so long as nobody uses any naughty words! — Sheila Broflovski

Sometimes naughty words and harsh language are what’s entirely justified and required when things go pear-shaped. But no, those of us effected, negatively impacted, or there to actually fix things are supposed to “zip it” and allow the scam artist dirtbags to run roughshod over everything… just so long as nobody gets offended. A concept I find pretty damned offensive!

But no, let’s all just slap the rose coloured glasses on everyone’s head, whisper soothing syrup lies in each-other’s ears, hold hands, march down the path to failure, where we all sing “kumbaya” around the hippy-dippy feel-good drum circle… BARF!

It’s the attitude of “toxic positivity” where “good vibes only” is used as a “juke and jive” to avoid personal responsibility. Such “little old lady at the afternoon tea party” mentality doing nothing more than enabling snake oil peddlers to take advantage of the ignorant and wishful thinkers.

Industry Buzzwords, Another Warning Sign

In addition to the deflections, rhetoric, and catch-phrases used to deflect the discussion away from their own ineptitude, developers have managed to create an entire language of bullshit that even marketing executives have to stand in rock-star awe of.

There are certain words now that when I hear them, it sets off my “bullshit alarm” even when the words have legitimate meaning and relevance. This is because most of the time they are used, what you have is some pedantic career educator or know-nothing muppet running their mouth.

https://www.youtube.com/watch?v=GKqhHhLNA7o

Performant, imperative, declarative, “functional programming”, agile, adaptive design, actionable, transparency, side-effects, currying, functor, monad, reactive, purity, cloud, viral, boilerplate… whilst in many cases such words do apply, most of the time people start prattling on about this nonsense I wait for them to start talking about their totally proactive paradigms.

Hell, most of these clowns talk about “user experience” whilst promoting practices that piss on accessibility from so on-high you’d think the almighty just got back from a kegger!

Makes me want to go down to the pub to consume a few leisure units.

https://www.youtube.com/watch?v=Dnkow4y1cyw

Conclusion — Do Your Blasted Job!

Image for post
Image for post
Well hello Mr. fancy-pants. I got news for you pal, you ain’t leading but two things right now… Jack and shit… and Jack left town.

For the most part that’s all this really amounts to, people looking for justification and defense over having not done their job, being incapable of actually doing the job they’ve been hired for, and finding ways to make it look like they’re the “expert” when in point of fact they know but two things; and Jack left town.

So many developers out there are little more than frauds, and you can tell it by the tools they use, the claims they make, and the nonsensical rhetoric they spew. Look, if you’re in trouble, if you’re in over your head, if the company you work for is in deep doo doo, man the **** up, admit you need help, and stop making excuses!

And maybe… just maybe… learn something more than “I can copy what other people have done” because if it was REALLY that easy, everyone would be a millionaire success story. It’s called work, not “Liver-Lips McGrowl’s Happy Happy Fun Time Jamboree”

But who knows, maybe I’m just too blue collar and results oriented for the mainstream malarkey of white collar criminals and the dime-store hoodoo they peddle to the apathetic, ignorant, and just plain wishful thinking.

🎵 Dime-store hoodoo. Five and ten voodoo… I get what I want. 🎵

Written by

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