151 votes

Pourquoi utiliser le C plutôt que le C++ ?

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 ?

41voto

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).

35voto

jdisk Points 471

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.

29voto

Calmarius Points 2626

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.

28voto

Ric Tokyo Points 5465

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 C++ pour l'embarqué

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

26voto

Michel Points 992

Parce qu'ils écrivent un plugin et que le C++ n'a pas d'ABI standard.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X