Sim e não.
Existem alguns aspectos diferentes da sintaxe.
- legibilidade
- expressividade
- capacidade de análise
A legibilidade já foi mencionada.
Expressividade é um caso interessante. Eu vou usar a função de passagem como um exemplo, porque é uma espécie de ponto de inflexão da dor semântica / sintática.
Vamos pegar o C ++ por exemplo. Eu posso criar uma função de primeira ordem depois desta forma:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
Esse idioma em particular é comumente usado nos Elementos de programação de Stepanov .
Por outro lado, eu posso imitá-lo no Common Lisp com algo como este :
(defun myfunc() )
(defun run_func(fun)
(fun))
Ou, em Perl -
sub myfunc
{
}
sub run_func
{
my $func = shift;
$func->(); #syntax may be a little off.
}
Ou, em Python -
def myfunc():
pass
def run_func(f):
f()
Todos eles têm - essencialmente - o mesmo conteúdo semântico, embora o exemplo de C ++ possua alguns metadados de tipo. Qual idioma expressa melhor a idéia de passar uma função de ordem superior? Common Lisp mal faz uma variação sintática. C ++ requer que uma classe seja criada apenas para "transportar" a função. Perl é bastante simples sobre como fazer algum nível de diferenciação. Então é o Python.
Qual abordagem é mais adequada ao domínio do problema? Qual abordagem melhor pode expressar os pensamentos em sua cabeça com o mínimo de "incompatibilidade de impedância"?
A capacidade de compreensão é - na minha opinião - um grande negócio. Em particular, refiro-me à capacidade do IDE de analisar e cortar a linguagem sem cometer erros. Reformatar é útil. Línguas delimitadas por tokens tendem a analisar bem - ruby / c / pascal, etc.
Considere, porém, que grandes sistemas de todos os tipos foram criados com cada linguagem séria para resolver problemas do mundo real. Embora a sintaxe seja uma barreira para expressar algumas coisas, é uma barreira capaz de contornar o trabalho. Equivalência de Turing e tudo isso.