The other day I was at a Python meetup here in Austin and was talking with another developer about API development. He asked me, "Are you a fan of Django?". I was a little apprehensive in answering this question. If he had asked, "Do you enjoy using Django" or "Do you think Django is a reliable tool to build API endpoints" I would have instantly responded with a "yes". His use of the word "fan" gave me pause.
A "fan" to me is someone who follows a sports team. Someone who regardless of the team's performance would stand by them. I am a fan of Georgia Tech football despite their consistent mediocrity. I am a fan of the Carolina Panthers. I'm a fan of a few bands or entertainers or comedians.
So obviously this developer wasn't insinuating that I had some irrational attachment to Django. He just wanted to know if I liked and used it. So sure I responded "yes".
I compare this to my time in manufacturing and this...just isn't a phenomenon. Mechanics are not "fans" of an allen wrench or a phillips-head screw driver. They are tools. They have different functions and have different use cases. A headset wrench takes off the headset of a bicycle, a spoke wrench is to balance and take the wheel hubs apart. An engineer will use an FMEA for risk analysis and a House of Quality for design. An operator will use a broom to sweep and a blade to cut yarn - there is little preferences for tool sets.
One could argue that this is a slightly disingenuous comparison as a broom is for sweeping and a blade is for cutting which are two completely different functions whereas Java and C# fill similar roles. I would argue that they are different enough that their use cases could be properly analyzed and also fill different roles.
Back in software world this is a seemingly common occurrence. Tabs vs spaces or IDEs are other categories often described as "Holy Wars". I started thinking about why it is so prevalent in this industry and not others...and honestly couldn't come up with a good reason.
My initial thought was that developers spend a lot of time learning a technology and form some attachment to it. I've also been reading Sebastion Junger's book Tribe and thought that perhaps it was just the bond a community forms, something that is deeply within human nature.
Then I thought back to engineering where professionals spend their entire career learning a set of technologies, often in smaller & tighter groups than software frameworks and seem to have nowhere near the passion developers have for arguing about this.
Would be interested to hear your thoughts!