Needless to say that each language has own advantages and disadvantages and it's business critical to choose the right language for your project depending on your mid and long-term goals and overall expectations.
Check out a related article:
I've compiled a list of recommendations for non-tech companies and startups that are looking to kick off their development project while still having doubts about what language / technology to choose for it.
1. Use your industry specific best practices and don't reinvent the wheel!
Take a look at the table below showing the inside-out of the world's top sites.
2. Make sure all stakeholders agree on the chosen languages / technologies
It's always good to be in trend, but make sure to get buy-in of all project stakeholders (e.g., product owner(s), PMs, BAs, IT Manager) regarding use of certain languages and technologies for your frontend, backend and data warehousing. If you have any internal disputes, do engage a 3rd party advisory to help you make the final decision.
3. Eliminate conflict of systems
Do internal audit of your in-house IT infrastructure and corporate technology ecosystem to make sure the chosen languages won't conflict with your corporate systems, operating systems, applications, etc. Also, research your HR capabilities to find and hire talent skilled in chosen languages within determined time frames, and find ways to reduce your time-to-hire.
4. Choose languages with high-level GUI for front-end dev
High level graphical user interface (GUI) can actually ensure half of your project development success. So do not hesitate to use programming languages that are superior in crafting out-of-the-box visual interfaces and will make your users happy.
Check out a related article:
5. Language characteristics and support matter!
When choosing a programming language for your project, pay attention to each language characteristics, available libraries and support! Here's an example for you:
If you're planning to develop for the cloud or build another social network, consider using interpretive, dynamic, open source languages for speedy development and more cost-effective solutions. If you're about to build an enterprise app, you better choose technologies with high security standards and abilities to integrate with legacy systems / environments.
6. Don't follow the common "fail fast - fail forward" concept!
Most of 3rd party advisors will recommend you to fail fast - fail forward! Instead, focus on discovery and data development! Oftentimes, businesses don't stumble on the right way of executing their software dev projects until they've gone down a few wrong ones. Determining what works for your certain case means you have to try and most likely fail a lot of ideas and approaches. But failure shouldn't demoralize you; instead, it should drive you to flesh out what will work best for you project and concentrate on it. So, follow a scientific way, have hypothesis and test it. One of the most effective ways of avoiding overheads and issues resulting from failed projects is to prototype your software product before even investing into developing it!
7. Test the ease of use
You should do it on the server-side and client-side scripting of the project.
8. Always think proactively!
Do check shortlisted languages for cross-platform development opportunities.
9. Data safety should be your top priority at all times!
So don't forget to check what your chosen languages offer in this regard.
10. Select your programming language(s) from a long-term perspective!
Always think about scaling up your development team, because you may (and most probably will) have more design, development and testing work as you improve your access to technology and resources. As such, research the level of support of the chosen languages within the local IT community (e.g., ability for your tech talent to participate in meetups, user groups, and networking events to share knowledge and discuss issues). For instance, Google has a very well developed and strong developer community globally!