A voir également:
- Avantage du langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
2 réponses
Avantages pratiques :
- c'est probablement le langage le plus répandu et le plus utilisé ; par conséquent on peut trouver sans difficulté tout ce dont on a besoin : interfaces pour des logiciels tiers, codes source libres, documentation, exemples... c'est l'assurance de presque toujours trouver quelqu'un ou quelque chose qui sera compatible avec ce qu'on développe.
- c'est un langage standardisé ; on peut le trouver dans une multitude d'environnements avec la garantie que le fonctionnement sera le même partout
Avantages techniques :
- extrêmement performant car très "proche" des instructions du processeur
Mais pourquoi seulement les avantages ?
- c'est probablement le langage le plus répandu et le plus utilisé ; par conséquent on peut trouver sans difficulté tout ce dont on a besoin : interfaces pour des logiciels tiers, codes source libres, documentation, exemples... c'est l'assurance de presque toujours trouver quelqu'un ou quelque chose qui sera compatible avec ce qu'on développe.
- c'est un langage standardisé ; on peut le trouver dans une multitude d'environnements avec la garantie que le fonctionnement sera le même partout
Avantages techniques :
- extrêmement performant car très "proche" des instructions du processeur
Mais pourquoi seulement les avantages ?
Il n'y à aucun avantage à programmer en C, tu programme en C parce que tu as pas le choix, par exemple parce que tu programme un robot qui ne peu être programmable que en C.
Il y à au moins 5000 langages de programmation mieux que le C, ne serais ce que C++ pour commencer.
Il y à au moins 5000 langages de programmation mieux que le C, ne serais ce que C++ pour commencer.
Célien,
C'est un sujet déterré.
Sur le fond, http://freshmeat.sourceforge.net/tags/c?sort=popularity cite plein de contre-exemples... entre autres Apache, gcc, Linux, PHP, Wireshark, VLC media player, Blender, TightVNC, curl, GIMP, ..., édifiant, non ?
Dal
C'est un sujet déterré.
Sur le fond, http://freshmeat.sourceforge.net/tags/c?sort=popularity cite plein de contre-exemples... entre autres Apache, gcc, Linux, PHP, Wireshark, VLC media player, Blender, TightVNC, curl, GIMP, ..., édifiant, non ?
Dal
Oops j'avais pas vu que "internetwebservices - 20 mars 2013 à 17:17" avait déterré le sujet.
Oui je sais que pleins de logiciels systèmes et outils sont fait en C, y compris LInux, mais j'aime bien provoquer les gens ça m'amuse que veux tu...... En même temps des outils et logiciels système fait en C c'est un bon choix, au moins sur les performances résultantes. De toute façon, on ne sais pas ce qu'il voulais programmer donc c'est forcément un débat la noix.
Oui je sais que pleins de logiciels systèmes et outils sont fait en C, y compris LInux, mais j'aime bien provoquer les gens ça m'amuse que veux tu...... En même temps des outils et logiciels système fait en C c'est un bon choix, au moins sur les performances résultantes. De toute façon, on ne sais pas ce qu'il voulais programmer donc c'est forcément un débat la noix.
@fiddy, Pascal rocks :-P
@Célien, je vis dans un monde où j'utilise quotidiennement Apache, gcc, Linux, PHP, Wireshark, VLC media player, Blender, TightVNC, curl, GIMP, ... Le C n'est pas réservé à l'électronique embarquée, ni aux "logiciels systèmes et outils" (au fait.. tout logiciel est un "outil", mais si tu veux dire "outils systèmes", ou "petits utilitaires", là aussi rien que dans cette courte énumération, tu as déjà des contre-exemples, que tu peux compléter à loisir en parcourant freecode -- si tu veux dire autre chose, je n'ai pas compris).
Pour compléter le tableau des personnes qui se sont exprimées dans ce débat aux fruits secs :-D, j'ajouterai que je pense que c'est un langage formateur, car si on n'est pas extrêmement rigoureux en C, on n'arrive à rien (ou à rien de bon, en tout cas).
Bien sûr, c'est le cas pour tout langage de programmation.
Cependant, dans le cas du C, cette rigueur n'est pas encadrée par la rigueur du langage, mais est rendue nécessaire en raison de sa flexibilité et des "pièges" du langage C qui en résultent pour une personne qui ne serait pas attentive. Le programmeur C doit développer une méthode de programmation, comprendre les "bonnes pratiques", et il lui faut acquérir et s'approprier tout cela, et cela ne va donc pas de soi, car ce n'est pas dicté par le langage lui-même.
C'est pour cela aussi qu'il est plus difficile d'être un bon enseignant en C, qu'un bon enseignant en Pascal.
Dal
@Célien, je vis dans un monde où j'utilise quotidiennement Apache, gcc, Linux, PHP, Wireshark, VLC media player, Blender, TightVNC, curl, GIMP, ... Le C n'est pas réservé à l'électronique embarquée, ni aux "logiciels systèmes et outils" (au fait.. tout logiciel est un "outil", mais si tu veux dire "outils systèmes", ou "petits utilitaires", là aussi rien que dans cette courte énumération, tu as déjà des contre-exemples, que tu peux compléter à loisir en parcourant freecode -- si tu veux dire autre chose, je n'ai pas compris).
Pour compléter le tableau des personnes qui se sont exprimées dans ce débat aux fruits secs :-D, j'ajouterai que je pense que c'est un langage formateur, car si on n'est pas extrêmement rigoureux en C, on n'arrive à rien (ou à rien de bon, en tout cas).
Bien sûr, c'est le cas pour tout langage de programmation.
Cependant, dans le cas du C, cette rigueur n'est pas encadrée par la rigueur du langage, mais est rendue nécessaire en raison de sa flexibilité et des "pièges" du langage C qui en résultent pour une personne qui ne serait pas attentive. Le programmeur C doit développer une méthode de programmation, comprendre les "bonnes pratiques", et il lui faut acquérir et s'approprier tout cela, et cela ne va donc pas de soi, car ce n'est pas dicté par le langage lui-même.
C'est pour cela aussi qu'il est plus difficile d'être un bon enseignant en C, qu'un bon enseignant en Pascal.
Dal
non objet
gestion mémoire très pénalisante
peut devenir illisible si mal écrit
mono plateforme (un code C doit être re compiler pour fonctionner sur un autre OS, voir des fois modifié)
Autant aller tout de suite vers du C++
Et si on ne recherche pas forcément les perfs, autant aller vers du Java
gestion mémoire très pénalisante
C'est aussi un avantage la gestion de la mémoire puisque le programmeur fait ce qu'il veut. Cela évite d'user du garbage collector qui est gourmand en ressource.
peut devenir illisible si mal écrit
Comme tous les langages. Si c'est mal écrit, ce n'est pas la faute du langage mais du programmeur.
mono plateforme (un code C doit être re compiler pour fonctionner sur un autre OS, voir des fois modifié)
Oui, comme tous les langages sans interprêteur. Ce n'est pas un problème propre de ce langage. Mais la force du C est qu'il est normé. Un code standard compilable sur un OS est garanti d'être compilable sur un autre OS sans aucune modification.
Autant aller tout de suite vers du C++
Non. Cela dépend de ce que l'on recherche.
Et si on ne recherche pas forcément les perfs, autant aller vers du Java
Ou autre, le python par exemple :-).
C'est aussi un avantage la gestion de la mémoire puisque le programmeur fait ce qu'il veut. Cela évite d'user du garbage collector qui est gourmand en ressource.
Oui tout à fait, mais il faut être très rigoureux en C. Les fuites mémoires sont légion sinon.
mono plateforme
Oui ça résoud le problème
C++
Se passer de l'objet de nos jours, c'est quand même dommage non ?
Ou autre, le python par exemple :-).
Non pas le Python !!! C'est une usine à problème, langage de script à la rigueur
Mais le C c'est très bien pour les applications embarquées, le temps réel, les jeux vidéos.