Late reply, but since there is no accepted answer yet, I'll give it a try. I take it as two questions and will attempt to answer them separately:
How do managers choose programming languages?
Heavily depends on the size of organisation and manager's experience, but generally will involve assessing current situation and future scenarios and requirements. This is usually done through PESTLE or similar analysis, and just to give a few samples in each category:
- Political
- "No one got fired for buying IBM" - safe choice.
- CEO heard that Java is cool - hype.
- Chief Architect loves .NET - pet project.
- The language is controlled by a hostile competitor - why Google isn't relying on C#.
- Economical
- Licensing costs.
- Cost of developer training.
- Code base migration costs.
- Social
- Buy-in from the team.
- Skill availability in house (training needs, continuity).
- Skill availability on the market.
- Threat to the existing status quo within the dev team.
- Availability of sufficiently large community of practice.
- Technological
- Productivity improvement.
- Quality improvement.
- Ability to interoperate with existing code base.
- Adherence to standards.
- Maturity.
- Legal
- Licensing terms.
- Technology control (Who owns and controls the technology? What is future licensing strategy is likely to be?)
- Legal and regulatory compliance.
- Environmental
- Existing infrastructure within company.
- Existing skills within company.
- Integration with external partners.
- Level of technology support by wider environment.
Then a bunch of languages matching the criteria may be further evaluated using SWOT, cost benefit analysis or similar.
The whole process can be rather complex, but as a bottom line most companies or project teams will go for the safest option given their current circumstances that can still deliver the capabilities they need. Quite often it might mean sticking to the current platform for longer.
How can a programmer help make sure the right programming language is chosen for a project
As it has been, hopefully, demonstrated a typical programmer would normally have just 1/6th of the total input into the decision making process. And as a rule she or he would mostly be interested in the language capabilities alone!
Well, the best way to influence the decision seems to have a broader picture of the selection process, make allies within and outside the team, create a good brief on technological side of things and try not to concentrate on the language capabilities alone.
And, of course, one needs to get into the position when a Project or Development Manager (or whoever else is in charge) sees the benefits of going through the entire evaluation process and is prepared to consider the risks and uncertainties of switching to a different language in the first place. For this to happen it needs to be demonstrated that:
- Current platform is no longer adequate.
- A new platform promises benefits that by far outweigh the hassle.
However, would you had asked "What is the best way to be able to use at work the language I like", the answer would have probably been "join a company that already uses the language or start your own".