Bonjour les amis !,

j'ai une petite question qui me fait mal a la tête,pourquoi la plupart des projets ou des programmes sont codé en (C#,java,py,...) et pas en C,pourquoi pas le C ?est-ce que C est un langage terrible ?

Jusqu'à maintenant j'ai pas vue un projet en c sur cadernis,peut être qu'il en a mais c'est rare de trouver quelqu'un qui aime codé en c .

    c'est simplement que le c# ou le vb.net, javascript etc se rapproche plus du AS3 et permet d'avancer plus rapidement et de maintenir a jour son logiciel plus facilement. Et finalement pas oublier que la majorité des partages de projet sur le forum sont dans ces langages

    Fr3eX

    Bonjour les amis !,

    j'ai une petite question qui me fait mal a la tête,pourquoi la plupart des projets ou des programmes sont codé en (C#,java,py,...) et pas en C,pourquoi pas le C ?est-ce que C est un langage terrible ?

    Jusqu'à maintenant j'ai pas vue un projet en c sur cadernis,peut être qu'il en a mais c'est rare de trouver quelqu'un qui aime codé en c .

    Salut,

    J'ajouterai également que le C est un langage procédural contrairement au C#, java, python qui sont des langages orienté objet ce qui rend le développement limité. De plus, le C est un langage bas niveau(il est au plus proche de la machine) ce qui "complexifie" son utilisation pour de gros projets. Tu dois tout gérer en mémoire tandis que les langages que tu cites son haut niveau et le fond pour toi d'une certaine manière. Tu as le C++ qui n'est pas du C, mais y ressemble très fortement et est orienté objet.

    Sinon, si tu cherches une personne qui aime codé en C bas j'en suis une :) Viens en mp si tu veux je travaille actuellement sur un IRC.

      Tout simplement parce que le C est un langage bas niveau, donc très proche de la machine (on entend par là que c'est au programmeur de gérer la mémoire)

      Un développeur C# instancie un objet de cette façon

      public class obj
      {
          string text;
          string text1;
      }
      
      var obj = new obj();

      Sans savoir que derrière se cache

      struct obj
      {
          char *text;
          char *text1;
      }
      
      struct obj *instanciate_obj()
      {
          struct *obj = malloc(sizeof(obj));
      
          if (obj == NULL) {
              // Handle error
              // Out of memory
              return NULL;
          }
         
          obj->Text = strdup("coucou");
         
      // OU ENCORE
         
          obj->Text = malloc(sizeof(char) * X);
         
          if (obj->Text == NULL) {
              // Handle error
              // Out of memory
              return NULL;
          }
         
          obj->Text1 = malloc(sizeof(char) * Y);
         
          if (obj->Text1 == NULL) {
              // Handle error
              // Out of memory
             return NULL;
          }
        
         ......
      
          return obj;
      }

      Sans parler des méthodes de base fournies par le Framework .Net qu'il faut entièrement réécrire en C.

      Sans parler du fait que le C est un langage procédural, donc pas d'objet.

      Sans parler du fait que la moindre erreur de gestion de la mémoire en C fait planter entièrement le programme (avec un jolie SegFault offert)

      Sans parler du nombre de ligne concidérable qu'il faut à un dév C pour égaler les résultats d'un dev C#.

      et j'en passe eheh

      Enjoy !

        Perospero

        Salut,

        J'ajouterai également que le C est un langage procédural contrairement au C#, java, python qui sont des langages orienté objet ce qui rend le développement limité. De plus, le C est un langage bas niveau(il est au plus proche de la machine) ce qui "complexifie" son utilisation pour de gros projets. Tu dois tout gérer en mémoire tandis que les langages que tu cites son haut niveau et le fond pour toi d'une certaine manière. Tu as le C++ qui n'est pas du C, mais y ressemble très fortement et est orienté objet.

        Sinon, si tu cherches une personne qui aime codé en C bas j'en suis une :) Viens en mp si tu veux je travaille actuellement sur un IRC.

        Ouais J'ai compris qu 'est-ce que vous voulez dire.Donc même si le langage est bas niveau n'implique pas qu'il est procédural (c++ comme vous avez dit )

          tazman59

          Sans parler du fait que la moindre erreur de gestion de la mémoire en C fait planter entièrement le programme (avec un jolie SegFault offert)

          Enjoy !

          :'(:'(:'(:'(:'(:'(:'( arf je déteste cette erreur :( , parfois c'est vraiment difficile de trouver ou est le problème.

            Fr3eX

            :'(:'(:'(:'(:'(:'(:'( arf je déteste cette erreur :( , parfois c'est vraiment difficile de trouver ou est le problème.

            Il y a un outil qui s’appelle Valgrind et qui permet d’avoir une remontée des erreurs mémoire assez précise. Il y en a sûrement d’autres mais celui-ci est cool.

            Fr3eX

            Ouais J'ai compris qu 'est-ce que vous voulez dire.Donc même si le langage est bas niveau n'implique pas qu'il est procédural (c++ comme vous avez dit )

            L'avantage(désavantage) du C++ est qu'il est Orienté objet et assez bas niveau(par rapport au Java, C#), si tu cherches l'efficacité de ton programme ET que tu sais gérer la mémoire de tes programmes le C++ est un bon choix. A contrario, il préférable de prendre le C#/Java au lieu du C++ si tu ne cherches pas l’efficacité optimale ou/et tu gères mal la mémoire de ton programme. Par exemple, en C# il y'a le garbage collector qui gère ta mémoire de manière assez imprévisible(mais ta mémoire est gérée) si tu souhaites le faire toi même a ta guise pour plus d’efficacité le C++ te le permettra. Mais le C# gère très bien la mémoire tout comme le Java hein.

              Oui fin vous êtes en train de démonter le C comme si c'était le diable, mais bon au final, si ce n'est que pour coder plus vite votre bot ou votre serveur, au final ça ne changera rien.

              Si tu as une limite de temps pour faire ton projet, on pourrait comprendre le fait que tu te redirige vers des langages haut niveau, mais si de base tu aime coder en C, je vois pas ce qui t'empêcherai de le faire.

              Le but c'est que soit tu apprenne de ce que tu essaie de faire, ou soit que tu t'amuse à le faire ¯\_(ツ)_/¯

                Fallen

                Oui fin vous êtes en train de démonter le C comme si c'était le diable, mais bon au final, si ce n'est que pour coder plus vite votre bot ou votre serveur, au final ça ne changera rien.

                Si tu as une limite de temps pour faire ton projet, on pourrait comprendre le fait que tu te redirige vers des langages haut niveau, mais si de base tu aime coder en C, je vois pas ce qui t'empêcherai de le faire.

                Le but c'est que soit tu apprenne de ce que tu essaie de faire, ou soit que tu t'amuse à le faire ¯\_(ツ)_/¯

                oui vous avez raison personne ne t’empêchera de faire ce que tu veux

                Perospero

                L'avantage(désavantage) du C++ est qu'il est Orienté objet et assez bas niveau(par rapport au Java, C#), si tu cherches l'efficacité de ton programme ET que tu sais gérer la mémoire de tes programmes le C++ est un bon choix. A contrario, il préférable de prendre le C#/Java au lieu du C++ si tu ne cherches pas l’efficacité optimale ou/et tu gères mal la mémoire de ton programme. Par exemple, en C# il y'a le garbage collector qui gère ta mémoire de manière assez imprévisible(mais ta mémoire est gérée) si tu souhaites le faire toi même a ta guise pour plus d’efficacité le C++ te le permettra. Mais le C# gère très bien la mémoire tout comme le Java hein.

                Oui j'ai bien compris merci beaucoup maintenant je sais pas mal de chose .

                @tazman59 @Perospero @Fallen merci les amis pour votre temps et vos réponse !