Tantôt tu dis que tu ne veux pas que les débutants commencent avec le C, tantôt tu dis qu'un autre tuto 100% pour débutant rendra le site plus riche..
Je ne veux pas que les débutants commencent par le C, mais c'est mon point de vue. Si tu as un point de vue différent, tu peux le développer en un tuto, et le site sera enrichi puisqu'il proposera différents points de vue sur cette question.
Si tu pensais à des solutions de type calcul multiprécision, ça me paraît plus l’exception que la règle (mais je peux me tromper).
En effet. Mais il y a peu de langages où on se soucie vraiment de la représentation bit à bit des structures de données qu'on manipule, et le C est l'un de ces langages-là. Ça me paraît donc être un cours pertinent pour aborder ces problématiques, que les langages modernes essaient (tant bien que mal) de cacher. Typiquement, les multi-précision sont le type par défaut pour les nombres en Python, et Common Lisp et Scheme essaie de caster en multiprécision lorsqu'un problème est détecté (bien que la détection ne soit pas parfaite).
L'idée qu'il faut retirer de mon message, c'est qu'on apprend pas du C pour le plaisir de faire du C. Si la raison de l'apprentissage est « je dois modifier un code déjà écrit en C », le lecteur n'a pas besoin d'un cours pour débutant total et il y a déjà des tonnes de ressources sur le Web. Ce qui pourrait faire la spécificité de « notre » cours de C, ce serait de parler de toutes les problématiques non-mentionnées dans les cours « débutant total » mais qui font la richesse de la programmation C (même si elles existent ailleurs).
Uknow : en effet, il va y avoir des prérequis, mais ce n'est pas grave ; comme le dit Javier, on pourra toujours renvoyer vers un tuto fictif qui sera écrit plus tard.
Personnellement, Javier, ton plan d'attaque me plaît beaucoup, mais il vaudrait peut-être mieux se mettre d'accord à l'avance sur qui fait quoi. Qu'on ait une vague idée de la liste des concepts traités, et des tutos pré-requis qui vont manquer.
Personnellement, je veux bien essayer de faire un tuto qui montre pas à pas comment réécrire un allocateur mémoire simple (au hasard, first fit). Si je suis toujours motivé, ça pourra évoluer vers des algorithmes plus compliqués (buddy blocks) voire même vers de la garbage collection (en se mettant dans la peau de quelqu'un qui écrit un interpréteur pour un langage de haut niveau). Mes prérequis seront :
- les structures ;
- les pointeurs (sans pointeurs de fonction) ;
- les notions de pile et de tas.
Si un cours de C émerge, je pense pouvoir le transformer au format « TP ». Par contre, je ne commencerai l'écriture qu'entre août et septembre.
Je sais, je sais : ça ne parle pas de langage C directement. Mais c'est le genre de choses qui est tout de même spécifique au langage C (c'est rare d'implémenter un allocateur mémoire dans un autre langage), et ça permet de faire travailler à fond les pointeurs et la mémoire, ça me semble donc être un TP pertinent pour un cours de C.
Ça vous inspire quoi ? Quelqu'un est motivé pour faire un tuto qui présente le fonctionnement de la mémoire en général (registres, caches, RAM, disque, puis pile & tas), puis comment on interagit avec en C (malloc, variables locales, le qualificateur register, puis stdio.h et mmap) qui serait un prérequis de mon TP ?
Autre idée de tuto : un cours général sur les fonctions, version bas niveau. Ce cours s'appuierait sur celui concernant la mémoire, montrerait que le code d'une fonction est stockée en RAM (donc qu'on peut faire des pointeurs de fonctions et expliquerait la notion), que les paramètres sont passés sur la pile (et montrerait l'erreur classique de renvoyer l'adresse d'une variable locale), et que c'est ce mécanisme qui permet d'appeler des fonctions C depuis d'autres langages et réciproquement (avec pourquoi pas un exemple ou un TP).