Il s'agit d'un principe philosophique bien plus ancien que cette citation. On le retrouve généralement sous le terme «
rasoir d'Occam ».
Pour ce qui est du rapport avec le sujet de la discussion, l'un des reproches que je peux faire à tous les langages dérivés de simula et qui lui sont restés proches en terme de syntaxe, comme pascal, modula-2, ada, oberon et autres, c'est leur persistance à continuer a utiliser des mots clefs qui pourraient être supprimés ou remplacés par une ponctuation moins intrusive.
Je parle des mots réservés comme FUNCTION, PROCEDURE, THEN, BEGIN, END, LOOP, END IF, END LOOP, etc.
Pourquoi écrire:
1 2 3 4
|
BEGIN
faireQuelqueChose();
END |
au lieu de
1 2 3 4
|
{
faireQuelqueChose();
} |
D'ailleurs, javascript puis go l'ont bien compris et sont allés plus loin en supprimant le point virgule là où il n'avait pas d'utilité:
1 2 3 4
|
{
faireQuelqueChose()
} |
Un autre exemple, peut-être qu'un client comprendra mieux la procédure suivante :
1 2 3 4 5 6 7 8 9 10
|
PROCEDURE WhileExample IS
A:Integer;
BEGIN
A := 0;
WHILE A < 10 LOOP
someFunction(A);
A := A + 1;
END LOOP;
END WhileExample; |
plutôt que:
1 2 3 4 5 6 7
|
WhileSamples() {
int a=0;
while (a < 10) {
someFunction(a++);
}
} |
ou la variante en go qui va plus loin dans l'élagage en supprimant les points-virgules finals, le typage quand il peut être implicite, unifie for et while et supprime des parenthèses inutiles de la condition:
1 2 3 4 5 6
| func WhileSamples() {
a:=0
for a < 10 {
someFunction(a++)
}
} |
L'abondance de mot clefs inutiles des langages de la première famille me donne des boutons...
[/code]
Partager