Oui et non.
La syntaxe comporte deux aspects différents.
- lisibilité
- expressivité
- analysabilité
La lisibilité a déjà été mentionnée.
L'expressivité est un cas intéressant. Je vais utiliser le passage de fonction à titre d'exemple, parce que c'est en quelque sorte un point d'inflexion de douleur sémantique / syntaxique.
Prenons C ++ par exemple. Je peux créer une fonction de premier ordre de cette façon:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
Cet idiome particulier est couramment utilisé dans les éléments de programmation de Stepanov .
D'autre part, je peux l'imiter dans Common Lisp avec quelque chose comme ceci :
(defun myfunc() )
(defun run_func(fun)
(fun))
Ou, en Perl -
sub myfunc
{
}
sub run_func
{
my $func = shift;
$func->(); #syntax may be a little off.
}
Ou, en Python -
def myfunc():
pass
def run_func(f):
f()
Celles-ci ont toutes - essentiellement - le même contenu sémantique, bien que l'exemple C ++ comporte des métadonnées de type. Quelle langue exprime l'idée de passer au mieux une fonction d'ordre supérieur? Common Lisp fait à peine une variation syntaxique. C ++ nécessite la création d'une classe simplement pour "porter" la fonction. Perl est assez simple en ce qui concerne la différenciation. Python aussi.
Quelle approche convient le mieux au domaine problématique? Quelle approche peut le mieux exprimer les pensées dans votre tête avec le moins de "décalage d'impédance"?
La paralysie est - dans mon esprit - un gros problème. En particulier, je fais référence à la capacité de l'EDI à analyser et à découper le langage sans commettre d'erreur. Le reformatage est utile. Les langues délimitées par des jetons ont tendance à bien analyser - ruby / c / pascal, etc.
Cependant, considérez que de grands systèmes de toutes sortes ont été créés avec tous les langages sérieux pour résoudre les problèmes du monde réel. Bien que la syntaxe soit un obstacle à l’expression de certaines choses, c’est un obstacle qui peut être contourné. L'équivalence de Turing et tout ça.