Yes and no.
There are a couple different aspects to syntax.
- readability
- expressivity
- parsability
Readability has already been mentioned.
Expressivity is an interesting case. I'm going to use function-passing as an example, because it's sort of an inflection point of semantic/syntactic pain.
Let's take C++ for example. I can create a first-order function after this fashion:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
This particular idiom is commonly used in Stepanov's Elements of Programming.
On the other hand, I can mimic it in Common Lisp with something like this:
(defun myfunc() )
(defun run_func(fun)
(fun))
Or, in Perl -
sub myfunc
{
}
sub run_func
{
my $func = shift;
$func->(); #syntax may be a little off.
}
Or, in Python -
def myfunc():
pass
def run_func(f):
f()
These all have - essentially - the same semantic content, although the C++ example carries some type metadata. Which language expresses the idea of passing a higher-order function the best? Common Lisp barely makes a syntactical variation. C++ requires a class to be created just to 'carry' the function. Perl is pretty straightforward about making some level of differentiation. So is Python.
Which approach best suits the problem domain? Which approach best can express the thoughts in your head with the least 'impedance mismatch'?
Parsability is - in my mind- a big deal. In particular, I refer to the ability of the IDE to parse and chop the language without making errors. Reformatting is useful. Token-delimited languages tend to parse well - ruby/c/pascal, etc.
Consider though - major systems of all sorts have been created with every serious language to solve real-world issues. Although syntax is a barrier to express some things, it is a work-around-able barrier. Turing equivalence and all that.