My series on Learning the Yii Framework has been getting plenty of attention, largely, I’m sure, due to the fact that the official Yii documentation references it first, being “best suited for people who just start with MVC and/or Yii programming”. Most of the comments I’m seeing are just complimentary or are asking for assistance in getting something to work. However, I’m getting a few questions along the lines of “Why should I use Yii?” and “Is Yii better than XXX framework?” I guess these are natural questions, but here’s the thing: I’m not a car salesman. I have absolutely no interest in convincing people to buy things. This even goes for my own books, which is the primary basis of my income: I’m not going to try to convince anyone to buy my books. I just don’t have that gene in me. Make no mistake: I would like you to buy my books (multiple copies of each, preferably), but I want you to buy my books because you want to, and because they’re good books, not because I’ve talked you into it. This is true for hiring me to do work. I’ve always had a policy that I wanted companies to hire me again for future work because they want to, not because they have to (tangentially, a hallmark of a good application is that anyone qualified could step in and work with it; I don’t handcuff the client into bringing me back in for any future changes).
I’m thinking about this now because someone just posted a question that included “Can you argue why I should choose Yii for my next project?” And the answer is “No, I can’t. In fact, I won’t even try.” Use Yii or don’t use Yii based upon whatever criteria you use to decide this things. All I’m trying to do in my work is explain how to use Yii, should you want to. And the answers to “Is Yii better than XXX framework?” include “I don’t know (because I haven’t used XXX).” and “Maybe, maybe not.” and “Probably in some ways and probably not in others.”
Yii works for me, for its pretty good documentation, its jQuery support, its auto-code generator, and more. For different reasons, PHP works for me, as does Adobe AIR and Flex and … These are technologies that I’ve found a use for and that appeal to how I think and work. It doesn’t mean that any of them are for everyone, let alone better than X, Y, and Z. So I’m never going to try to convince anyone that this is better than that. What I will do is explain how to use this and probably mention what I like about it. If you prefer that to this, fine. Maybe that’ll give me incentive to check out that, too. On that note, I will suggest that you always consider trying new things, even if you’re happy with what you’ve got. That’s how we learn and how we make progress.