I timori di prestazioni o gonfiore non sono buoni motivi per rinunciare al C ++. Ogni lingua ha le sue potenziali insidie e compromessi: i bravi programmatori ne sono a conoscenza e, se necessario, sviluppano strategie di coping, i programmatori poveri si sbagliano e incolpano la lingua.
L'interpretazione di Python è in molti modi considerata un linguaggio "lento", ma per compiti non banali un abile programmatore Python può facilmente produrre codice che viene eseguito più velocemente di quello di uno sviluppatore C inesperto.
Nel mio settore, i videogiochi, scriviamo codice ad alte prestazioni in C ++ evitando cose come RTTI, eccezioni o funzioni virtuali nei loop interni. Questi possono essere estremamente utili ma hanno problemi di prestazioni o gonfia che è desiderabile evitare. Se dovessimo fare un ulteriore passo e passare interamente a C, guadagneremmo poco e perderemmo i costrutti più utili di C ++.
Il principale motivo pratico per preferire il C è che il supporto è più diffuso del C ++. Esistono molte piattaforme, in particolare quelle integrate, che non hanno nemmeno compilatori C ++.
C'è anche la questione della compatibilità per i fornitori. Mentre C ha un ABI (Application Binary Interface) stabile e ben definito, C ++ no. L'ABI in C ++ è più complicato a causa di cose come vtables e costruttori / distruttori, quindi viene implementato in modo diverso con ogni fornitore e persino con le versioni di una catena di strumenti del fornitore.
In termini reali ciò significa che non è possibile prendere una libreria generata da un compilatore e collegarla con il codice o una libreria di un altro che crea un incubo per progetti distribuiti o fornitori di middleware di librerie binarie.