C/C++ Langage C

Inscrit
24 Novembre 2018
Messages
10
Reactions
1
#1
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 .
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#2
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
 
Inscrit
2 Juin 2018
Messages
32
Reactions
0
#3
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.
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#4
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
C:
public class obj
{
    string text;
    string text1;
}

var obj = new obj();
Sans savoir que derrière se cache

C:
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 !
 
Inscrit
24 Novembre 2018
Messages
10
Reactions
1
#5
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 )
 
Inscrit
24 Novembre 2018
Messages
10
Reactions
1
#6
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.
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#7
:'(:'(:'(:'(:'(:'(:'( 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.
 
Inscrit
2 Juin 2018
Messages
32
Reactions
0
#8
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.
 
Inscrit
18 Février 2015
Messages
228
Reactions
7
#9
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 ¯\_(ツ)_/¯
 
Inscrit
24 Novembre 2018
Messages
10
Reactions
1
#10
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
 
Inscrit
24 Novembre 2018
Messages
10
Reactions
1
#11
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 !
 
Haut Bas