Before starting a new project we should answer some basic questions.
- Is our project a desktop or a web application?
- Do we need a user interface?
- Should it be cross-platform?
- Do you need to integrate with some external service/platform?
Almost all the "General Purpose Languages" (and here) are good enough to do any kind of application, but there are cases where it is much better to use some "Domain Specific Language" or, at least, a different language that is better suited to do the specific kind of application we want to do.
Let's see some extreme examples:
- If I need to create a program to automatize my connection to different SSH server, I could do it in Java, but that would be overkill, and too complex. A simple BASH script will be faster and easier.
- If I'm a PHP developer and I need to create some simple desktop application. What should be my choice? Sure I can compile PHP code into an exe file, but probably I would get a much better and faster solution using Java, C# (or any other .NET language) or even Python.
- As I said, these are radical examples, but I think that shows my point. Don't be lazy when choosing the language you need. Even when a lot of languages would be OK to solve the problem, maybe your choice is not the best one.