In mythical man month author mention that we can increase productivity by selecting proper high level programming language. If we select c or C++ then design of GUI is problem the we may use QT framework for GUI. If we use C# .NET then it has disadvantages like software codt and user should aware that .NET framework installed on their PC. If we use Java then quality of GUI is questinable. So which language to prefer for product and which is most used language today?
I think there is no correct answer to this question although I highly recommend you to read Technology Radar delivered from time to time by ThoughtWorks company. It also doesn't give you the exact answer but can show you the trends and thoughts about the direction of technology development. I also recommend to read some past reports from them.
One more thing - I believe that PM should have nothing to decide about this topic. It should be either team, or some architect/tech lead decision. PM can ask for adventages, and disadventages, possible problems, obstacles, maintenance, cost and stuff like that, but the decision should be made by the people who will be implementing the project - it's better when they code in something they know/like/want to learn.
I'm pretty sure that there's no good answer to this question. Usually, the customer needs determine the details of a project like the programming language. I recommend to talk to your customer - if you have any - and based on the response pick one. There are usual choices like Ruby on Rails for web apps, .NET for windows based requests, Java for general needs. If I were you I would learn more about the job and the team and find the language together with the and customer. Here are some points to consider:
- is there any performance requirements?
- what kind of language the team knows and willing to learn?
- will you need support (e.g. in case of finding a DB companies like to pick those which have guaranteed support)?
- what's the platform the application will be executed?
- does the language have good test tool support?
That's all I have now, but you got the idea.
I think this is a super question. The type of questions that yields debate, argument, requires analysis and thought, and where there really is no right answer is where intelligence and learning begin.
I know nothing about languages. When I read the title, I thought it was going to be about a multicultural project and you were debating between english, spanish, french...:)
I do know about choice analysis and decision making techniques, however. It seems to me that this choice will have ongoing downstream impacts, both favorable and unfavorable. I suppose also that, once made and development starts, there is no going back without a ton of political/costly backlash. Therefore, a more formal approach seems justified to me.
I'd bring in a team of developers and business analysts and facilitate a choice analysis workshop. I'd develop with them a simple scoring method, using around five to no more than eight criteria that speak to benefits, penalty, costs, and risks. I'd facilitate a consensus on weighting and then conduct a scoring session using a broader audience and maybe with techniques like the Delphi Technique.
I'd tabulate the scores that each programming language earned and the let the results speak for themselves.
I always thought that this question would be much more objective (and oddly enough, still broad) than the other answers presented (which proves I need more experience, hehe).
But basically, I believe that it depends on the following questions:
- Is the client asking for a specific language? If so, then you got the answer.
- Do you have a specific team already built to work on this project? If so, ask your peers, and you got the answer.
- Is there any constraint for the development to be done? You can't build a web application using VBA. Take your project constraints and check which technologies fits to it.
- Finally, you know the project and its constraints and neither your client is asking for a specific technology nor you have a team to offer you suggestions about what technology to use (a very very rare case, IMO).. then THIS link and THIS link could help you out. In the end, or this question or is too broad or has been asked on the wrong place.
Actually the choice of programming language can have a big effect on productivity if a domain specific language is available for the particular task at hand.
Other domain specific applications that benefit from domain specific languages include specialized tasks such as programming FPGAs.