580 days since this post was last revised. Specific details are likely out of date.
Every few months somebody commits a cardinal sin of web development. They openly discuss or document a technology choice they have made that is contrary to the received wisdom of the ‘web community’.
You know what happens next. Other web developers, brave behind their avatars (even those of great standing), use social media to pour scorn on said developer and denounce them for their practice/proclamation.
In case you are in any doubt, let me exemplify the kind of proclamations I’m talking about:
- “Icon fonts are fine to use sometimes”
- “Sometimes using a div instead of a button element makes sense”
- “Maybe SRP/OOCSS isn’t the best way to architect your CSS”
- “Sometimes showing a graphic telling people to rotate their phone is OK”
- “There are times when having a separate mobile and desktop website is the best thing to do”
People, generally go ape at such statements; loosing all objectivity and often reacting with such vocal disdain you’d think the offender had drowned puppies.
We, the ‘web community’ (yes, I’m miming wanky air quotes there) need to grow up.
Sure, we should point out the shortcomings of the choices we and others make. But the swell of vitriol that flows in growing numbers whenever someone dare go against the grain just makes us seem like lemming-like zealots.
I’m of the believe that it’s a pattern of behaviour that holds back progress. Instead, I’m going to argue we should always begin with the mindset that Nicholas Zakas describes:
Instead of assuming that people are dumb, ignorant, and making mistakes, assume they are smart, doing their best, and that you lack context.
This is starting from a point of wisdom and balance — not anger and disgust. It’s sure to result in more productive discussion sooner, instead of the usual cooling off period following such an event before the various factions start to actually listen and discuss things like adults instead of petulant children.
One of the nice things about maturing as a person is that whenever you think you have the ‘one true way’ to do something, you remember it’s probably because you haven’t yet tried your solution with enough variations of the problem.
Therefore, someone else’s technology choices, while initially nonsensical to you, maybe the exact same choice you would make given the same variables. Or, once you step outside your current mindset, they may simply represent the choices you should be making in the future.
None of this should preclude you from doing due diligence as you make your choices. But be pragmatic, do your homework, make your call, and maybe even burn your idols.