Aujourd'hui, l'informatique est présente dans tous les domaines de la vie courante, mais à des degrés différents. Il y a pour cela trois grandes raisons :
- les gains (en temps, argent, qualité) que l'informatique peut apporter,
- le prix abordable des matériels,
- la disponibilité de logiciels dans tous les domaines.
Deux domaines sont pleinement exploités :
- les logiciels généraux, vendus en grande série, et donc relativement bon marché,
- les logiciels spécifiques, d'un coût total important
et donc limités à des sujets très pointus, pour de très
grosses industries.
Le domaine intermédiaire, qui peut encore se développer,
concerne les programmes spécifiques, pour des applications de
moindre importance. Pour cela, il est nécessaire de disposer de
langages de programmation. Les tableurs et bases de données par
exemple disposent désormais de véritables langages de
programmation (souvent orientés objets) qui vont plus loin que
les précédents langages de macro-commandes. Pour les autres cas,
le C est souvent le meilleur choix. En effet, c'est
un langage structuré, avec toutes les possibilités des autres
langages structurés. Mais il permet également (avec son extension C++) de gérer
des objets. A l'inverse, il permet également une programmation
proche du langage machine, ce qui est nécessaire pour accéder
aux interfaces entre l'ordinateur et son extérieur. Mais son
principal avantage est que ces trois types de programmation
peuvent être combinés dans un même programme, tout en restant
portable sur tous les ordinateurs existants. Le langage C a néanmoins
deux inconvénients majeurs, c'est d'être un peu plus complexe d'utilisation
(mais uniquement du fait de ses nombreuses possibilités), et d'être
séquentiel, ce qui ne lui permettra pas d'être le langage
optimal pour les machines massivement parallèles (mais aujourd'hui
il n'existe pas encore de langage universel pour ce type de
machines qui puisse combiner efficacement des calculs procéduraux
et du déclaratif).
Ceci est la première partie du livre "Programmation en C, langage et algorithmes", qui est composé de trois parties.
* La première définit le langage C, avec de nombreux exemples directement dans le texte, et certains supplémentaires en annexe.
* La seconde partie traite des structures de données et des algorithmes. Elle n'est pas spécifique, seuls les exemples sont en C, le texte et les algorithmes restent utilisables dans tout langage séquentiel. Les fonctionnalités du C non disponibles dans d'autres langages sont analysées, le méthodes utilisées pour parvenir au même résultat sont précisées (par exemple, gestion d'une liste dynamique à l'aide d'un tableau).
* La troisième partie quand à elle traite des algorithmes d'infographie. Elle est importante du fait de la nécessité du graphisme dans les programmes. Mais elle détaille également, pour ces cas pratiques, les méthodes et moyens utilisés pour optimiser des algorithmes. Une bibliothèque graphique est fournie en annexe.
* Les parties que j'ai prévues, mais pas encore rédigées
: utilisation des objets C++, programmation graphique évennementielle
(Microsoft Windows, X-Windows)