C vs Pascal

Recently, due to a job change, I became re-immersed in Pascal. Prior to that I'd spent a long time in C, though of the two languages I'd actually learned Pascal first. (But after FORTRAN, which was the norm at the time in school. In fact, I didn't learn C until after college, and after I'd learned FORTH. Prior to college I'd first learned assembly language, followed by BASIC; FORTRAN was third.) In some ways Pascal was like coming home. But, in probably more ways, it was more like "What is this shit?" I do prefer C, and it's not imprinting, the 'baby duck syndrome'.

Oh, the Pascal in question is a practical Pascal, not the original teaching language, which is deficient in many ways.

This is my personal opinion of these two third-generation languages. I like third-generation languages. Because of my interest in performance and state, their general lack of higher-level abstraction means that you can pretty much always tell what a program is doing, and how long it is going to take, and what resources it is going to consume; the general flow of control is not hidden. (To me, high-abstraction languages are a lot like handing tasks off to graduate assistants. I may be thinking that he'll get right on it, whereas he might think that the waves are bitchin' gnarly right now, and he'll do my task maybe tomorrow. Sometime. Sure, to avoid this I can be very specific in my task assignments, but often it's easier to just do it myself than to fully specify all the necessary parameters. The same, I find, can be true of computer languages.)

I'm going to ignore both languages' Object modeling. (And thus C++ and its ilk.) Just the straight procedural languages, which is where I have always been, and in fact still am, working.

I'm going to ignore most purely syntactic differences, such as ":=" and "!=" vs "=" and "<>", and Pascal's terminating period. Po-tay-toe, po-tah-toe. I'm also going to ignore attributes of specific compiler/IDE products, such as convenience, speed, or quality of generated code. These can all change, and have nothing to do with the qualities of the language.

NB: Both C and Pascal have learned from each other over the years, and some of what once might have been clear advantages are no more, in any significant way. These languages are now more alike than different.

Advantage: C

Advantage: Pascal