I spent a couple of hours last weekend going over a Rails app I wrote almost two years ago. It was the very first Rails application I had written (apart from the follow-the-screencast throwaway ones) and I couldn’t help cringing when I saw the code I got paid good money to write.
That app is still my most ambitious project ever and I’m still shocked I decided to do it in Ruby (a language I barely knew) and Rails (after playing with it for a few weeks) when I had a couple of years experience in PHP and some production apps already running on CodeIgniter. I guess it was the hype.
However, almost two years later and the app is still running smoothly (I had to tweak it a bit over the weekend). I am still not sure I would have taken on the project – an internal stock trading app with a social angle to it (I was freelancing then and working alone) if I had to do it PHP but in retrospect it would probably have been done better in PHP. I’d have had less fun though.
Rails is so deceptively simple it makes you feel you’re a superstar programmer even when you just have a couple of lines of code under your belt. However, after working with it for a while, you start to appreciate how complex it is to get things done when they don’t fall into the Ruby on Rails sweet spot. I wouldn’t have it any other way though. When it rocks, it really rocks.
I currently use PHP (and the Zend Framework) at work and I have come to appreciate the flexibility of ZF but I wouldn’t recommend the framework for programming beginners. Using a lot of the components requires a good grasp of programming concepts and compared to Rails where components are written for specific use cases, with ZF, you have to come up with yours. I am currently still trying to figure out where I can use Zend_Navigation in the recently released version of ZF. I know it will come in useful but I just have to tweak and flesh it out to make it work for me and that pretty much sums up the ZF-Rails differences quite well. One makes you think you can without even trying while with the other, you know you can but you’ll just have to work at it.
No related posts.
Nice post m8, I tend to agree with you here, after playing around with Rails for a while I found it very easy to pick up but a pain to use for my own projects, i.e. projects with no DB’s
Though I spent a bit of time cursing ZF, i’ve come to appreciate it a lot more over time, especially when working on personal projects. ZF’s still has a long way to go but they seem to be on track in general.
IMO if you want to throw a basic system together, which has the generic functionality (DB,Auth, etc) i’d use Rails, if you need to fully customise the system (multi-tier, no DB, etc) ZF is a lot more flexible in this regard.
I’d love to create a decent Rails app one day, I just can’t justify doing so atm, ZF seems to deal with my requirements pretty damn nicely.
hello,
i found your blog while searching for two step views with codeigniter and, while i was reading another post of yours (“zend framework – my three month review”) i noticed you too don’t like to do your validations on the controller. i wonder what work around on codeigniter you did to move your validations to the model?
would it be possible for you to share with us?
thanks and nice blog.
I tried zf one or two years ago. And it was shit imho. Slow, complex, few tutorials. Then I tried ror. I coded with it for one year. The biggest problem for me was not really the “performance”, the biggest annoying thing was: The code tests. If you start the tests. You could out and drink a cup of coffee. Too slow for me
Then I tried CI. It was nice. All you need. But extending but was a bit of hazzle. ( Same problem as ror )
The I found Yii. It is so far the best framework I could find out there. It is fast, easy, close to ror. But not too close. And most important thing: Easy to extend. I wrote some extensions in it. In just a few minutes. ( After using it just a few weeks ) Another thing which is cool: It uses lazy loading everywhere! So unused components, extensions, models and so on are not loeded until they are needed.
A funny thing is: RoR is so easy, and has such a clean structure on classes and “how you do things”. That I sometimes still think in this “RoR” way, how to do things
http://www.yiiframework.com