I have always held the opinion that developers should be able to receive some income from their work (after all, that is what pays my mortgage and my kids' education), but the application should be particularly useful to demand payment. The "particularly useful" bit is of course very subjective and is up to the user to decide. Which leads to basically two options: donation or activation code.