C++ est un langage multi-paradigme principalement basé sur l'impératif et l'objet (avec des possibilités du côté du fonctionnel) et une place importante donnée au métaprogramming. C# a été initialement conçu par Microsoft pour piloter la plateforme .Net de Windows. Il existe aujourd'hui d'autres implémentations comme Mono, il est très fortement inspiré de C++ et de Java dont il tire une large partie de la forme du code et l'idée de ressources gérées par la plateforme d'accueil.
Ils sont globalement assez différents, si on devait "résumer" de manière assez inexacte :
gestion des ressources : C# - automatique par garbage collecting | C++ : automatique par typage + manuel si on veut,
gestion des erreurs : C# - assertions + exceptions | C++ : assertion + exceptions + booléens + runtime error de l'OS,
éco-système (OS) : C# - principalement Windows mais Mono sur les autres plateformes est de plus en plus complet | C++ - multi
éco-système (bibliothèques) : C# - assez fourni de mémoire | C++ - accès béni et maudit à toutes les bibliothèques C.
C++ est plutôt adapté quand on a vraiment besoin de contrôle sur le fonctionnement de l'application, mais ce contrôle demande beaucoup de temps de développement et d'expertise.
On pourrait parler des heures, mais globalement, C# est un langage à la philosophie Get Shit done. Quand on regarde un peu l'histoire des évolutions du langage, toutes ses fonctionnalités ont été pensées avec soin, pour présenter le moins de "risque" pour les développeurs.
Ca ne l'a pas empêché d'être relativement "innovant" parmi les langages dits "mainstream", cf LINQ, et plus récemment async/await (arrivé par le F#).
C++ à l'inverse, c'est le bazooka chargé entre les mains : quand on connaît pas, on va regarder un peu dans tous les sens et si on fait pas gaffe ça finit par exploser à la gueule : beaucoup de fonctionnalités, mais certaines dangereuses et/ou très obscures.
Enfin, attention au C++ quand on débute : autant apprendre directement le C++ "moderne" :-)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C