« Discussion:Programmation C » : différence entre les versions

Contenu supprimé Contenu ajouté
Alveric (discussion | contributions)
Aucun résumé des modifications
Tpierron (discussion | contributions)
Ligne 81 :
:Ça a sa place dans le livre, je pense. Mais ça rejoint une question que je me suis posée en repassant sur certains chapitres, et que j'ai amorcée sur la page de discussion de l'introduction: quel est l'objectif de ce livre ? Est-ce un livre "de référence", un livre pour débutants...? Les deux approches sont différentes, un livre de référence explicitant toutes les notions dans le détail une par une, alors qu'un livre pour étudiant propose plus une approche qui mèle "application des concepts de l'algorithmique en C" et "découverte des spécificités du C". Pour le C++, il y a un wikilivre pour les débutants, et un autre de plus haut niveau (enfin, c'est leurs buts, je ne les ai pas encore lus). Peut-être est-ce aussi une idée pour le wikilivre C ?
:En tout cas, je suis pour de tels chapitres dans le wikilivre, dans son état actuel. Par contre, si on se décide à le couper en 2, alors ces chapitres auraient plus leur place dans le wikilivre "programmation C avancée" ou "de référence". [[Utilisateur:Alveric|Alveric]] 21 juin 2006 à 15:55 (CEST)
 
 
Les objectifs de ce livre ? Effectivement, c'est une bonne question. Pour faire court, j'avais dans l'idée de dire ce que le C peut faire, comment il est utilisé dans la plupart des cas et pourquoi il est utilisé comme ça et pas autrement.
 
S'il y a bien quelque chose qui m'exaspère dans une doc, c'est quand les fonctionnalités utilisés dans une minorité de cas, prennent la majorité de l'ouvrage. On est noyé d'informations, et c'est un calvaire sans fin pour avoir un premier programme fonctionnel, car on a l'impression qu'il faut maitriser tout ou rien. En tous les cas, je suis sûr qu'une retranscription plus ou moins littérale de la spec ISO C99 ne serve à quelque chose. C'est imbitable, c'est dogmatique, c'est rebutant, autant filer une notation BNC à ce niveau, comme ça seuls ceux qui savent déjà, sauront mieux.
 
D'un autre coté, il faut aussi éviter de tomber dans l'excès inverse : tout décrire dans les moindres détails, en passant par le moindre transistor de tous les microprocesseurs où le C a pu être porté. On retombe un peu sur le point précédant : on noit d'informations les lecteurs, qui ne concernent qu'une minorité. Bref, il y a des limites à fixer et des prérequis à connaître, dont effectivement il serait bien d'indiquer quelque part.
 
Je pense que si ça n'a pas été fait, c'est surtout parce que l'ouvrage est loin d'être terminé (le sera t-il un jour d'ailleurs ?). Il y a encore pas mal d'améliorations possibles. En vrac, je dirais :
 
- Opérateurs : c'est de loin la partie la plus incomplète. J'avoue que dépendamment des objectifs fixées, elle peut être aussi bien torchée en 1 ou 2 pages, comme en 30. En gros, plus d'exemples, plus de détails sur les opérations binaires (algèbre de boole), la différence avec les opérateurs de comparaisons, ...
 
- Tableaux : l'exemple du tableau statique déclaré en tant que pointeur n'a rien à faire là (bon, c'est moi qui l'ait mis, hein). Trop avancé et assez tordu, nécessite une très bonne compréhension de la gestion de la mémoire en C, qui n'a ne serait-ce qu'été évoqué (pratiquement) nulle part. D'un autre coté, c'est pointu et l'éventuelle partie qui décrira ça, risque d'être imbitable.
 
- Sinon globalement, la partie "bases du langage" pourrait être encore plus pragmatique avec un plus d'exemples (on a des morceaux d'aspects du langage, mais je trouve qu'on a du mal à avoir une vision plus synthétique, plus globale, visions qui sont sensées être décrite plus en détail dans les sections suivamtes).
 
Sinon l'idée d'avoir deux ouvrages, un pour les débutants, l'autre pour ceux qui savent, je trouve ça pas terrible. Dans l'idéal, c'est l'organisation des chapîtres qui devrait aller en complexité croissante, bien qu'en C les différents concepts ont tendance à se chevaucher (pointeurs <=> tableaux <=> chaines de caractères <=> allocations dynamiques <=> ...). L'ordre actuel n'est pas trop mal, plus de détails dans un ou deux chapîtres et une vision plus globale dans le premier (éventuellement une description des objectifs dans l'intro), et on aurait quelque chose de pas mal du tout.
Revenir à la page « Programmation C ».