I don't think it's just perceived uncoolness. I learned Pascal in high school AP CompSci and I've always found it's syntax to be ugly and inelegant. But I learned C first so maybe that's why.
I learned Pascal in high school, too. On a 25 MHz 486 with 8 MB of RAM -- woo!
I actually quite liked it. I thought Pascal provided the right level of hand-holding necessary for a newbie programmer. I was probably able to pick up C more quickly the next year because of the solid foundation from Pascal.
Pascal is unnecessary verbose, even in its own family. Even Modula-2, where the most prominent change that is immediately visible is that you don't have to say "begin" so many times, is noticeably better.
It's really too bad about Modula-2. It was a very nice language, comparatively speaking, and it should have been what Pascal eventually became through its dialects (notably Apple's and Borland's).
It's what Pascal should have become IMHO. Base syntax: case-insensitive Oberon. Extensions: Object Pascal features. Now that's heaven. If only we don't need to maintain backward compatibility...
I've used both professionally. I'd say that "begin" and "end" may be clearer than "{" and "}", but less typing wins when you're writing a lot of code.
Writing "if" statements without short-circuit operators is both tedious and error-prone.
So, yeah, I like the C syntax. It's not a question of "ugly", though. Pascal is tedious. It's more work to write. And, of the kinds of tedious I've complained about here, it's not tedious in a way that gets you more correct code. It's just tedious in a way that takes effort and saps your energy for stuff that doesn't matter.
Ah. When I used Pascal, it was back in the old days. The single most horrific problem was that the size of an array was part of the type of the array, so it was literally impossible to use variable-sized arrays. But I didn't whine about that one, because I knew that it was fixed as early as Turbo Pascal.
I think this is an important point - I had a year of Object Pascal as introductory programming by accident sort of - as I spent a year at another college. It was the last year they continued to use Object Pascal (moving on to Java, I believe). Having had some exposure to Java, C and assembler before - I felt Object Pascal made much more sense than C. Meaningfully higher level than assembly, and much easier to grasp the difference between reference/value/address than in C. I know what * and & means in C, but it just felt more natural in Pascal (it's been so long that I don't remember the particularity of the syntax/semantics ...).
Basic "original" Pascal is very much a teaching language first, and a "real" language second. But the small tweaks (or big, depending on your point of view) to Object Pascal/the default dialect for Free Pascal makes a world of difference IMNHO. So, I think someone can both agree that early Pascal (or plain Pascal) is uncomfortably verbose and rigid, while at the same time think that modern Free/Object Pascal is a great language to work with.
I wonder if there's anyone working on a Pascal back-end for Nim? In some ways is seems like a "waste" that the default target is C.
Ruby seems to be quoted as an elegant language, and it certainly has its followers, and the number of Ends (vs. Begins in Pascal) are just as numerous, yet this is never cited.
Syntax is definitely a personal preference. I know multiple PLs from different families, and even then, I still prefer a certain syntax.
> Ruby seems to be quoted as an elegant language, and it certainly has its followers, and the number of Ends (vs. Begins in Pascal) are just as numerous, yet this is never cited.
Well, except that the cascade of ends is a frequent complaint about Ruby, rather than something "never cited".