It is nothing more than a portable macro assembler with all advantages and more importantly the disadvantages that it entails.
I disagree with your implicit claim that C's position as the most popular systems programming language is not due the language's intrinsic qualities. Luck was a factor but not the only one. It cannot be the only one. The language is just good -- or at least good enough.
> It is nothing more than a portable macro assembler with all advantages and more importantly the disadvantages that it entails.
Stop the hyperbole. The language is quite a bit more than that. For one, it's structured.
I am old enough to remember when knowing C was only required for anyone lucky enough to work in one of those shiny UNIX workstations. The language had barely any use outside of the UNIX workstation world and those compilers supported mostly dialects, not the full language.
Only after business started to get UNIX deployed in bigger scale, C knowledge started to matter on the CV.
> Stop the hyperbole.
It is not an hyperbole. Mesa, Cedar, Algol variants, Pascal variants and Modula-2 offered much higher features while allowing for systems programming.
> The language is quite a bit more than that. For one, it's structured.
So what that C is structured. Any PC and Amiga macro assembler had powerful macro languages that allow to write structured assembly code.
The end result is barely any different than using K&R C or C89, except that C wins on the portability side.
EDIT: some extra clarification and formatting
Not to mention string handling in C is just awful.
The most popular language in the world -- the language that's being used to write the largest, most complex software -- will surely have a rich history of bugs and security holes. That will be the case whether or not said language is C.