>>1
It depends on the domain:
1. High-level stuff will resemble
lisp or whatever domain its in(e.g. logic) superficially,
providing minimal functionality developed as throwaway code
to solve something specific and
being hard to debug(e.g. function pointers, nested macros) vs
high-level stuff that is meant to be extensible, generic and composable.
C API will not be pretty to use vs parsing LISP: it is however much
likely to be faster in its dedicated task.
2.Mid-level stuff will resemble object systems from C++/java/ada.
There will be equal or better functionality, but much buggier due
exposing low-level primitives. The flexibility and speed will be competitive
with mid-level languages.
3.Low-level C has no competitors and its what your high-level languages
compile to most of time.
Low-level stuff is easy to debug/optimize/refactor.
Its possible to make higher-level abstraction based on low-level
stuff, which entails creating a complex high-level system with all
the disadvantages of C in #1.