and always, always, always, you are at the mercy of the program author.

Not if it is open source, and you're willing to put some effort into it. When I write code I like to think of it more as using a computer effectively instead of programming.