Supposedly even Borland's TurboPascal had better strings than vanilla Pascal.
and then they used only 1 byte for the string length, limiting the max length to 255, which madeĀ it completely pointless, because the moment you had some real world data, you were back in manage-my-own-pointers-to-arrays-of-chars-land.
(I loved Turbo Pascal, it's the first language I used for "serious" programming. They got a lot of things right, but strings were emphatically not among those things).
My other gripe was that Turbo Pascal programs spend half their time on pointer normalization (every pointer access has a preambleĀ that makes sure that the offset is < 16). I'd really love to understand why on earth they decided to do it that way (I'm sure there's a reason, I just fail to see it). It's not like anyone could do pointer arithmetic behind the compiler's back... it slows things down, and it's probably the reason why an equivalent Turbo C program is only half the code size. And it makes it impossible to do clever things with segment registers (18 year old me didn't like that).