its arcane syntax and tendency to behave in unexpected ways is a massive barrier to entry. you spend way too much time trying to figure out the edge cases to command outputs / errors / what-happens-if-the-output-isn't-as-expected (usually due to error conditions.) scripts need to be reliable and predictable (without fuss!) - especially if you're controlling things with them.