Exactly my point - theory vs practice. It can be a petri dish, but that is not necessarily a bad thing. Different extended Pascal/Mod-2 et al all 'fixed' the string data type in some manner (not even saying the different solutions are good or bad). But it always comes back to what was (*is*) theory vs. practice. As others have pointed out. In the case of Strings, you either made them more like C strings or you made them basically useless - because, in practice, the null-terminated string works pretty darned well for production code and can be made to be secure, but the programmer can not be lazy.
Hey, I personally look like Pascal for what it is and I still think it's the best teaching tool, particularly with Clancy and Cooper's book for beginning programmers. I personally learned both languages around the same time, but I had already been writing in a number of assemblers, BASIC, Fortran, Algol-W, SAIL, and BLISS before I saw either. I've more written way more C code than any other language --- why because it works and as a professional, I know how to properly use it.
As bwk says in that same document which I pointed to earlier, "comparing C and Pascal is the same as trying to compare a jetfighter with a Piper Cub." As my former Marine pilot B-I-L reminds me, he did not start pilot training in Whidbey Island on jets - he worked his way up and showed he was competent before the Navy made it easier for him to kill himself (and those around him). BTW: the Navy does not tend to try to land small prop planes on the USS Kennedy either. As my B-I-L says for all of his day and night landings on same, he always somewhat scared the cr*p out him but he was always careful to remember what he had been taught (and he says he never had to use the 3 wire).
The bottom line becomes learning to pick and then using the proper tool for the job and respect what is for and the constraints associated with using it.
Clem