Bien que les gens semblent aimer se plaindre à propos du C++, je n'ai pas pu trouver beaucoup d'éléments expliquant pourquoi vous voudriez choisir le C plutôt que le C++. Le C ne semble pas recevoir autant de critiques et si le C++ a tous ces problèmes, pourquoi ne pas se limiter au sous-ensemble C ? Quelles sont vos réflexions/expériences ?
Réponses
Trop de publicités?J'ai choisi d'écrire en C parce que j'aime travailler avec un langage petit et étroit. J'aime avoir accès à un standard qui peut être lu en un temps raisonnable (pour moi -- je suis un lecteur très lent). De plus, je l'utilise pour écrire des logiciels destinés à des systèmes embarqués pour lesquels il existe peu de compilateurs C++ souhaitables (par exemple un peu de microcontrôleurs PIC).
En plus de plusieurs autres points déjà mentionnés :
Moins de surprise
c'est-à-dire qu'il est beaucoup plus facile de voir ce qu'un morceau de code va faire exactement . En C++, il faut approcher le niveau du gourou pour être capable de savoir exactement quel code le compilateur génère (essayez une combinaison de templates, d'héritage multiple, de constructeurs générés automatiquement, de fonctions virtuelles et mélangez-y un peu de magie d'espace de nom et de recherche dépendante d'argument).
Dans de nombreux cas, cette magie est agréable, mais dans les systèmes en temps réel, par exemple, elle peut vraiment vous gâcher la journée.
J'ai l'habitude d'utiliser le C++ pour mes projets. Puis j'ai obtenu un emploi où le C est utilisé (une base de code évolutive de 20 ans d'un logiciel AV avec une documentation pauvre...).
Les 3 choses que j'aime en C sont :
-
Rien n'est implicite : vous voyez ce que votre programme fait ou ne fait pas exactement. Cela facilite le débogage.
-
L'absence d'espaces de noms et de surcharges peut être un avantage : si vous voulez savoir où une certaine fonction est appelée, il suffit de parcourir le répertoire du code source et il vous le dira. Aucun autre outil spécial n'est nécessaire.
-
J'ai redécouvert la puissance des pointeurs de fonction. En gros, ils vous permettent de faire tous les trucs polymorphes que vous faites en C++, mais ils sont encore plus flexibles.
La réponse de Linus à votre question est "Parce que le C++ est un langage horrible"
Ses preuves sont au mieux anecdotiques, mais il a raison
Étant donné qu'il s'agit davantage d'un langage de bas niveau, vous le préféreriez au C++. Le C++ est du C avec des bibliothèques supplémentaires et un support de compilateur pour des fonctionnalités supplémentaires ( les deux langues ont des caractéristiques que l'autre langue n'a pas, et implémentent les choses différemment ), mais si vous avez le temps et l'expérience du C, vous pouvez bénéficier de pouvoirs supplémentaires liés au bas niveau... [Modifié] (parce que vous être utilisé à faire plus de travail manuellement plutôt que de bénéficier de certains pouvoirs provenant du langage/compilateur lui-même)
Ajout de liens :
Pourquoi utilisez-vous encore le C ? PDF
Je voudrais google pour cela parce qu'il y a déjà beaucoup de commentaires sur le web