I'm a developer. That means that I develop programs that answer the needs of my customers or my own needs. My occupation means that it does not matter what programming language or technology is needed or used, but rather the goal is to have something working as the client requested.
Because the programming language does not matter to me in order to write the solution, I find myself writing software in many programming languages, such as Perl, Java, C, PHP etc…
For me, the choice of a language that will help me develop what I was require to do in the most efficient way is derived from what I'm required to do. That is, if I require to create a dynamic content of a web site (web based application), I will choose language such as Perl, Ruby, Python and the other dynamic languages that allow me to develop it in an easy and fast way. However I will not choose C, C++ or even (object) Pascal. Not because I can not do it in any of these languages, but because they are more general purpose languages, which means that it will take me longer, and it will be harder for me to get to the bottom line: a dynamic content web site.
I'm choosing (object) Pascal because:
Readable programming language
As you can see, I said "an integer type C variable", however in Pascal you can see a more native English syntax:
C : Integer
As you can understand I said "C variable of an integer type". I think you understand it better when I say it in words…The approach of being a more readable language is very important to myself and others to be able to maintain code. Even when I read code for the first time (and let's be honest here, we are mostly reading code, than writing it), it is much clearer for me what is going on.
Think first, write later
Pascal is a top down language unlike C, so when I write code in Pascal I must first understand what I'm trying to achieve. So I can't just make a mess, because things that are not in the correct order it will not be accepted. This is a feature and not a burden.
For example if you have two C headers: header one created a struct that uses types declared at include2. but the type of include2 uses some type declared on header 1, you have a big mess, and you start losing your whereabout, and start making a chicken an the egg problem.
Because of the above example, the C compiler must have multiple passes on headers. But the Pascal compiler is required to pass only once ! that's makes it a faster compiler.
Now I know some of you think that compiling time does not matter, but wait until you will be required to change some small code that effects the entire behavior of your program, the longer it takes to compile, the longer it takes you out of focus and state of mind, that result in loosing development time just to be able to test your code.
Many developers are moving to dynamic programming because of this "feature" alone, that saves them compilation time (or at least it compiles while it runs).
Power by design
In object Pascal, I have the low level power by using assembler, absolute, and many other syntax tools that allow me to design a low level application, however, as the name claims, I also have support for object oriented development. I have the power to choose between a class, in which the memory is handled for me, or object, like in C++, where I'm required to handle the memory by myself. That gives me the power to choose and use the tools that are best suited for my needs, instead of specific approaches such as C++ or Java.
When using C++, you find yourself using STL (and/or many other tools like that), and if you actually think about it, you do not understand how it belongs to the programming language itself, like many other technology features in that language… It's magic that just works…
Pascal is still evolving, but you can see that each new technology inside, have its place.. It's not a "patch" to extend the language, but rather a new tool within the language itself, and I find it really important in programming languages.
There are two types of Pascal developers
I know two types of (object) Pascal developers, the one that is learning, understanding and then loves the language, and the one that does not know, but has a lot of ideas on why not to use the language, why we all should drop it and move on…
Pascal is one of the only programming language that regardless of the hype in programming language (that does not exist for Pascal), is still gaining people that really wish to see it grow in use and in support, while many other languages are only welcome as long as there is a hype around them (such as Java).
While on this post, I've reviewed only a few points regarding why I prefer and love (object) Pascal, you can understand that "There is more here then meets the eye", and if you really know the language and how to use it I haven't told you anything you didn't already know, But at the bottom line, we can see many new programming languages that are aimed at making them easier to program at first, and therefor make them dedicated solution therefor, developers then mix a lot of technologies and programming language to have it all, while Pascal is usually there to give you both approaches, that everyone keeps overlooking but wish to have.