Why are we so loyal to a particular Programming Language?
by Dan Zambonini
We've all seen the thousands of articles that pit 'ASP vs JSP', or 'Why Ruby on Rails is better than Zope', or one of the other millions of permutations on the theme. To say that one language is generally 'better' than another doesn't make a huge amount of sense; is one spoken language 'better' than another, even if it does take longer/shorter to say a sentence, or has more/less words/letters in it's vocabulary? So why are so many people willing to make this claim, with such emotion?
Abraham Maslow proposed a "Hierarchy of Human Needs", which are basically:
- Physiological (Basic survival)
- Safety (and security)
- Belonging (community)
Could these drive our 'need' to support the main language that we use?
The first two 'needs', in this context, could be translated to our need to work. In order to survive, we need a job, which pays us money to buy food. We choose a language which allows us to better find a job (e.g. Java rather than FORTRAN), but then need to ensure our (job) security by keeping the language 'in fashion' and in use. If negative press is published, that attacks our language of choice, it could lead to businesses being less likely to adopt/support the language. Conversely, positive press on a language could persuade IT directors to use it in a new project, and will also convince more developers to adopt the language (which, through a feedback system, could produce more jobs, and sustain the life of the language).
Even if our language is relatively 'safe', we then move to our need for belonging; to be a part of a community, to support it and protect it. By producing these 'Language X is better than language Y' articles, we are contributing to our community and (in some ways) trying to protect/defend it at the same time.
The Esteem need pushes us to gain recognition; which these controversial articles almost certainly guarantee. People with a larger than average need in this area are purported to be 'snobbish', which again could account for articles of this nature.
Tying 'Self Actualization' into this argument is tricky. I'll leave that up to the interested reader (i.e. I can't think of anything at the moment, apart from a weak argument based on the following quote from the Psychological Review: "Self Actualization is the intrinsic growth of what is already in the organism").
Maybe self-actualization in the context of a programming language could mean finding a language that fits the way you think, that "feels natural", that seems designed with the same mental biases as your own. People who write their own programming languages rather than using others would in this sense be the most self-actualized. If a programming language fits so well that it's almost an extension of yourself, no wonder you might be defensive when someone attacks the language.
To reinforce their own conclusions
This isn't specific programming languages, people like to have their own conclusions confirmed. One way to do this is find other people that agree with them. Announcing that you have strong feelings about programming language X is one way to attract those who agree with you (and those who disagree).
don't forget marketing
Quite a few of the flamewars across platforms/languages are started as a marketing effort by the creators (or other interested parties) of one or the other.
For example the creators (and consultancy sellers) of Ruby on Rails seem to have started an all-out assault on Java, claiming that Java is in sharp decline (despite evidence to the contrary) and that Ruby is the way of the future which will drive every project into instant success well below budget.
This is clearly no more than a marketing ploy, and people get angry about being told lies like that, especially if those lies are intended to marginalise them and their skills.