I observe a phenomenon that looks like religion to me, only in a development team. Here is an example situation:
We are three people working on a small project. The project will involve a public web service that will serve requests by fetching data from a database, and also a separate component (or application) that would fill and update this database. All three of us care a lot to make this project happen, but we come from different backgrounds. One of us has only done Java development (web enterprise Java development), while two of us have only done .NET development.
When choosing what to develop the project in, as you may guess, each one stood his ground and insisted we use the technology he knows best. Other than this, we are good friends, and we are determined to work together. I'm not a .NET fanatic, but think that two of us being more productive is a good argument to use .NET. The Java guy on the other hand is also an open-source fan, and thinks that using free tools would be decisive for the project.
We started with a compromise, using C# for development and a MySQL database, which appeared to be a huge mistake, not because we couldn't make it happen, but because of all the overhead to make the two talk. It would have been a snap if we used C# with SQL Server or PHP and MySQL - those pairs are just made to work with each other.
The real problem in this case is that whatever we choose, at least one is going to make a compromise and not be happy. And that's 1/3 of the whole team, which is not acceptable. How do we work this out? How do we work out religious differences between developers?
And please, I know that every good programmer wouldn't have a problem working with a foreign language, but I don't need such answers. What if any of us converting is not an option?