The most difficult task for a Computer Science or IT student is always which programming language is the best to learn. During our early years at the University, we went through endless discussions as to which programming language was the best and the disadvantages of each. At that stage, most of our arguments were based on what we have heard and mostly from people who had no much knowledge about it. Some of the arguments we put forward were like speed, mostly which was arbitrary with no actual figure to justify.
However, when it comes to programming language choice, there are several factors you need to consider.
First of all, you need to know the domain in which you want to develop systems for. Is it web, desktop, Artificial Intelligence, Mobile or a mixture of them. There are languages that can be said to be able to accomplish all of them once, but the most likely scenario will be, there is a specific language that is known to be applied in a certain domain. If you want to venture into such domain, you will realize that it is better to use that language that stands out over the others in that area than using a general purpose language. If you want to develop for AI, you will need to learn LISP or other AI centric Language than use Java. Most employers in that field will appreciate your knowledge for java in AI, but will require you to know Lisp as it's their main working language.
Another factor you should consider is the agility and and productivity provided by that language mainly by the number of CASE Tools integrated in that language. An employer or client will not appreciate that you spent 3 hours creating a graphical user interface in poor code. It may mean that you are very good in writing code, but it also means you have wasted time doing redundant tasks that can be accomplished by mere drag and drop in less that 5 minutes.
Portability is another issue although, nowadays, most programming languages are capable of developing multi-platform systems. Even Microsoft family of programming languages in the .NET platform are capable of developing systems that can run in Unix. It's only that most people didn't know it was possible. Some middleware platforms like Wine can also be of assitance in case of native Windows applications. Most of the times however, you will find that you will be developing applications for either windows or Unix or Macs and each of them have APIs specific for those platforms. Thus portability becomes less of a concern.
Speed is less of a concern because most programming languages are optimized for speed. Speed penalties mostly occur due to your knowledge in developing responsive systems and design of algorithms. if you are a person of using loops instead of using indexes, your system will be slow regardless of which language you use.
0 comments :
Post a Comment