If you have ever planned to learn a programming language then you might have felt overwhelmed.This is how most of the programmers feel when they are planning to add a new language to their skill set.
Since today there are so many different and powerful languages with so many overlapping features ,its difficult to say which language is useful in a given scenario.Though some languages are specially suited to a particular scenario.
So if you are looking for a specific feature in a language then it can be rather easy to decide the language for that scenario.For example if you want write cross platform web applications then Java may be a good choice.If you have previous programming experience then you can learn a new language easily than somebody who is new to programming.
This article will be more helpful for beginners who are looking to learn a new programming language.
Following are some of the useful programming languages along with their uses which could help you in your decision.
Use : Managing data in relational databases.
Type: Database specific ,Non Procedural
SQL (Structured Query Language) is a language used for interacting with RDBMSs(Relational Database Management Systems). RDBMS stores data in different tables.
SQL provides features to manage data as well as the data objects such as the tables and views.So SQL is the only language you will ever need to when working with relational databases.
SQL is a declarative programming language.This means the programmer does not need to specify the exact steps required to accomplish a task.Only the result or output required is specified by the developer. SQL Query Engine determines the best way to execute the command and perform the low level operations.
This is unlike non procedural language where the programmer needs to specify each and every operation required to perform a given task.There are constructs such as if …else in non procedural languages which are used to perform low level operations.
Despite being a non procedural language it is one of the mostly used languages in the world today.
There are many popular RDBMS and each of them uses SQL as their primary language for data manipulation. SQL is ANSI (American National Standards Institute) standard language.This is the most basic version of SQL which is expected to be present in different RDBMSs
Most of the RDBMS offers different versions of SQL. We can think of these versions as the extensions to the ANSI SQL.
Some of the most popular RDBMS used today are:
|MySQL||Very Popular Open Source RDBMS.|
|SQLServer||Microsft RDBMS. Mostly used as a part of other microsoft technologies such as ASP.NET.T-SQL is the version of SQL supported by SQL Server.|
|Oracle||Oracle is one of the most widely used RDBMS from Oracle Corporation.Oracles version of SQL is called PL/SQL.|
|SQLite||Commonly used for local storage as an embedded database, such as in web browsers and apps. Implements most of the features of ANSI SQL-92 but provides a version of SQL suitable for local data storage.If you are interested in app development this SQLite can not be ignored.|
Since SQL is used across different Database Management Systems so no doubt it is one of the most popular programming languages in the world.
Today every application needs to manage data.Even mobile applications have to manage the application data.This makes SQL a necessity in any application.So if you are interested in database programming then SQL is the language for you.
Use : Web Applications , Mobile Apps , Embedded devices.
Type:Object Oriented , Platform Independent.
It is the most popular programming language in the world today according to the The TIOBE Programming Community index.
The single most important factor which makes Java such a popular language is its cross platform nature.Java can be found on all the devices today ,whether it is Desktop ,Smart TV or Mobile Devices.It is also one of the oldest object oriented programming languages.Though Java was released in 1995 by Sun Micro systems, it was acquired by Oracle.
Today we can find different types of applications written in Java. Some of applications of Java in real world are
- web applications
- Android Apps
- Programming hardware devices such as set top boxes.
- Games development.
Some of the features of Java are:
- Open source: which means it is free to use and modify.Also there are lots of libraries available.
- Object oriented : which means everything in Java needs to implemented as a class.
- Cross platform : JVM or Java Virtual Machine is an environment which makes Java cross platform.
Executing a Java program means the following
- The Java program is saved as a .java file.
- Compile the .java file which reults in byte-codes in a .class file.
- Execute the byte-codes in the .class file.The JIT(Just in time compiler)comes in action here and interprets the byte-code to machine code.
If you interested in object oriented programming and want to develop different types of applications then Java is the language to learn.
Use : In Web Development for developing dynamic web pages.
Type : Interpreted Programming Language
If we compare the web sites 10 years back with the web sites of today then can see a considerable improvement in terms of responsiveness and user experience.Users then would have to wait after clicking a button on their desktop.
If you render the above web page in a browser you can see an alert dialog
Use: In Web Development for creating Dynamic web pages
Type: Interpreted,Server Side Programming Language
PHP or Hypertext Preprocessor is a server side scripting language.It is open source which means it is free and there are no license fees. PHP integrates well with other open source technologies such as Apache server and MySQL.PHP is widely supported and can run on the different platforms and web servers.
It was developed by Rasmus Lerdorf in 1995 for his personal use.Today it is one of the top ten most used programming languages in the world.
PHP is not complicated like other web technologies.So it is easy to develop web applications even if you don’t have any prior experience in programming. PHP page just consists of HTML and PHP script.When the PHP page,having an extension of .php. is requested by the web browser ,PHP script executes on the web server and response is returned to the browser.
PHP scripts looks like:
<?php echo "Hello Web Development !"; ?>
You can mix PHP script with HTML.This allows to easily change an HTML page to a .php page.
Because of its compatibility with different platforms ,PHP has been well adopted by the web development community .There are many widely used PHP applications.
For different types of applications there are PHP frameworks available.
Some popular PHP frameworks are:
- Zend Suitable for more complex applications.
- CodeIgniter Easy to configure and install.
- Symfony Used by many popular applications such as Drupal
- CakePHP Webframework based on Ruby on Rails.Follows MVC pattern.
There are some very popular PHP applications such as
- Drupal,Joomla,Wordpres Content management systems
- SugarCRM customer relationship management
- It is the language behind some of the most popular websites such as Facebook and WordPress.
PHP has been criticized for its performance but Zend engine 3 drastically improves the performance of PHP. It is part of PHP 7 which is the latest version of PHP.
If you are a beginner in web development or looking for a server side language without a steep learning curve ,then PHP can be a good choice for server side programming.
Use: Windows application,Web Applications,Mobile Apps
Type:Object Oriented ,General Purpose Programming language
C# is relatively new language when compared to other languages in this list.C# is used for developing applications which run on the .NET platform.So for using C# you have to know the .NET specifications such as the Library and the various types.
.NET is one of the most commonly used platforms today.This means that C# can be used anywhere .NET applications can run.This includes Desktop applications,Web Applications,Mobile Apps,Web Services.
C# is very much similar to Java.So if you have programmed in Java before you will find many similarities between the two.Like Java C# programs are compiled to intermediate language called Intermediate language.Intermediate language is Just In Time compiled at runtime.
C# has a steep learning curve if you have no prior programming experience.If you have programmed in Java or C++ then C# will seem familiar to you.
Though C# is coupled to the.NET platform but this is an advantage.This allows C# access to the .NET APIs.There are APIs for every type of application ,from windows to web development and mobile apps. This makes C# a very powerful language since you can use to literally develop any type of application.Following are the different .NET technologies and where C# can be used
|Technology||C# Used for|
|ASP.NET -Framework for Web development||Writing the server side application and business logic|
|WPF -Framework for Windows Applications||Writing presentation and business logic|
|Systems Programming||Writing the core application logic|
Use: Scientific calculations, Web Development,Desktop applications
Type: Interpreted ,Object Oriented,Scripting
Python was developed in the early 90s by Guido van Rossum. Python is available under GPL license as an open source.This means that it can modified and contributed by anybody.Also this means that it is free and does not fees.
Python is especially suitable for beginners.that is the reason that it is the most widely used language for
teaching programming.It is simple yet powerful.Unlike other languages it has less syntactic elements.
Because of its syntax programs written in Python are easier to read.For example following is a sample python code
if True: print "Python is a good language for beginners" print "Hello World!" else: print "Python is awesome" print "Hello World!"
Look at the indentation of the statements in the True and False block.The statements are grouped in blocks using line indentation. The two statements in each block form groups because of indentation. Python resembles English language is some ways.Because of this Python programs are easier to read and understand by just looking at the code.
Python is a powerful language and provides some useful features such as
Object Oriented Programming
Python supports object oriented programming.In object oriented programming objects interact with each in a program.Most of the newer programming languages are object oriented such as Java,C#.Object oriented programming allows to handle the complexity of applications.
Because of this Python can be used to develop from simple to very complex enterprise applications.
Supports functional programming.In functional programming the output of a function is determined only by its inputs.Functional programming is especially useful in scientific calculations.This is the reason that usually python is taught in schools and colleges.
We can execute small code snippets at the Python command line.This is useful testing small code snippets.
If you are new to programming then Python is easy to learn.If you become proficient in programming Python can be used to develop complex applications.
Use: Statistical analysis, Data analysis,Data mining
Type: Interpreted ,Object Oriented
As the amount of data is increasing day by day so big data has become a necessity for most of the organizations.Big data analytics means analysis of large volumes of data to discover useful information.R is a programming language which has become popular for big data analytics.It is also useful for machine learning.
R has a big advantage of packages which extend the language.Packages can be developed in different languages and their are lots of packages already available.So for example we can develop a package in C++ and use it for extending R.
R is a programming language for statistical computing ,data analysis and reporting.It is widely used by data miners.It is an open source like PHP and is available under GNU public license.Oracle , SAS and TIBCO are some of the organizations using R in their platforms.
If you are interested in big data, data mining or data science then R could be a useful language to learn.If you are interested in Statistics then you should learn R.