Ada's syntax makes differentiating variables/arrays from functions unnecessarily difficult. This is because parentheses are used for both function calls and array accesses. And function calls without parameters do not require parentheses at all.
Lets play a game. See if you can figure out which is a variable, array, or function.
A := B;
C := D;
E := F(G);
H := I(J);
A, B, C, E, H, and J are variables. F is an array. D, G, and I are functions.The only way to really tell what's what in many cases is to look up definitions. That would be fine... except there is very little competition for Ada IDEs. I use AdaCore's GNAT Pro Studio (GPS), but the interface is clunky and often very slow compared to modern JetBrains IDEs.
This syntax issue is a constant frustration and it's something which could have very easily been avoided.