Question:
Programmation en C, s'avancer ou upgrader C++?
Jonathan
2017-12-30 13:29:12 UTC
Bonjour, je suis étudiant en génie électrique, je viens tout juste de commencer j'ai appris les bases du langage C. Jai donc par moi-meme effectue le cours complet sur le site openclassroom pour m'avancer et en connaitre plus. Je me demandais, si je devrais me concentrer et en connaitre encore plus sur le langage en prenant des livres avancer ou bien me concentrer et evoluer vers le C++.

merci.
Quatre réponses:
oyubir
2017-12-30 15:29:08 UTC
Un point important, mais alors ULTRA important, à comprendre : C++ n'est pas la suite de C.

C et C++ sont deux langages différents. C'est tout. Il n'y a pas un qui est plus avancé que l'autre.

Soit dit sans nier le fait que C++ est construit à partir de C (mais C a évolué entre temps aussi. Donc le C++ actuel n'est pas une évolution du C actuel. Mais une évolution de C des années 1980, exactement comme le C actuel est une évolution du C des années 80)



Du fait de l'héritage (qui reste, tant qu'on ne rentre pas dans les détails, dans les grandes lignes, vrai), si votre but est d'apprendre C++, commencer par le C n'était pas forcément une mauvaise idée.

Mais ça ne veut pas dire que la seule raison d'apprendre C est d'apprendre in fine le C++.

C n'est pas qu'un moyen pour la fin C++. C est une fin en soi.



C'était déjà ce que je racontais à mes étudiants (qui me demandaient "quand passe-t-on à C++") il y a 10 ans, quand il était très difficile, en dehors du monde de la recherche en informatique, de dire que la programmation OO n'était qu'un paradigme parmi d'autres, et pas le paradigme ultilme, tous les autres paradigmes n'étant que des étapes intermédiaires vers celui là. Mais aujourd'hui, mon discours de vieux con a le vent en pupe. Le dogme de la programmation OO a du plomb dans l'aile en ce moment. Quasiment toutes les prises de positions des grands pontes de la théorie du langage vont dans le sens de dire "en fin de compte l'OO, ça pose plus de problème que ça n'en résoud".

(Ce qui est bien pratique pour moi, puisque j'ai toujours dit, et même enseigné donc cela. Ça me permet de rester un vieux con, et d'un seul coup être en avance au lieu d'être en retard, sans avoir bougé ou presque).



Ne tombons pas dans l'extrême inverse : l'OO a des tas d'avantages. Mais à condition (comme pour tout en fait - les intégristes de la programmation fonctionnelle - paradigme dont je suis fan - perdent aussi un temps fou juste pour ne pas taper un ";") de ne pas en faire un dogme. De ne pas utiliser l'OO juste parce que "c'est plus moderne" (ce que ça n'est pas d'ailleurs. C'est plus vieux que moi).



Donc C et C++ sont deux langages différents. C++ n'est (c'est pas moi qui le dis, mais Stroustrup, son inventeur) pas d'ailleurs un langage OO. Mais un langage avec de l'OO.

C est adapté quand vous voulez garder une certaine visibilité sur ce qui se passe (les octets, les appels systèmes etc). C++ l'est quand vous voulez au contraire ne pas vous en occuper.



Il est impossible de répondre à votre question si on ne sait pas

1) Quel est votre but. Si votre but est de programmer un OS, de faire du réseau, du hacking, de la sécurité, de l'embarqué, etc, il est probable que de toutes façons vous ayez besoin avant tout du C. Donc, la réponse est forcément qu'il faut continuer C



2) Quel est votre niveau. Même si votre but est de refaire excel, ou de programmer ce genre d'applications de façon générale, alors, en effet, votre but ultime peut être d'apprendre le C++.

Mais bon, si vous ne comprenez pas encore (je choisis volontairement les trucs que mes étudiants mettent le plus de temps à comprendre - voire ne comprennent jamais) la différence entre un tableau et un pointeur, un tableau à deux dimensions et un tableau de tableau, un entier et un caractère, un #include et une librairie, etc, il est probable que vous avez encore des notions de base à connaître, qui sont importantes (et qui serviront pour C++ aussi), qu'il ne serait peut-être pas plus mal d'apprendre avant d'ajouter les classes, les objets, la surcharge d'opérateurs, les casts implicites, les templates, etc.





Donc en résumé :

C++ n'est pas un upgrade de C

"upgrader" en C++ n'est pas forcément votre but final. Ça dépend de ce que vous voulez faire, et vous ne nous avez pas dit ce que vous vouliez faire.

Et même si ça l'est, c'est n'est pas forcément le truc à faire maintenant. Ça dépend de votre niveau, et vous ne nous avez pas dit quel est votre niveau.



A mon avis, quelqu'un qui dit "je viens d'apprendre les bases", n'en est probablement pas encore au point où continuer le C serait apprendre des trucs très spécifiques au C. Donc vous avez certainement encore beaucoup à apprendre en C tout court.

(Mais cela dit, si vous êtes sûr à 100% que le but final est C++, dans ce cas, ben il y a des tas de gens qui apprennent le C++ directement, sans passer par le C. Le corrolaire au fait que C++ n'est pas la suite de C, est que personne n'a dit qu'on devait d'abord apprendre le C et ensuite le C++. Ce sont deux langages différents, avec beaucoup de points commun. Mais l'un n'est pas inclus dans l'autre. Et il n'est nul besoin, quand on apprend l'un des deux, de commencer nécessairement par l'intersection des deux)
cyrano
2017-12-30 13:43:30 UTC
Commence par bien apprendre les bases du C que tu apprends en classe. Il faut particulièrement que tu maitrises les pointeurs en comprenant tous les aspects.



Inutile pour le moment de tout mélanger en tentant d'apprendre seul le langage orienté objets du C++ tu ne ferais effleurer le sujet tout en prenant des mauvaises habitudes.
anonymous
2017-12-30 13:41:42 UTC
Oui évoluer vers C++
?
2017-12-30 15:21:43 UTC
Je ne connais pas.


Ce contenu a été initialement publié sur Y! Answers, un site Web de questions-réponses qui a fermé ses portes en 2021.
Loading...