How to Choose Programming Language

 

Factors to be considered:

  • Targeted Platform

  • Language domain match

  • Efficiency

  • Elasticity and Performance

  • Availability of libraries

  • Project size

  • Expressiveness & Time to production

  • Tool support

Compare different languages

JavaScript

Main Use:

Creating and developing websites

Creating desktop applications and games

Capabilities:

  1. Control the browser
  2. Edit content on a document that has been displayed
  3. Allow client-side scripts to communicate with users
  4. Asynchronous communication

Advantages:

  1. Accepted and supported by all the major browsers without the need of any compilers or plug-ins

  2. Multi-paradigm language, has a combination of features

  3. Support functional and OOP styles

Features:

  • Structured

  • **Dynamic**

    The types in JavaScript are not related with variables but with values.

  • **OOP**
  • Functional
Java

Capabilities:

  1. It must be a secure and robust programming language

  2. It must be an object-oriented, simple language which becomes familiar soon.

  3. It must be capable of being implemented and executed with high performance.

  4. It must be threaded, dynamic and interpreted.

  5. It must be portable and architecture-neutral.

Features:

  • OOP
  • Class-based
  • Concurrent
Python

Features:

  • Dynamic
  • Automatic memory management
  • Large library
  • Support of many paradigms
PHP

Main Use:

Server-side scripting language

Web development

As a general-purposed programming platform

Capabilities:

  1. Can be embedded in HTML directly
  2. Most suitable for server-side programming that have server tasks being repeatedly performed when the website development process is on.

Features:

  • Script language

    usually processed by an interpreter

  • Fast prototyping

Ruby

Main Use:

Creating or programming of mobile apps and websites

Most used in the web servers where is a lot of web traffic

Advantages:

  1. Highly scalable
  2. Balances imperative programming with functional programming

Features:

  • Dynamic

Reference: