Sunday, June 16, 2013

Making order in the new programming languages – Part 1

Recently, we are witnessing to a large number of programming languages that gain popularity in the software industry.  Many of them are known as interpreter languages or also known as script languages. One of the reasons for these blossoms is now you can compile many of these languages to java byte code and run it on the JVM so the differences in the performance become very minor. So now java is not only a language it is .more like an echo-system. 
Today, there are more than 100 programming languages that run on the JVM! and the real questions is how do I know in which one to use and why, or I just need to stick with java
Well, the answer for that is depend on your requirement, each language has its own philosophy if your requirement and the way you like to write code is suitable to the language it means that you should use it. Java is a very object oriented language that encourage the programmer to write in object oriented paradigm. If you like to write object oriented (like I do) and you have a big project that include a lot of maintenance I think java is the language for you, for example java support strict typing and encourage you to write class for any type of object. Java supports interfaces and not multiple inheritance, encourage the developer to set properly the inheritance tree.  Most of the other languages do not try to compete java in that area, however, some of the languages has some features that better in java for that purpose.
Since i'm still not an expert with all these languages, i may find myself wrong about it and maybe i will find languages that has the same philosophy, I will be happy to discuss it.
However, sometimes you have other requirements and maybe for some applications object oriented programming can be cumbersome and awkward. for example, did you try to write swap function in java that swap the value of two numbers, you will find out there is no good way of doing it. Therefore, in the next few posts I will try to label the different programming languages and try to see when you need to work with what. So you use the most suitable programming language to your needs.

No comments: