I recently fell down a particular YouTube rabbit hole (as one does) about “fake” martial arts (as one might do). Particular schools or teachers create an isolated environment that limits questioning and causes students and masters alike to believe they are capable of supernatural feats. To earn attention, fame, and money they sometimes challenge MMA fighters who end up wrecking them.
The video is linked below if anyone’s interested. Mild content warning: actual fights are depicted in agreed upon, competitive matches.
This got me thinking: What if we’re learning the programming equivalent of a “fake” martial art? How would we know?
What if using Clojure feels good, just like learning a psychic, no-touch martial art would likely feel good to learn, but then the work we actually produce doesn’t really hold up?
At which point does loyalty to a language\community\framework\tool get in the way of personal development?
Lastly, does the “fake” martial art programming language, framework, or tool start out that way and stay that way? Or does it start out grounded and practical and get twisted into something less effective over time?
Maybe there’s a cycle where an initially well-intentioned leader creates their own style\language\framework\tool as a response to what’s out there? It builds up a fervor due to how different is, then the leader slowly loses touch with the world at large. At that point, they are no longer aware that they took the base of what exists and improved upon it but now see themselves as an originator. They then try to produce more. Kind of like claiming you write the best code but you’ve never written a test or endured a code review.
Where leaders succeed is by accepting challenges from others in the space, learning of the shortcomings in their technique, then the cycle starts anew as they incorporate new developments into their practice.
The other possibility is that this is more like the feudal-era of programming languages where the majority of people spend their lives learning a particular school’s techniques and miss out on what the other, lesser-known languages can offer. For example, a lot of schools really focus on OOP techniques.
This has been on my mind a bit lately and I thought it would be interesting to explore. Any thoughts on this or am I connecting unrelated dots due to the lack of concrete links and an abundance of YouTube time on my hands?