¿Por qué hay muchos más programadores mejores en C que en C ++ cuando C es simplemente básico y no ofrece ninguna protección?

No estoy seguro de estar de acuerdo con su pregunta aquí.

  1. No veo dónde C ++ ofrece más protección que C. Ambos no tienen administración de memoria fuera de la caja, y C ++ es principalmente un paradigma orientado a objetos construido sobre C con sus mismas fortalezas, debilidades y dificultades.
  2. También estoy seguro de que muchos programadores son mejores en C sobre C ++. Incluso afirmaría lo contrario e identificaría la riqueza de STL como la causa de que los programadores de C ++ puedan proporcionar soluciones más estables.
  3. Asumiendo que tenías razón con el hecho de que más programadores son buenos en C versus C ++ (que no estoy seguro de comprar), podría decir lo siguiente:
    • Menos para aprender sobre C que C ++ (no hay conceptos de OO para entender, por ejemplo).
    • El diseño en C no puede morderte tanto como el diseño en C ++. Por ejemplo, el concepto de contratos en las interfaces C ++ es crucial para producir una solución que se mantenga en el camino o que se salteará el camino en serio. A C no le importa esto.

Es una ilusion.

C ++ es un monstruo hecho por hombres. La cantidad de interacción compleja que puede tener es fenomenal.
Debido a que este lenguaje se basa firmemente en los efectos secundarios, ese nivel de complejidad potencial hace que las consecuencias de algunos códigos a veces sean muy difíciles de predecir.

De hecho, no hay ningún verdadero experto en C ++, incluso Bjarne Stroustrup no lo es.

Por otro lado, C se ha creado para construir programas basados ​​en ensamblajes sin escribirlos directamente. Sus características son de un nivel más alto que las del lenguaje ensamblador, eso es todo. Puede comprender fácilmente esas características y, dado que son simples y no hay tantas, incluso si C también se basa en efectos secundarios, no es tan difícil de manejar.

Con C, la complejidad de las relaciones entre elementos proviene de usted mediante el uso de características simples.
Con C ++, esa complejidad está en las características.

Esa es la verdadera diferencia. Oh, casi lo olvido, C ++ tiene plantillas, puede ser una razón, pensó …

C es un lenguaje muy muy simple: una persona puede dominarlo en su totalidad; hay muy pocas trampas y reglas especiales.

en C ++ puede tener interacciones muy complicadas entre características complejas. Para ser un experto en C ++, lleva años y años. La experiencia en C es mucho más fácil de adquirir.

Indique la evidencia de su propuesta antes de que podamos molestarnos en responder su pregunta.