Programs can be developed in many different languages, such as, C++, C#, Java or other languages.  The language selected depends on the requirements for the application and the programmers expertise.  Many applications can be done in any language, but the time to market may be the governing factor.  In this case the programmers expertise will decide which programming language to use.

If it is a large program and speed is critical, C++ may be your choice. However, if you want something relatively quickly with a nice user interface, you may opt for C#.  Java can be used for cross platform programming.  Most of the reasons to use Java or C++ are a programmers choice.  However, Java does tend to be a better choice if you want fast and easy cross-platform compiling.