Late reply, but since no answer has been accepted yet, I'll give it a try. I take it as two questions and will attempt to answer each:
How do managers choose programming languages?
Heavily depends on organisation size and manager experience, but generally will involve assessing current situation and future scenarios and requirements. This is usually done through PESTLE or similar analysis, just to give a few samples in each category:
- Political
- "No one got fired for buying IBM"
- CEO heard that Java is cool
- Chief Architect loves .NET
- The language is controlled by our competitors.
- Economical
- Costs (licensing, equipment, AppServers etc)
- Cost of training developers
- Social
- Skill availability in house (training needs, continuity)
- Skill availability on the market
- Training, treats to existing status quo within the dev team
- Availability of community of practise that is sufficiently large
- Technological
- Technology capabilities
- Backward compatibility with existing systems
- Migration
- Adherence to standards
- Interoperability
- Maturity
- Legal
- Licensing terms
- Technology control (Who owns and controls the technology? What is their 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. Usually, this is the language they're already using.
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, make 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 where 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 inadequate.
- 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 been "join a company that already uses the language or start your own".