Sim e não.
Existem alguns aspectos diferentes da sintaxe.
- legibilidade
- expressividade
- parsability
A legibilidade já foi mencionada.
Expressividade é um caso interessante. Vou usar a passagem de função como exemplo, porque é uma espécie de ponto de inflexão de dor semântica / sintática.
Vamos pegar C ++, por exemplo. Eu posso criar uma função de primeira ordem desta maneira:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
Esse idioma específico é comumente usado nos Elementos de Programação de Stepanov .
Por outro lado, posso imitá-lo no Common Lisp com algo como isto :
(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 C ++ contenha alguns metadados de tipo. Qual idioma expressa a idéia de passar melhor uma função de ordem superior? Lisp comum mal faz uma variação sintática. O C ++ exige que uma classe seja criada apenas para 'transportar' a função. Perl é bastante direto em fazer algum nível de diferenciação. O mesmo acontece com o Python.
Qual abordagem melhor se adequa 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'?
Parsability é - 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. Idiomas delimitados por token tendem a analisar bem - ruby / c / pascal, etc.
Considere, no entanto, que todos os tipos de sistemas foram criados com todos os idiomas sérios para resolver problemas do mundo real. Embora a sintaxe seja uma barreira para expressar algumas coisas, é uma barreira que pode ser contornada. Equivalência de Turing e tudo isso.