Le C peut etre considere si on veut comme un super macro assembleur de
haut niveau, mais seulement si on veut.
Il presente le gros avantage par rapport a tous les langages
a garbage collection d'imposer une discipline de la gestion de memoire.
Ce qui est utile a comprendre meme pour un "pisseur" de C# ou de java
pour eviter des surprises
Quelqu'un qui connaitera bien le C s'adaptera tres rapidement a tous
les languages derive comme C++, java, c#, php, js, json, ..., si il a
des bases d'abstraction et de programation declarative en C.
L'utilisation du C comme super macro assembleur de haut niveau, permet
aussi un rapprochement a la machine interessant dans certain cas.
Le 26/08/2010 17:42, Tzacos a écrit :
Nolwenn Jarossay a écrit :
Le 26 août 2010 16:02, François Poulain<[email protected]
<mailto:[email protected]>> a écrit :
Pourtant, jeune collégien, je n'ai pas eu besoin de maitriser ces
concepts
pour animer ma tortue en logo (et je n'aurait alors pas
nécessairement été
en mesure de les découvrir en profondeur). Donc amha le concept de
« bon
langage » dépendra toujours de chaque situation.
On peut produire tout un tas de chose sans réellement comprendre ce
que l'on fait. Personnellement j'utilise régulièrement les maths sans
vraiment y piger grand chose, intrinsèquement parlant.
Pour enseigner un langage, c'est quand même important de tenter
l'explication, au moins pour essayer d'éveiller la curiosité de
l'élève et d'aller au delà de la simple création de code. De plus
comprendre sa machine peut aider à éviter les fuites de mémoire,
monopolisations du temps machine et autres horreurs que l'on trouve
encore trop souvent.
Les langages bas niveau font la liaison plus facilement, bien sur rien
n'empêche de parler d'architecture matérielle avec du python; et
quelque soit l'âge ( la RAM peut être transformée en un meuble avec
des tiroirs...)
Les notions de fuites mémoires, consommation mémoire, bugs et autre ne
dépendent ni du language, ni de la machine.
Elles dépendent uniquement de la qualité du developpement: de sa
conception à son utilisation, en passant par des règles de codages
respectée, une qualité de l'organisation du code, des tests realisés
(malheureusement souvent passé à l'as pour diverses raisons le plus
souvent commerciales) et de la validation des "spécifications". Autres
raisons aussi de mauvais codage: bah, ma machine a un gros processeur,
une grosse memoire, alors je me fout de la consommation des ressources.
Comportement de plus en plus frequent dans le developpement, qui donne
comme effet de bord une qualité logicielle en constante dégradation
depuis près de 20 ans.
Le langage C est un langage de bas niveau. Qui nécessite une discipline
de codage importante (au regard d'autres langages).
De plus, il ne faut comparer que ce qui est comparable. Python, Perl ne
sont que des langages de scripting au départ, et s'appuient sur des
librairies écrites en... C/C++ la plupart du temps (a confirmer
cependant, je ne suis pas sur, mais en tout cas dans un langage de bas
niveau).
Aujourd'hui les écoles forment plus à "pisser" du code. En tant que chef
d eprojet informatique, j'ai très souvent vu de jeunes diplômés coder
sans penser ni au test ni à la traçabilité par exemple. Encore moins à
la réutilisation du code aussi. Je ne parle pas des commentaires et de
la documentation.
Ce qui fait la qualité de l'enseignement de la programmation, ce st
aussi que l'enseignant sachent ce que veut dire faire du développement
de façon professionnelle, ce qui n 'est pas toujours le cas (encore
qu'il serait pourtant facile de penser qu'avec le temps de plus en plus
d 'enseignant aient eu une carrière préalable ailleurs que dans
l'enseignement).
Il n'y a pas nécessité de connaitre l'architecture d'une machine pour
faire un programme. A l'exception des programme touchant au cœur du
matériel, et notamment la programmation système et/ou des pilotes. Ce
qui est important ce sont les concepts sur lequel repose le langage et
qui en font sa spécificité, et donc son utilité dans le cas d'espèce
pour lequel on veut programmer.
Faire du parsing avec du C c est lourd et nécessite une grosse
programmation, avec Perl c'est très simple. (ce n'est qu'un exemple).
Il n'y a pas de bon ou mauvais langage. Il y a des langages qui ont été
conçus dans une optique précise et un but précis. Donc avant de comparer
des langages, il faut d'abord s'assurer que l'on compare bien des choses
comparables.
Laurent
_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux
_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux