While perusing my Slasdot feed, I ran across a great article on the ongoing Rails vs. PHP war. I agree with pretty much everything he says except I don’t like how he compares Rails vs. PHP. PHP is just a language, Rails is a framework.
Although I am a fairly young web developer, there is one repeating theme I have learned: not one framework can fit all the needs of a complex web application. For simple applications, frameworks like Rails, CakePHP, ASP.NET, etc. may fit your needs. But at the end of the day, its better to develop than adapt. The more you adapt to a framework, the more your application loses fluidity.
I have learned to focus on tools rather than frameworks. ActiveRecord implementations are great tools. Templating engines are great tools. A framework is a collection of all the tools someone else thinks you need. To create a great web application, I believe the developer needs to be in control, not the framework.
That’s just my 2 cents.