Qu'est ce que ça à avoir avec la performance le fait que les chaînes soient terminées par NULL ? C'est du fait seul que le type string n'existe pas en en C ANSI. A la place on fait appel à la logique des pointeurs.
Pour les E/S il y a plusieurs façons de faire, soit en passant par les bibliothèques C, soit en passant directement par les primitives systèmes... Et quoi qu'il en soit, à moins de programmer au niveau même du noyau j'imagine, il y aura toujours un problème de performances vu qu'il s'agit d'interruptions système.
Il n'y avait nulle référence à ADA dans son post. La comparaison était par rapport aux langages plus haut niveau qu'on a cité tous deux.
Il y a évidemment plus bas niveau que le C... Tout ce qui est programmation en assembleur par exemple. Mais çà n'occulte pas qu'on est en dessous du C# ou Java.
En tout cas, dans un contexte de très faible mémoire ou de temps réel j'ai pas souvenir d'avoir vu ces derniers privilégiés au C.