Programming language can be referred as a human language that is translated into the language that is easily understood by the computers and that has high level of abstraction, thus hiding the computer hardware and representing the functionality in an easier way. There are no strict guidelines for categorizing the languages, but they are broadly divided into the following three categories.
- Object-Oriented Programming Languages: e.g. C, C#, Visual Basic, Python.
- Structured Programming Languages: e.g. C, Pascal, ADA
- Procedural Programming Languages: e.g. BASIC and FORTRAN.
So, there is wide variety of languages and they all differ on the basis of ease of learning and understanding, costs involved, speed of development, popularity, performance, supported platform environments, and fitness-for-purpose. As a result, choosing a programming language can be quiet a complex task and one should consider following points while choosing a Programming Language.
- Complexity (Easy to Learn)
Complexity of any language is a downside to it. It reduces the probability of a programmer to learn that language. So, easier the language, easier it is for the programmer to learn it and deliver quick results. If we consider the example of object oriented languages, then C++ is easier than Java, and C is easiest of all the three.
- Ease for team
During selection of a programming language, one must keep in mind the degree of ease with which the software can be carried out by the team using a particular language. Also make sure that the team should have enough backup members for a particular language.
- Target Platform
The target platform is one of the major deciding factors while choosing a programming language. For example, if you are writing a program for an android application, then you have only a limited number of options. So you must choose those programming languages that can run on any type of platforms as long as an interpreter is available, for example- Python, Java and Ruby.
- Project Context
Programming language selection always depends on the context of project, architecture of business, available software, graphical interface and end-user presentation. So, before selecting one language one should evaluate the context of project; consider only that language that is suitable for available software. If graphical interface is important than choose those programming languages that provide better interface to end-users.
- Speed of Development
Speed of development considers not only the time it takes for writing code, but it also considers how long it takes to find a solution to the problem at hand and find the bugs.
If we consider object oriented languages, then these have many ways to handle a problem compared to other conventional programming languages. So, choosing an object oriented programming language is definitely advantageous over conventional programming languages.
Platform environment is the most serious problem with portability. For example, the problems of moving a mainframe C program to a Java environment will almost certainly involve changing a C interface to a Java interface. Most of the language depends on the hardware constraints in some form (such as maximum value that an integer can take), but Java is considered as popular language that has good portability. If you need to move a data recovery program that was coded in Java from Windows to Linux, it can be done without much effort.
Any source code is considered a good source code if it has good readability, that is, the code should be commented and clear and it should be self explanatory. Even if you have no prior knowledge of that language, you should be able to understand that what the program does. So a programming language with a detailed syntax is a better one.
Ø Features Criteria
More features don’t always mean that a particular language is good. It may add to the unnecessary complexity. So you must consider the language that provides sufficient syntax that is required during coding. As more features also mean spending a longer time to learn it.
If you are totally new to programming languages and have no idea where to start from, then decide one of the following languages on the basis of your final goal-
- If you have no goal with programming at present, but are willing to learn a language, go for Python– this server-side language is widely used for building websites, GUIs and games and is easiest of the all.
- Learn HTML and CSS for creating and editing static web pages.
- For developing an iOS app, start with Objective C.
- For android, Java is the most popular language used.
- While, C++ is highly recommendable as it is highly portable across various devices, you may run it on Apple, Windows, Blackberry and Android.
- To store user info, you may learn Ruby, PHP or Python.
- For maintaining and interacting with databases, learn
So while choosing a programming language, one must consider the following factors:-
-The language must satisfy the purpose i.e. it should be according to the project context.
-Selecting the platform is really a typical task, so letting the platform decide the programming language is better than letting the programming language decide the platform.
-After considering the context and the available sources, we should concentrate on the skills of the programmer. If somebody has know-how of a certain language, then he will be able to code better in that particular language as compared to a new language with more complex features.