C, C++ et C#

  1. il y a 11 mois

    bernard ng

    5 Apr 2018 Modérateur User since 2017

    Quelle est la différence entre ces trois langages ?
    C C++ et C#

    Ayant au cours de ma vie IT utilisé deux de ces langages (C et C#) je peux dire que la grande différence se situe au niveau "Conceptuel", "Accès mémoire",

    Au niveau conceptuel :
    * Le C est un langage purement impératif et généraliste (certains te parlerons du procédural mais ils se trompent, quand on programme en C on dit qu'on fait de la Programmation impérative ),

    Au niveau Accès mémoire :

    • il fait un usage intensif des calculs d'adresse mémoire avec la notion de pointeur,
    • À part le type entiers, flottant, le C supporte aussi les types énumérés, composés, et opaques. Il ne propose en revanche aucune opération qui traite directement des objets de plus haut niveau (fichier informatique, chaîne de caractères, liste, table de hachage…). Ces types plus évolués doivent être traités en manipulant des pointeurs et des types composés. De même, le langage ne propose pas en standard la gestion de la programmation orientée objet, ni de système de gestion d'exceptions.

    À part les autres petites différences comme par exemple le typage, mais il faut retenir que ce langage est extrêmement utilisé dans des domaines comme la programmation embarquée sur microcontrôleurs, les calculs intensifs, l'écriture de systèmes d'exploitation et les modules où la rapidité de traitement est importante. Il constitue une bonne alternative au langage d'assemblage dans ces domaines, avec les avantages d'une syntaxe plus expressive et de la portabilité du code source. Il a été utilisé en grande partie pour le développement du noyau Linux et aussi celui de Windows.

    Ce que je peux dire du C++ ce qu'il reprend les mêmes logiques de C mais en plus moderne, il présente les choses sous un aspect objet mais puisque j'aime la sécurité, je t'informe que ce langage est beaucoup utilisé par des programmeurs travaillant à la NSA, ceci a été découvert quand il y a eu fuite de certains outils que la NSA utilise pour espionner, pirater certaines données et on a découvert que tous les outils étaient developper avec C++, il est aussi utilisé dans le gaming, et beaucoup d'autres domaines.

    En ce qui concerne le C#, lui aussi dérive du C et ressemble beaucoup au C++, sa différence avec le C de situe au niveau conceptuel (impératif vs objet) et sa différence avec C++ se situe au niveau plateforme : un programme fait en C++ est portable, et multi plateforme, alors que le C# est attaché à la technologie DotNet (de Microsoft), ce qui le rend un peu comme un langage propriétaire bien qu'on peut faire un tas de truc avec lui mais uniquement sur Windows.

    Voilà un peu en gros ma contribution à ta question.

    @mahid

  2. mahid_hm

    13 Apr 2018 Administrateur Answer User since 2017
    Edité il y a 11 mois par mahid_hm

    Ayant au cours de ma vie IT utilisé deux de ces langages (C et C#) je peux dire que la grande différence se situe au niveau "Conceptuel", "Accès mémoire",

    Au niveau conceptuel :
    * Le C est un langage purement impératif et généraliste (certains te parlerons du procédural mais ils se trompent, quand on programme en C on dit qu'on fait de la Programmation impérative ),

    Au niveau Accès mémoire :

    • il fait un usage intensif des calculs d'adresse mémoire avec la notion de pointeur,
    • À part le type entiers, flottant, le C supporte aussi les types énumérés, composés, et opaques. Il ne propose en revanche aucune opération qui traite directement des objets de plus haut niveau (fichier informatique, chaîne de caractères, liste, table de hachage…). Ces types plus évolués doivent être traités en manipulant des pointeurs et des types composés. De même, le langage ne propose pas en standard la gestion de la programmation orientée objet, ni de système de gestion d'exceptions.

    À part les autres petites différences comme par exemple le typage, mais il faut retenir que ce langage est extrêmement utilisé dans des domaines comme la programmation embarquée sur microcontrôleurs, les calculs intensifs, l'écriture de systèmes d'exploitation et les modules où la rapidité de traitement est importante. Il constitue une bonne alternative au langage d'assemblage dans ces domaines, avec les avantages d'une syntaxe plus expressive et de la portabilité du code source. Il a été utilisé en grande partie pour le développement du noyau Linux et aussi celui de Windows.

    Ce que je peux dire du C++ ce qu'il reprend les mêmes logiques de C mais en plus moderne, il présente les choses sous un aspect objet mais puisque j'aime la sécurité, je t'informe que ce langage est beaucoup utilisé par des programmeurs travaillant à la NSA, ceci a été découvert quand il y a eu fuite de certains outils que la NSA utilise pour espionner, pirater certaines données et on a découvert que tous les outils étaient developper avec C++, il est aussi utilisé dans le gaming, et beaucoup d'autres domaines.

    En ce qui concerne le C#, lui aussi dérive du C et ressemble beaucoup au C++, sa différence avec le C de situe au niveau conceptuel (impératif vs objet) et sa différence avec C++ se situe au niveau plateforme : un programme fait en C++ est portable, et multi plateforme, alors que le C# est attaché à la technologie DotNet (de Microsoft), ce qui le rend un peu comme un langage propriétaire bien qu'on peut faire un tas de truc avec lui mais uniquement sur Windows.

    Voilà un peu en gros ma contribution à ta question.

    @mahid

  3. @scott

    13 Apr 2018 User since 2018

    Le C est un langage procédural, et le plus basique parmi les 3 cités. On parle parfois de proximité à la machine. Il ne permet de définir et d'utiliser que des fonctions ainsi que des structures de base (struct). Un code source en C n'est qu'un enchaînement de définitions et d'appels à des procédures.

    Le C++, comme son nom l'indique, est une surcouche du C pour ainsi dire. Il introduit le modèle objet dans le C, ainsi que de nouvelles fonctionnalités avancées comme les templates. Il s'articule aussi autour d'une librairie de base : la STL. Pour résumer assez grossièrement : si vous pensez faire du C++ sans n'utilisez ni les classes (donc ni la STL), ni les templates (ni d'autres possibilités que je vais omettre ici par simplicité), vous faites en realité du C.

    Le C# quant à lui est un tout autre langage. Il s'agit aussi d'un langage compilé, mais dont le produit de compilation s'appuie sur le Common Language Runtime (CLR). Ce qui implique que, pour executer les binaires produits, il vous faut installer sur la machine cible un environnement d'exécution (le .NET Framework). Le C# repose lui aussi sur le modèle objet, tout comme le C++. Mais contrairement aux deux langages précédemment cités, la charge de l'allocation et de la libération des resources n'incombe pas au programme lui même, mais est géré par l'environnement d'exécution (garbage collector). En gros, pour simplifier encore une fois, le C# a plus en commun avec le Java qu'avec le C++, contrairement à ce que son nom pourait laisser penser. Par ailleurs, s'agit d'une technologie destinée à Windows, à l'origine, bien que des portages existent (sous Linux par exemple).

  4. bernard ng

    16 Apr 2018 Modérateur User since 2017

    Merci @mahid_hm

  5. bernard ng

    16 Apr 2018 Modérateur User since 2017

    Merci @scott

 

ou S'incrire pour répondre!