Le but de la programmation n'est pas seulement de faire des programmes qui marchent. Ils doivent également être lisibles, faciles à mettre à jour et plus concis.
C'est essentiellement à cela que servent les sous-programmes.
Ecrire du code à l'aide de sous-programme est donc avant tout une manière de programmer : au lieu de concevoir un programme en un seul bloc, on le découpe en plusieurs parties aussi indépendantes que possibles. Chacune de ces parties porte un nom: ce sont les sous-programmes.
Bien entendu, cette manière de programmer n'est pas obligatoire. On peut très bien programmer sans jamais écrire de sous-programmes, mais cela donne des programmes très longs, peu lisibles et difficiles à mettre à jour.
Par analogie, on pourrait comparer ceci au découpage d'une entreprise en plusieurs services. Chaque service ayant un rôle particulier à jouer dans l'entreprise. De même, on peut concevoir un programme en plusieurs sous-programmes réalisant chacun un traitement particulier.
Le PC est une autre analogie intéressante. Dans un PC chaque partie est facilement remplacable par une autre: vous pouvez remplacer l'écran par un autre écran, la carte son par une autre carte son, le clavier par un autre clavier, etc ... Cette possiblité de remplacer chaque partie par une autre partie compatible est possible grâce à la conception modulaire du PC.
De même,un programme concu par assemblage de sous-programmes, est plus facile à mettre à jour car un sous-programme peut être remplacé par un sous-programme équivalent (c'est à dire réalisant le même traitement) sans perturber l'ensemble du programme.
Cette manière de programmer s'appelle programmation modulaire.
Dans ce cours, nous nous placons dès le départ dans le contexte de la programmation évènementielle. Notre objectif est de réaliser des applications avec interface graphique. Nous avons vu dans le premier cours, que de telles applications doivent nécessairement pouvoir gèrer des évènements et donc contenir des gestionnaires d'évènement ou autrement dit des procédures évènementielles.
Avant l'apparition des interfaces graphiques et de la programmation évènementielle, il n'existait que des sous-programmes non-évènementiels.
Aujourd'hui, il faut distinguer deux catégories de sous-programmes: les sous-programmes évènementiels et les sous-programmes non évènementiels.
Les sous-programmes évènementiels sont les procédures évènementielles que nous avons déjà rencontrées dans le premier cours. Par contre nous n'avons pas encore parlé des sous-programmes non évènementiels.
En fait, tout ce que nous avons dit dans le paragraphe précédent ne concerne que les sous-programmes non évènementiels. Vous ne faite pas de programmation modulaire lorsque vous n'écrivez que des procédures évènementielles.
Dans cette introduction aux sous-programmes, nous allons tout d'abord revenir sur les procédures évènementielles. Ensuite nous introduirons les sous-programmes non-évènementiels en partant d'un exemple, qui nous permettra de mettre en évidence les différences fondamentales entre les sous-programmes évènementiels et non évènementiels.