|
If you are about to invoke upon the quest of becoming a programmer, then you have a very tough decision to make, and that is choosing a programming language to be your sword and armour in this quest. I can't remember how many times I was asked by my friends and colleagues about what language is the most suitable to learn, and indeed, its a very important question. Nowadays, keeping up with the rapidly advancing world of computing could prove to be a full-time job by itself, so mastering all the popular languages out there will prove to be impossible. So I decided to try to make that decision a little bit easier to make. I'll try to give you a run down of the most popular programming languages and packages that I came across during the few past years. I'll try to explain the pro's and con's of each of them and, hopefully, steer you in the right direction, so let's start...
I. Assembly :Assemby is the fastest language arround until now. The sercret to its speed it that every instruction in assembly translates directky into machine language, the native language of the CPU. In the past professional programmers used to program entirely in assembly for its speed and compact size. Now and serious programmer will not use it unless it is absolutely necessary, such in the case of righting device drivers, or in spped critical code. Pro's : Very fast, very compact code. Con's : Very difficult to learn, even harder to master. It is difficult to maintian and debug the code, and reusing old code is a big hassle.
II. Visual Basic :Visual Basic is turning into the mainstream programming language for the Microsoft Windows platform, and is making its way into the internet as well through a version called VB Script (opposite to JavaScript). Visual basic is very easy to learn, and well serve most of your programming needs. You design the user interface by placing elements on a form, then you attach code to respond to events triggered by those elements. VB still t has its limitations, for example it is slower than other languages such as C++ and Delphi in term of speed of execution. Other limitations include that you could not use VB to write DLL's or device drivers. Pro's : Easy to learn, uses visual design of the interface, will do for most programming need, integrated in the Internet and MS Windows. Con's : Slower than other languages, could prove to be very limiting as your needs and experience grows. More information could be found at Microsofts' Web Site.
III. Delphi :Delphi is Inprise's ( former Borland) answer to visual basic. It is a very solid and evolved development enviroment. The actual programming language is a flavour of Object Pascal, which is not hard to learn, but not as wide spread as Visual Basic or C++. Delphi's powerful native compiler delivers very fast code. That and the fact that it uses visual design just like Visual Basic makes it a very attracive, but rather expensive package which is geared toward enterprises working in databae programming. Pro's : A powerful package with visual desgin and fast execution of code. Con's : suited more to enterprizes rather than individual programmers, and its programming language is rather tedious (but not difficult) to learn from my point of view. More information could be found at Inprises' Web Site.
IV. C++ :It is hard for me to maintain objictivity when talking about C++, for it is my language of choice for most of my programming tasks, so frogive me if I'm a little biased. C, the mother language of C++ was born on the UNIX platform, and C++ followed C as the next logical step in the evolution of the language. C++ added Object Oriented Programmimg Concepts (OOP) to C. OOP is simply a way of writing programmers that allows for many benfits from modeling real world objects in to facilitating the reuse of code. There is no programming task that could not be done in C++, with the right complier and enough knowledge and experience in the language. C++ truly rewards the programmer who devotes himself to it. Add to that the fact that C++ outperforms most other languages (Assembly being the only exception that I know of). I also tend to think of C++ as the best implementation of OOP concepts available today, and its syntax is very concise and well suited for proffessional programmers. However, C++ is difficult to learn, and novice programmers tend to find it very confusing at first. But such obstacles are a small price to pay for the rewards of the language. Pro's : A very evoloved and advanced programming language that offers excellent performance, exists in some form or another on all platforms. Con's : Difficult to learn, compilation and debuging cycle ( the time it takes to compile a program and run it check for errors) could become lengthy with large programmers. Most programmers who use C++ work with one of two packages; Microsoft Visual C++ and Inprise C++ Builder.
V. Java :A lot could be said about Java, so let's try to stick to the facts. Java is a programming language that is based around C++, but has removed some of the unique features of C++ for the sake of clarity, or at least that what its makers claim. That is not the end of the story, Java adds a very important and rare feature, Java is built in a way to make it possible for programs written in it to run on any platform, regardless of the hardware or OS that is used. That is very nice, but there are problems. First, the makers of Java had removed many features from it which were found in C++. The idea was to make Java more safe and easier than C++, but that also meant that Java is to be less powerful than C++ in many aspects. Second, Java programs are slower than programs coded in other languages, and sometimes, much slower than to be considered practical. Finally, Java programs are unable to take advantage of some of platform specific features, simply because that will mean that they will not be able to run on all platforms, which is the original purpose of Java. Still Java shines when it comes to Internet and WWW development. In that case, programs must work on multiple platforms, and that is where Java comes into play. Enabling all clients on different platforms to access your data in a uniform enviroment. Pro's : A free programming package that works almost all platforms, very well inegrated into the Internet and WWW. Con's : Very slow, difficult to learn if you don't know C++. |