The hardest for most developers to understand is that you have more choices than just those two. Sure, they are the simplest and most straightforward, but there are many many other business models to choose from.