> Backwards approach to packaging things without regard to users expectations
Not to mention if we follow your train of thought, when Python 3 becomes the default, and when Python 2.7 is finally dropped, to keep up with your "expectation" we'll need to suddenly stop depending on brewed Python 3, and suddenly make brewed Python 2.7 mandatory. You can still claim expectation broken in that case. Might as well depend on brewed Python 2.7/3 unconditionally to set the right expectations and make future transitions smoother.
> Why does python -m <application> stop working?
I don't have much experience dealing with users of Python-based software, but I doubt many run applications with `python -m`, which is at the very least very cumbersome. setuptools support console scripts that don't exhibit your problem, and I've yet to encounter a reasonably popular Python project with setuptools support that doesn't take advantage of that.
> when you have multiple versions of software installed for different versions of python
A clueless user won't have a setup like that. Such a user already knows how to find out the Python they're using, and use an absolute path or adjust PATH if necessary; otherwise they wouldn't be able to select one of the installed versions in the first place. Moot point.
> My expectation was set by Homebrew. Homebrew broke that expectation.
There was never a promise that Homebrew would never automatically install Python 2.7, as far as I could tell. "Homebrew broke my expectation" can be said about every slightest change. Not a very strong argument.
> Your attempts at false equivalencies are funny. Really. It's not the current code I expect to work, it's the backwards approach to packaging things without regard to users expectations.
Thanks for the attempt to confuse. "Backwards approach to packaging things without regard to users expectations" — that's a different argument which has been addressed above, and what might happen in 2020 has absolutely nothing to do with it. It isn't hard to realize the current `python.rb` and `python3.rb` won't work when Python 3 becomes the default, whenever that happens; and when it does happen, the Python formulae will be adjusted, maybe to `python.rb` and `python2.rb`. "False equivalence"? There was no equivalence, I was simply stating a fact. "If we then `brew install ansible`, we will likely end up with severely broken software unless we're very careful." No. Period.