Can Frameworks lead to tribalism among developers
Published on by Percy Mamedy
In the modern world of web development, it is common practice to make use of frameworks for building large scale applications instead of starting from scratch. This approach allows us developers, to concentrate on solving problems related to the application and let the framework worry about the heavy lifting. These frameworks have been well tested and battle proven; hence giving us the assurance of developing solid applications.
In the PHP world, we have seen the emergence of hundreds of frameworks thanks to a large and dedicated community. Some developers even develop their own framework re-using components and parts of other frameworks thanks to an awesome tool called composer.
This tool has revolutionized the PHP world and made sharing and re-use of codes super-duper easy and fun.
Framework == Clan || Framework == Community ?
As any PHP developer, it came a time in my career where I had to choose a framework to master. The choice was not as straight forward as it seems to me now, but I eventually settled for Laravel. As I started learning all about the framework, I started to fall in love with it. I started to follow all of its development cycles, learning about its history, it’s authors and started to get involved in its online community as much as possible and so on. I became completely addicted to Laravel and I still am.
As a result, every other PHP framework seemed alien or just straight inferior compared to Laravel, even if they did perform as well and even if they were very popular. In my mind, Laravel was the only framework that PHP needed.
In my home country of Mauritius, Laravel is not as popular as Symfony (another great PHP framework) and certainly it came a time when I had to work with Symfony to earn a living (I currently work with both Laravel and Symfony). I started hence exchanging with some good Symfony developers and I was surprised that some of them never even heard of Laravel, some of them thought Laravel was a mix of WordPress and Symfony and others just straight thought Laravel was not even object oriented. I mean how could they; Laravel is so popular and they were unaware of its existence !
I took it upon myself that I had to enlighten them, show them that there is a better framework out there A.K.A Laravel. However, the response was not positive. No one wanted to even consider Laravel over Symfony. Everyone was stuck in their own clan and resistant to change; myself included.
Would you defend your clan ?
As part of an experiment, I wanted to see how my fellow developers would react and to what extent they were willing to go to defend their own frameworks if I praised Laravel as being the best framework out there.
As expected, responses were flowing in; some even brutal. Everyone defended their framework of choice with extreme passion and dedication.
This has lead me to the conclusion that there is an intense sense of identity and kinship that developers have around their framework of choice. I am sure the results would have been similar if I were to praise a programming language instead of a framework.
But why would that be the case; well to put it simply it’s in our nature, tribalism has a very adaptive effect in human evolution. Humans are social animals, and ill-equipped to live on their own. Tribalism and social bonding help to keep individuals committed to the group.
In conclusion, I am in the favor that frameworks can lead to tribalism among us developers but it doesn’t have to. Once you open yourself to change only then you may realize your true potential.
We all as developers feel this intense love and passion for our tools, it’s part of who we are, and I think it’s what makes our Job so unique; we code because we enjoy to and because we love to.
If I’ve learned anything from my journey in mastering Symfony (and the journey is not over) is that all frameworks have their pros and cons, and they all work in their own ways and have their own philosophies. It turned out all I needed was to open myself to a little change.