2 Apr 2013

Programming Language Selection

When you search for the best programming languages on Google you get approximately 81 million results, this is because every programmer want's the best tools to use, but the ironical part is that every tool is the best for a certain job.
There have been ratings a lot on the most used programming languages, even though there are variations from site to site; C, Java, C++, Objective C, C#, PHP, Python, Javascript, Ruby, Visual Basic are on top of the list. One might ask C/C++ have been around for decades and are regarded as old fashion programming languages, why are they still in use in this modern day technologies? This answer is simple but a bit long, all the modern day programming languages revolve around this languages, from the chart below you can see that Java is a derivative from C++ hence from C, Python is a derivative from Perl, Tcl and Smalltalk hence origin can be traced back to C and Fortran, C# is a derivative of Java, delphi and visual basic, hence can be traced back to C, Fortran and Pascal. This shows us that all this languages are derived from ancient languages, but why? why are languages reinvented; because we need specifics, we need to adapt to modern technology we need more solutions to our problem, if a new language is written, there was a need for it and it doesn't come to replace other languages but to serve its own purpose this brings me to a conclusion, every language is most important for someone because he is working on problems that require that specific language, or makes it easier to implement in that language.
Image from www.authenticsociety.com 

    This brings me back to my original purpose of this blog, what language should you use, which is the best. My answer to you is think of the area you are most interested in, for example simple interactive web pages you need HTML, CSS (of course) then you can include Javascript to make it interactive. If is a dynamic web site, PHP, Ruby or Python with SQL good choice, Java EE has proven to be very useful and reliable. Coming down to Mobile apps, depending on the platform native Android app development is done in Java but now we have special ways to write applications on android without the use of Java for Example. SL4A project has provided a way for us to write applications in Javascript, python, lua etc and run them on android even though on the background this languages call Java methods through RPC. Kivy is another framework that is good for Rapid application development, that can be compiled to run on multiple platforms such as android, ios, mac, windows e.t.c , kivy is a python library.

Personally i use multiple languages C, Java, Python, PL/SQL, PHP, Shell etc and i use each when its needed. We all in our careers will use multiple languages but it is good to have a main language and the rest are supplements.