Ce document vous permet de survoler quelques extraits du livre.
Les chapitres contenant des extraits en libre accès sont marqués avec les caractères §§ accolés au titre (les autres chapitres n’ont que leur titre mais pas de contenu).
Les représentations symboliques transcrivent l’observation, l’exploration et le questionnement des objets et de la réalité du monde. |
||
-- Programme de l'Education Nationale |
Ce livre est destiné à des personnes voulant comprendre les enjeux de la programmation en informatique.
Ce peut être parce qu’elles veulent ensuite apprendre un langage de programmation, ou que leur métier les mettra au contact de programmeurs, ou qu’elles programment déjà mais veulent revenir sur les principes fondamentaux de leur pratique, ou encore parce qu’elles estiment que c’est un complément naturel à leur culture.
Le point essentiel de ce document est d’expliquer le pourquoi des différentes techniques qui sont proposées. Il existe des pratiques de la programmation très différentes, il existe aussi des langages de programmation qui proposent des modes d’approche très différents. Il est possible que le choix d’un langage résulte de circonstances que nous ne contrôlons pas complètement, mais si le programmeur se fixe des objectifs ambitieux de qualité du code tels qu’ils sont décrits ici alors nous espérons que ce livre aura été d’un apport précieux.
Les principes exposés ici s’articulent autour d’un concept central que nous appelerons le "contrat"
Quand on écrit du code on utilise des codes écrits par d’autres et d’autres (nous l’espérons) utiliserons nos codes.
On a un "contrat" entre un programmeur "réalisant" (qui a écrit un code) et un programmeur "appelant" (qui utilise ce code).
La programmation est une activité éminemment sociale: même le programmeur le plus solitaire et travaillant la nuit en se nourrissant de pizzas se doit quand même d’interagir avec d’autres programmeurs.
Il y a donc échange et les termes de cet échange sont importants: que peut-on faire avec un code donné? (et que ne peut-on pas faire!) Ce "contrat" doit être bien déterminé, testé et documenté pour que les agencements résultants aient un comportement raisonnable!
Ces principes se retrouvent dans la notion de type: grosso-modo on définit quelque chose par ses propriétés. (On notera que cette approche s’introduit de plus en plus dans les théories mathématiques)
On ne trouvera pas ici d’exposé théorique autour de ces concepts mais nous espérons que chacune des explications apportées éclairera petit à petit différentes facettes des grands thèmes de réflexion sur la programmation.
Vous trouverez ici quelques recommandations fortes concernant les techniques de programmation. Comme toujours rien n’est absolu: rien ne vous empêche de réfléchir pour voir jusqu’où il est pertinent d’appliquer ces règles.
N’oubliez pas: la programmation est un art! Nous espérons qu’il vous plaira et que vous vous formerez ensuite pour bien stimuler votre réflexion et votre pratique.
Une des difficultés de cet exposé est d'équilibrer la théorie et la pratique. Comme vous serez amené (nous l’espérons) à vous intéresser à un langage particulier nous avons pris l’option de vous faire utiliser un langage qui a des caractéristiques suffisantes pour un apprentissage simple des principes fondamentaux: le langage Groovy. Il y a toutefois peu de chances que ce soit votre langage de prédilection lorsque vous serez au contact d’un langage de programmation, mais ce n’est pas un handicap.
(Remarque complémentaire: Groovy
offre plus de facilités qu’exposé ici -en particulier au niveau syntaxique-
mais notre objectif est de faire une présentation générale qui ne fasse pas appel à trop de particularités de ce langage).
Pour simplifier l’exposé nous n’avons pas hésité à indiquer des liens vers des sujets traités en détail par wikipedia
(si vous lisez ce texte dans un format électronique les liens sont actifs!). Dans quelques cas particuliers
vous trouverez quelques courts extraits de ressources sur le web recopiées directement dans le texte (c’est le cas par exemple
dans les annexes décrivant les langages de programmation) -à part ces citations le reste du texte est © Bernard AMADE-
Le lecteur peut donc réaliser des exercices soit avec une installation standard de Groovy
(décrite un peu plus loin) soit avec avec une bibliothèque de codes associée à cet ouvrage.
Les ressources concernant cette bibliothèque Scrountch
(codes exécutables et documentation) se trouvent
sur le site WEB de l'éditeur du présent ouvrage.
Quelques utilisations de scrountch
:
Cette bibliothèque scrountch
pourra être utilisée par le lecteur de deux manières:
Le livre comporte plusieurs parties correspondant à des phases d’apprentissage très différentes: