I was recently browsing around on Twitter X where I came across this tweet post:
I’m reading about HTML semantics and how they are often disregarded by developers and tools when producing markup and styling, and I wonder if we are leaning too much on the side of developer ergonomics and profits over embracing the platform principles.
My immediate reaction was in defence of practical ergonomics. As a self-taught developer who learned through practice, often violating principles, I’m prone to prefer practice over principle.
I believe principles should not stifle progress in the name of upholding theory and principle.
But this is more than just a defensive gut reaction, this tweet highlights a fundamental issue with theory-based learning, and a common misunderstanding of what breeds innovation and how principles work in practice.
Success Breeds Principles
When you learn a topic from its theory, principles are often the starting point – the sacred frameworks by which best practices emerge, and innovation is founded upon.
Unfortunately this is misleading, and often incorrect.
Principles are usually the byproduct of success, not the cause of it.
And we see this in most innovations:
- The Wright brothers achieved flight before fully understanding the physics behind the airfoil,
- James Dyson learned what makes a great double cyclone vacuum only after building them,
- The bicycle was invented without an understanding of the mechanisms which maintain its balance.
So real-world successes create the best practices that later become the standards.
This is not clear for a student, and often causes misguidance. The student who learns theory as the foundation often confines their work to strictly follow principle in an ever-changing world which requires adaptation.
Practice over Theory, Evolution, and Life
There’s a lot to learn from principles and theory. But we should always re-evaluate and push its limits by adapting it to the world around us, constantly challenging if it truly makes things easier/faster/cheaper/better.
If there’s a way to make things more ergonomic, we should try that no matter if it violates principles. It’s from the success or failure of that experiment, that the magic of evolution is unlocked, a principle is founded, and our progress is pushed one step forward.
This is experimental evolution and it’s the foundation of principles, capitalism, and life. We must write today’s rules with an eye on what will work tomorrow, not yesterday.
This is also why it’s important for the makers of policies and standards to be connected with the real-time experimentation in a market, and not in silo, to constantly adapt, iterate, and refine standards and principles according to real-world outcomes.
In short: Remember success defines principles, not the other way around. So developers, go ahead and take the ergonomical profitable path, in violation of the HTML semantics, and pioneer a better way for the future.