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.