The problem lies in commercial companies not making free software. But since they don't, what you're left with is non-commercial free software, which in practice is worse than the alternative. Free software is broken, and you can fix it. Commercial software works, but you can't fix it.