[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Programmation Langage C



Yves Rutschle wrote:
P.S: Par contre je n'ai pas compris ce qu'il y avait de choquant à apprendre le C avant le java, le python ou le perl etc... ???
Si quelqu'un peut m'expliquer?!

Quand on apprend à programmer, les difficultés les plus importantes sont les découpages en algorithmes, en fonctions etc.

En C, tu ajoutes un tas de difficulités liées au matériel (ou du moins à l'implémentation très bas niveau): on peut additionner 2 nombres positifs, et avoir un résultat négatif; on peut adresser un tableau n'importe comment et arriver n'importe où en mémoire; il faut des pointeurs (avec une syntaxe pas évidente) pour faire un tas de choses, etc. Et on ne parle même pas de la gestion de la mémoire, où tout est fait à la main.

Ces difficultés n'apparaissent pas dans des langages de plus haut niveau, où un nombre est un nombre, où l'on aggrandit les tableaux comme il faut etc, tout ça automatiquement

Y.



Ce que je voulais dire, c'est qu'à mes yeux, les autres langages de programmation (enfin beaucoup, pas tous) s'inspirent du C pour en proposer des améliorations ou rajouter des spécificités particulières.

Par exemple, le C++ dérive du C, le java du C++ (donc du C), etc...

Le C me semble donc être un langage qui permet d'avoir plus rapidement les bases des autres langages. (Je pense qu'on pourrait le qualifier de "latin" de l'informatique).

En ce sens, il me semble plus pratique de commencer par le C.

De même, le C nous force souvent à coder à la main ce que d'autres langages peuvent faire directement via une fonction. Pour certains c'est surement un inconvenient, mais personnelement je trouve ça bien plus instructif de devoir recoder les fonctions dont je vais me servir.

Conclusion: Le C, un langage difficile et avec des défauts certe, mais instructif. De plus c'est un langage qui permet de faire le liens entre des langages de bas-niveau comme l'assembleur et d'autres langages de plus haut niveau.



Reply to: