Back to top


The Art Gallery


The programming languages guide


The links


Guestbook

Email me
email me



The Programming Languages Guide

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...

  1. Assembly
  2. Visual Basic
  3. Delphi
  4. C++
    1. Microsoft Visual C++
    2. Inprise (Borland) C++ Buidler
  5. Java

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.

Back to top

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.

Back to top

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.

Back to top

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.

Back to top

Most programmers who use C++ work with one of two packages; Microsoft Visual C++ and Inprise C++ Builder.

IV.i Microsoft Visual C++:

Microsoft Visual C++ (MSVC) is made by the programmers of MS Windows to the programmers of MS Windows. This package is very strong and very solid, but it has avery long learning curve and the library that it uses, Microsoft Foundation Classes, is a monster in both size and time required to master it. It does not use any kind of visual development tools, but rather relys on wizards and templates for performing the most common programming tasks.

Still, MSVC is a great for writing DLL's and ActiveX controls, a technology that is gaining importance day by day. The code compiled by MSVC is very compact and fast.

Pro's : Very fast and comapct code, complier is updated regularly to keep pace with emerging technologies.

Con's : Difficult to learn, has no visusal design tools, writing programmers is a very engaging task that requires great effort.

More information could be found at Microsofts' Web Site.

IV.ii Inprise C++ Builder:

For me, this package is a dream come true. It offers all the power of C++, plus visual design tools similar to those found in Delphi and Visual Basic. All that is acompanied by the Visual Component Library (VCL) that hides the details and complexity of Windows in a true OOP package. And C++ Builder grows with your needs. It can be as low level as MSVC or almost as high level as Visual Basic.

Pro's : A very advanced development tool that meets all the needs of the proffesional programmer, outperforms MSVC in amlost every area.

Con's : Still retains the difficulties of C++, a liitle bit expensive compared to MVCS, but still more than worth the money.

More information could be found at Inprises' Web Site.

Back to top

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++.

Back to top