Well, I'm C++ developer with decades of experience yet I still find C++ and Rust syntaxes ugly and Haskell syntax beautiful.
But so what? I still would program things in C++ and hope to switch to Rust while Haskell is something I admire yet couldn't use for my $DAYJOB.
Rust absolutely did the right choice with it's syntax: it's very important practical mimicry. Rust had to had syntax similar to C++ to succeed.
Just accept the fact that Rust syntax, while ugly, is designed to be easy to parse both by compilers and humans. At least Rust functions don't look like this:
void (*signal(int sig, void (*func)(int)))(int);
Can you even tell why this is even a function and not a pointer, at a glance? And yes, that's something from the standard documentation.
Different people are different. For me feeling of ugliness of C, C++, or Rust syntax never goes away. But I learned to appreciate consistency and decidability.
Yes, decidability, damn it! C++ syntax, is, quite literally, undecidable. Means: it's not possible to write a program that would be able to say whether is something is syntactically valid C++ program or not. Neat, isn't it?
And C syntax. Well. What do you think about this:
int coords[3]
Can I put 4 coordinates in that array? No? But what if I zoom out a bit:
void process(int coords[3])
And now it's Ok, right? Who the heck developed this atrocity?
Rust syntax may be ugly, but it's practical, decidable and easy to parse… what else do you need?