Web Frameworks: Which one to learn?

Being in the field of IT (Computer Science), it’s necessary to keep pace with the changing landscape, otherwise you would end up rendering yourself obsolete. It’s no different with web development/programming: The landscape keeps changing, either on the user interface front or the browser side or the website back-end.

As of now, we are moving through the era of web application frameworks. That’s the landscape we are surrounded with. Plenty of frameworks have been built during these years broadly categorized under software frameworks, web application frameworks and JavaScript frameworks (or libraries), and plenty more are being developed.

So better learn one now, before you are rendered obsolete.

I am considering the following frameworks:

image image image image Djangoimage

Read more about the most popular web frameworks that I am considering after the jump.


Which Web Framework to Learn as a Starting Point?

I have been a Drupal developer for over an year now. After working on two projects based on Drupal, one of them being my own site Jhoom and another an upcoming local community-based site, I am now planning to expand my open source development skills further by learning a web framework (‘another framework’ if Drupal is considered as a framework too).

But the question is, which web framework to go for? There are so many of them now! Which one shall one start with?

The Web Frameworks

I am considering the following frameworks, and one lucky framework out of these will have the privilege to be learned by me (before the others)!

Four of them are PHP frameworks – CakePHP, Code Igniter, PRADO and Symfony; while Django is a Python based framework; and lastly Ruby on Rails,which is based on Ruby.

PHP Frameworks

image image image image

Going with a PHP web framework would be relatively easier if, like me, you are experienced with PHP as well. Also, you won’t have to spend your time learning a new language, rather, you will be strengthening your PHP skills further. Knowing PHP already will also give you more time to focus on understanding the concepts behind the terms MVC – Model, View, Controller and Rapid Application Development.

The PHP frameworks that I have short-listed – CakePHP, Code Igniter, PRADO and Symfony – are those that are mostly referred to and have a good community following. I haven’t really researched them thoroughly yet to assess the difference between them (that’s for a later post).

Python and Django

Django

Python was love at first sight for me! If you are comfortable in Java and OOP concepts, Python would be like a thing of beauty. Learning Django would simply help in learning Python more and it will add to the skill set as well.

Ruby on Rails (ROR)

image

Aah the framework (that I thought was a language, and not a framework, until just recently) that owes much of its popularity to its Rapid Application Development (RAD) of AJAX based applications; it was thought of as THE ‘language’ to create AJAXified applications. It has remained true to the hype though and it has sustained its position as a viable alternate web language to the most popular ones – PHP and ASP .NET.

I really want to learn this framework as there is a dearth of Ruby on Rails developer out there. The only issue is that its syntax is much different than any other programming language that I know. But I believe one will be able to adapt to Ruby’s (on Rails’) way of coding, since it is often termed as quite easy to learn and implement.

Ruby on Rails is quite in demand and lots of sites are being built in it. So, even if the learning curve is relatively steeper, one just can’t go wrong by learning ROR; it’s a good investment of your time.

Conclusion

I would love love to go with Ruby on Rails, or Django, for I love learning new stuff, and then there is a dearth of Python and Ruby on Rails out there. But then I am also planning to build a couple of web sites soon, utilizing the web framework I wet my hands in. So going with either ROR or Django would probably take more time, since the learning curve would be relatively steeper than going with a PHP based framework.

But then again, I haven’t yet researched these frameworks in detail. That’s the next step!

Until then, I would like to know what’s your framework of choice? Which one did you learn first? And which one do you find the best to work with? What are your views on the frameworks I have short-listed?


15 thoughts on “Web Frameworks: Which one to learn?

  1. butters

    for php there is also zend framework, 1.6rc just popped out, and my last experience is that more and more companies are looking for an zfexpert…

  2. Pingback: Web Frameworks: Which one to learn? | Tea Break

  3. Pingback: Web Frameworks: Which one to learn? | Tea Break

  4. John McCollum

    Hi, I’ve just started looking at frameworks myself – I found CodeIgniter to be the easiest to learn by far, and it has excellent documentation and tutorials. It really is a joy to use, and I highly recommend it, if you decide to go PHP. :)

  5. JD

    When choosing a framework there are quite a few points to consider. Most have ORMs, templates languages, form helpers, some have authentication/permission management, intl8 support and most suffer in the documentation area. What makes the difference for me is simplicity first, documentation maturity second and feature set stability third. What framework wins out in that regard? Ironically my favorite is Symfony which is probably the most complex. I don’t have a strong loyalty to it and would jump ship if something more intuitive with strong documentation came along.

  6. Yannick

    I’m surprised you didn’t mention the Zend Framework (http://framework.zend.com), that’s another good option. I have used both ZF and CodeIgniter and both are pretty good. ZF (to me at least) had a little bit more of a learning curve than CI. Right now I prefer CI, because it’s easier to get started with, the documentation is great and the community is pretty helpful as well.

    One of the nice things about the ZF that I like is that you can use the individual components with other frameworks or with the code you’ve already written from scratch. So for example you could use the Zend_Auth and Zend_Acl components with CI if you wanted to. Or in a project I did at work, I used the Zend_Db and Zend_Mail components within my existing application code.

    That’s just my 2 cents. I’m sure each has it’s advantages and disadvantages and ultimately, giving a few of them a try and seeing which one works best for you and allows you to work quicker and better, is what matters.

    All the best.

  7. Henning

    My experience and comments are similar to those of Yannick. CI is a snap to get started with. However ZF has really useful components such as Zend_GData. This makes working with the Google Data API very nice (of interest to me, maybe not to you). The other huge plus has already been mentioned here. It is possible to use only individual components in existing projects. I integrated Zend_GData in an existing site and am now in the process replacing my inadequate, home grown ACL with Zend_ACL and Zend_Auth.

    It’s all about what YOU need from a framework, there is no best one.

    Cheers

  8. Michael Wales

    Definitely CodeIgniter – we have an excellent community on the forums and without a doubt the absolute best documentation of any framework (regardless of language).

    Feel free to hop on over and if you needed any help, shoot me an email.

  9. Sasa Bogdanovic

    To add my 2 cents, ideally you would have experience with more than one framework (my preferences being CI and ZF) and understand that there might be situations where one works for you in one kind of projects, and the other one works better in another. Then it would be easy to use what you really need.
    CI is lightweight and also the best performing PHP framework. On the other hand, ZF has modularity, PHPCake is a fully blown framework, making it unappropriate for less complex projects.
    Finally, it is all a matter of your own preference, but in my opinion, CI is the best to start with.

  10. Josh Turmel

    Another PHP framework to consider is Kohana, it was forked from CodeIgnitor sometime ago but it’s development cycle was moved to a strict PHP 5 path, we’ve been using it for 7 months now and love it.

  11. Brendon Kozlowski

    I’m currently developing with CakePHP. I chose it over CI, ZF, Prado (et al) due to its enormously helpful RAD process, especially when using the `bake` script. It does quite a few things for you in terms of development that you wouldn’t have to do otherwise. It is completely “convention over configuration” so that as long as you follow a convention, you’re golden. Situations arise, however, when the business logic you need to follow isn’t conventional. In that regard, I’m beginning to think that I may have been better off with something that didn’t make so many assumptions. I find myself extending classes and overriding functions quite a bit recently, CI or Kohana may have been a better choice (even if I don’t like it as much). Symfony is blazingly fast in comparison when caching is enabled. Its major drawback for me was that I can’t stand PEAR-based installations…at all. I’d think its highly unnecessary today. Regardless, knowing all of these frameworks’ pros and cons, and choosing the right one for the job is probably the best approach. :) For simply CRUD applications and a *very* quick turn-around, I’d strongly suggest Cake, but use jQuery instead of the prototype-powered Ajax helper.

  12. Sawant Post author

    Thank you for your great input everyone! Since it has been suggested by many, I am considering Zend Framework as well.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>