I've seen a fair number of links pointed towards this post about moving a web application from Rails back to PHP which unfortunately includes a Slashdotting in the mix. The first lesson is there: when Slashdot links to something you've written it is in your own best interest to disable comments because it is highly unlikely that anyone from there has read anything you have written. Ruby On Rails has an outspoken bunch of supporters to say the very least whether those cheerleaders originate from /. or not.
What this article is great for illustrating is that a new framework/language/doohickey is not going to address fundamental design flaws in your initial application. It just isn't and sometimes, as was the case for the author, you're going to discover that there are things about the language you started out in that you're going to miss sorely. More importantly though is that he learned a lot from the failed Rails implementation and had some important realizations:
Rails was an amazing teacher. I loved it’s “do exactly as I say” paint-by-numbers framework that taught me some great guidelines.
I love Ruby for making me really understand OOP. God, Ruby is so beautiful. I love you, Ruby.
But the main reason that any programmer learning any new language thinks the new language is SO much better than the old one is because he’s a better programmer now! You look back at your old ugly PHP code, compared to your new beautiful Ruby code, and think, “God that PHP is ugly!” But don’t forget you wrote that PHP years ago and are unfairly discriminating against it now.
It’s not the language (entirely). It’s you, dude. You’re better now. Give yourself some credit.
I love it when people have revelations like this and start divorcing the tools from the job that needs to be accomplished. If you don't have your entire emotional life tied up in this particular flavor of the month then go have a read. It's good stuff for people who have to make painful design decisions.