Frameworks Round-Up: When To Use, How To Choose?


Software frameworks provide developers with powerful tools to develop more flexible and less error-prone applications in a more effective way. Software frameworks often help expedite the development process by providing necessary functionality “out of the box”. Such things include user/role management, data access, caching, and much more. These frameworks aid in helping you focus on the more important details of design and even project management by alleviating the need to reinvent the wheel for common development needs.

There are frameworks that cover specific areas of application development such as JavaScript/CSS frameworks that target the presentation (view) layer of the application, and there are others that handle more of the dynamic aspects of the application. Some include both!

In the following we present an overview of most popular web application frameworks; we cover both server-side (PHP, Java, C#, Ruby) and client-side approaches (JavaScript, CSS).

You can also take a look at

Before diving in, it’s necessary to first grasp the idea behind one of the fundamental concepts for web-applications. In the context of frameworks the model-view-controller architecture is particularly important, as this model is typical for most web-applications and is the definitive approach to choose once developing a new web-project.

Model-View-Controller (MVC) Architecture

CodeIgniter has probably the best definition3 of each the model, view, and controller.

MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.

  • The Model represents your data structures. Typically your model classes will contain functions that help you retrieve, insert, and update information in your your database.
  • The View is the information that is being presented to a user.
  • The Controller serves as an intermediary between the Model, the View, and any other resources needed to process the HTTP request and generate a web page.

Model-View-Controller Architecture Explained4
The Model-View-Controller Architecture5.

There is also the Model-View-Presenter6 (MVP) model, and also the N-Tier Architecture7 approach amongst others. The difference between MVC and MVP in particular revolve around how data is passed from the model back to the view. In MVC it goes from the model to the view while MVP goes back through the presenter when handing data back to the view.


  • CakePHP8 is a PHP framework that works on the MVC architecture and offers caching, application scaffolding, validation of model data and even a presentation API. One of the most popular PHP frameworks.


  • CodeIgniter10 is a PHP framework that also uses the MVC platform, has classes for data access, e-mail, FTP, and XML-RPC. Also, CodeIgniter has an exciting community and thorough documentation to get you started.


  • The Zend Framework12 is the self-proclaimed “leading open-source PHP framework.” Services included in the API include Ajax (JSON), search, syndication, web services, and a fully object oriented PHP class library.


Further PHP Frameworks

  • Symfony14 – A feature packed framework, but has a reputation for being server-intensive.
  • Prado15 – A component framework for PHP5 that has similar event based web apps similar to ASP.NET.
  • BareBones16 – a one-file, no-configuration, MVC framework for PHP5.


  • Spring Framework17 is a MVC Java framework that can run on any J2EE server. The framework has a multi-layered architecture with an extensive API and supporting documentation.

    Spring Framework18

  • The Google Web Toolkit19 comes from the granddaddy of all Java development shops-Google. They have released their framework as open-source software. Functionality includes extensive interaction with Ajax, and you can simply write your front end in Java and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML. Also includes interaction with the newly released Google Gears for creating applications available offline.

    Google Web Kit20

  • Apache Cocoon framework21 is a Java framework built around the concepts of separation of concerns and component-based development. There is a strong emphasis on working with XML and serializing into other portable formats.

    Apache Cocoon22

Further Java Frameworks

  • Aranea23 – a MVC framework that includes a web integration layer.
  • AppFuse24 – a framework that is a self-described “project skeleton” similar to new projects created in an IDE.


  • The .NET Framework25 is an application framework taking application development by storm with its impressive collection of functionality. The great thing about the .NET framework is that you can build it around the MVC framework if you wish (there is an official Microsoft implementation coming out), or you can create your own architecture.

    The .NET framework is available out of the box for C# and Visual Basic, but there are extensions available to allow languages like PHP to access and utilize the framework. Look out for some new features including the Windows Workflow Foundation26 for building powerful business solutions and Silverlight 27which is set up to be a direct competitor to Flash.


  • MonoRail29 is a MVC framework where the controllers handle solely application flow, the models represent the data, and the view is just about presentation logic. If your project depends too much on third party Web controls or if your IT team skill set is totally centered around WebForms, MonoRail would not be a good choice.



  • Ruby on Rails31 has taken the programming world by storm by popularizing the MVC approach to application development. The framework came out the work of 37Signals 32on their popular Basecamp 33application. There is also a great emphasis on agile development to “release early and release often.


Further Ruby Frameworks

  • Nitro35 – a Ruby framework, but at the current time it lacks substantial documentation for their API.
  • Camping36 is a micro-framework weighing 4Kb.
  • Ramaze37 has principles on keeping things simple, modular design, and minimal dependencies with an impressive source browser for documentation.


  • Gluon38 comes from the billows of DePaul University designed for agile development and secure database-driven web-based applications.
  • Django39 is the ever popular Python framework that has an impressive template system, caching, dynamic database access API, and more. Many high-profile sites use it including The Washington Post40 and Pownce41.


  • TurboGears43 is a framework that includes a templating system, access the database with obscuring the database, and it uses MochiKit6244 to provide a JavaScript API.

    Turbo Gears45

Client-Side Frameworks

Client-side frameworks are frameworks that specifically target the user interface/view/presentation layer. Recently both JavaScript and CSS frameworks have started to enter the mainstream.

While these frameworks might provide the Ajax-functionality, they are not meant to actually complete the data transaction and manipulation. A client-side framework is usually a smaller subset in a larger application framework.


  • Prototype46 is a JavaScript framework that serves as a foundation for other JavaScript frameworks. Don’t be fooled however, as Prototype can stand on its own.


  • script.aculo.us48 is built on the Prototype framework and has found its way into many high-profile sites including Digg49, Apple50, and Basecamp51. The documentation is clear, and has an easy learning curve. However, compared to other JavaScript frameworks it is larger in size.


  • Mootools53 is a compact, modular, object-oriented JavaScript framework with impressive effects and Ajax handling. The framework is for advanced users as the learning curve is rather steep.


  • jQuery55 continues to rise in popularity due to its extensive API and active development. jQuery is a great balance of complexity and functionality.


  • For ASP.NET developers you can’t beat the ASP.NET AJAX57 framework which is built into the .NET Framework as of 3.5, but you can also download it for previous versions. The amount of documentation, examples, and community continues to increase. There are controls that you can simply drag-and-drop an update panel on an ASPX page and process Ajax!


Further JavaScript Frameworks

  • The Yahoo! User Interface Library59 – Yahoo! released its impressed JavaScript library with incredible amounts of documentation.
  • Ext JS60 – Originally built as an add-on to the YUI it can now extend Prototype and jQuery. Includes an impress interface.
  • Dojo61 is a small library focused on interpreter independence and small core size.
  • MochiKit6244 – A framework that has focus on scripting language standards including ECMAScript63 and the W3C DOM64.


CSS frameworks have grown in popularity recently, but there are many developers [ 165, 266 ] who do not think it is an ideal solution for presentation design but not without a rebuttal67.

Considerations When Choosing

There are a couple of things to keep in mind when choosing a framework.

  • Pick a framework that has extensive and accurate documentation. It is invaluable as you attempt to implement the technology.
  • The framework should provide just that — a framework — that can fit your particular design methodology.
  • Be sure to ask other developers about their experiences with frameworks in your chosen programming language.
  • The larger the community the larger the odds that you will be able to find help when you need it, and it will continue to be improved and developed.

↑ Back to topShare on Twitter

Chris Poteet is a WordPress/Web Designer consultant specializing in user interface, accessibility, usability, web standards, and content management. His main site is

  1. 1

    People, reading this, might be asking: “Why, oh why….is there XY not to be found”.
    I, reading this, am asking: “Why are there Riot and Django not to be found?” Those are the things with brains that came to my mind…

  2. 2

    Oh, Django is already there…

  3. 3

    @Tim: I did inlclude Django.

  4. 4

    And what about Adobe Flex framework ?! … this is a big missing part of this article in my opinion ;)

  5. 5

    re: the def of model-view-controller architecture – MVC doesn’t just apply to PHP scripting; it is a type of program/software structure.

  6. 6

    Kohana framework is a newer framework that is a PHP5 fork of CodeIgniter (PHP4). If anyone is interested in CI you should check out Kohana too.

    Dom Assistant is another lightweight JavaScript framework worth noting.

  7. 7

    Thanks for the article. Looks like a few on there I have never heard of.

  8. 8

    GWT rocks !! I used it on doTemplate. Web developer with (few) Java language knowledge should at least try it. Try also GWT-Ext framework, for great looking desktop-like applications.

  9. 9

    Where’s Perl eh ;)?

  10. 10

    The link to Spring Framework is wrong. The correct one is to

  11. 11

    Great list and very thorough. The “Wikipedia comparison” link is really helpful too. What about Grails, shouldn’t that be listed too? Maybe it’s too soon? Here’s a URL – for convenience… Thanks.

  12. 12

    The Akelos PHP framework looks quite interesting too – a pretty-much direct port of Rails to PHP.

  13. 13

    “MVC doesn’t just apply to PHP scripting; it is a type of program/software structure.”

    I disagree; PHP applications have become quite sophisticated since the language’s inception. Developing a large, complex application in PHP without layered MVC (or similar) sepearation is a quick way to get unmaintainable code. I would say this is especially true of PHP, since it’s error reporting and flow of control is typically very difficult to track in comparison to some of the heavyweight application languages out there (Java, I’m lookin’ at you).

  14. 14

    Sebastián Romano

    January 4, 2008 8:22 am

    I think that symfony is better than cake for great applications, have proven cakephp and believe that they must improve much the documentation to fight with symfony.

    Also I believe that the server consumption can be lowered to much loading the necessary classes, reason why the speed can be extended improving the configuration.

    Sebastián Romano

  15. 15

    I suggest that Stripes ( deserves a mention. It’s an excellent Java framework that follows the philosophy of convention over configuration. The API is fun, easy to get up and running, and it slots in nicely with other technologies.

  16. 16

    @ Nick Husher

    There’s not much to ‘disagree’ in “MVC doesn’t just apply to PHP scripting; it is a type of program/software structure.” Did you miss “just”? MVC applies whenever it makes sense to separate data and how it’s presented, typically GUI apps but it works just as well for websites and even commandline apps, regardless of the language. AFAIK it’s originally from SmallTalk.

  17. 17

    ..and one more thing… :D

    My friend Quiltro development ORIGO CSS , take a look !!

  18. 18

    Nicolás Sanguinetti

    January 4, 2008 9:14 am

    And don’t forget Merb

  19. 19

    There’s no such thing as Symphony. Framework name is symfony
    Symfony should be on first place, becouse it’s most complex framework for PHP.

    I should remember that Zend Frammework is not a real framework. This is just a pack of classes.

  20. 20

    You forgot about one popular and very powerful Python framework: Pylons [ ]

  21. 21

    Harald aka digitarald

    January 4, 2008 9:59 am

    Nice to see my favourite MooTools framework here, I get so many feedback from coders, designers and big companies loving it. I also get a lot of feedback for Agavi, the best enterprise framework, based on PHP5, with a very professional community.

    And one typo … Its the Symfony framework, not Symphony.

  22. 22

    I’m agree with @Michał Mech ! Symfony(not Symphony!) is a perfect framework in PHP that supports MVC.It was better if you put it on the first ranking! anyway, good review!

  23. 23

    +1 for including Grails as either a Java framework or a Groovy one.

  24. 24

    CAKE PHP is a ROCK :D, but i use CI too :)

  25. 25

    Hi, in my honest opinion no one should consider this inputs (specially the downside ones) as the truth.
    There aren´t any type of analytical information or benchmarking information to get this conclusions, just superficial rumors.

  26. 26

    Symphony if certainly the better mvc framework for php and the most professional. (the slowness reputation is obsolete). I love CakePHP too.
    Code Igniter is more a big api than a framework like ZendF and Zend framework will be the standard.

  27. 27

    What? Not a single mention of any ColdFusion frameworks? You ought to be ashamed of yourselves!

    I suggest you at least take a look at Fusebox, Model-Glue, and Mach II.

  28. 28

    Symfony deserves to be in the first place among PHP frameworks.

  29. 29

    No Perl. I no read article.

  30. 30

    Qooxdoo is missing! It’s a brilliant JavaScript framework!

  31. 31

    I wouldn’t really consider those server side frameworks implementing the MVC design pattern. They seem to try to do it as an after thought. Plus, the code doesn’t look OO at first glance. There’s lots of inline scripting (aka functional programming) which PHP is fantastic at! I’m not knocking the frameworks, on the contrary, just the MVC label that people put on them. I know there’s probably aspects of the MVC design pattern implemented, but one of the goals of using design patterns is to use a common language amongst developers. And just knowing the MVC design pattern, I couldn’t jump into many of these frameworks and pick them up quickly. Just because you’ve got folders named controllers, model, and views, doesn’t make it implementing the OO design pattern. For example, the index.php file in CodeIgnitor sets lots of “system” properties and includes another file that, among other things, also sets system properties. One of the main OO design principles is to separate responsibility which is spread out and shared in these frameworks.

    CakePHP loads 3 different index.php files before creating a Dispatcher object.

    The Zend Framework looks EXTENSIVE, daunting even. But I did see familiar method names and classes that would be included in an MVC implementation.

    As for the article, the title was how to use, how to choose. And I didn’t get either of those from the content. I’m normally not critical of stuff I read on the web, but all the hype about these frameworks is really wearing on me, I just had to get on my podium…just to let off some steam:) Thanks for the article though. It is a nice list.

  32. 32

    Adobe Flex should get some mention here given that it is one of the excellent frameworks I have ever work on. I have worked with Spring, Rails & some PHP. And on top of that, it is gaining a lot of momentum in past couple of years.

  33. 33

    The PHP framework that should have been mentioned but was not: Qcodo. It predates rails and all the php frameworks listed, and uses code generation instead of runtime reflection.

  34. 34

    I didn’t post the link properly.

  35. 35

    Not to forget agavi Agavi. It is probably the most consistent regarding the OO design technique.

    The article is good, although a bit shallow. I can’t find any help in choosing a framework – only a tagline for each.

  36. 36

    If I had to pick a PHP framework, it would be CodeIgniter, they have complete documentation and its very well done. PHPcake documentation is jumbled, old and often doesnt exist, but they had better marketing early on, so they are pretty popular still. Zend Framework, is pretty confusing and docs are jumbled and there are no official forums for it. I dont know much about Symphony, but I still have to say CodeIgniter should be more popular than it is.

  37. 37

    Django is only as popular as it is because of the Ellington CMS. Thats the only reason why newspapers sites are using Django, because they paid $10,000 to now $30,000 to use the Ellington CMS, which is good and is built pretty much for Newspapers sites. If it wasnt for that CMS, it would not be that popular. There are no good books on Python web development, check amazon and you will see that I am right. Only in the last 2yrs have there even been any new Python books made. The Django book doesnt cover installation on Windows either. Not to trash Django, I like the cascading templates but I’m trying to dispell some of the hype behind it. It was supposed to be at 1.0 in 2006, but its still not there yet, so be sure to know that any code you use, could change and need to be modified when they go 1.0.

  38. 38

    Why on earth do u always forgot to mention the Ajax lib. from Adobe.. aka Adobe SPRY. It should be named in the top ajax lib.

  39. 39

    Adoby Spry… That’s a little overkill I think…

    However, I’m missing Smarty (, which is an awesome framework when working with templates, I find it strange that nobody mentioned it before, as I thought smarty was pretty popular… If I’m mistaken, well, then you were very right not to include it.

    You might mention that Prototype isn’t that well documented, and if you want to learn it, you’re best bet is investing in a book like Prototype and You Never Knew JavaScript Could Do This!

    Anyhow, very nice post!

  40. 40

    Nice list.. Thanks for the framework.. Im looking for this for quite a while now.. Thanks again guys.

  41. 41

    I think that the Java section is, well … screwed up ? The Spring presentation is a bit “wrongy” and “light”: Spring is much more than that, and is mainly an IoC and AOP Container, unless you are talking about Spring MVC ?
    Also, the main Java Web frameworks are not listed (JSF, Struts 2, Wicket, etc.). Whot the heck is using Aranea ?

    Good job anyway :-)

  42. 42

    We´ve developed a php-based framework called “struts4php” that combines the advantages of php and java. More info about the project will be available soon. We´re planning to launch the new webpage within the next few weeks.

  43. 43

    Gilberto Stankiewicz

    January 5, 2008 10:59 am

    Hi! You forgot to include SPRY framework! Please, include it on JavaScript section. It’s wonderful, easy and a complete framework for create JavaScript effects, sort information and transfer data.

    The website is

  44. 44

    smaller, faster, lighter than cake and symphony; and if you know ruby on rails, then you are practically ready to go.

  45. 45

    Since ActionScript 3 is now completely OOP orientated you’ll start to see more and more frameworks being developed for this, two very good ones right now are:

    PureMVC and Adobes’ own Cairingorm Framework which is also based around MVC.

  46. 46

    This article I was a little disappointed, also the name of the framework is Symfony, not Symphony

  47. 47

    Hi to All,

    Ruby On Rails is no doubt the best among the MVC. and its limited currently to Ruby World only. ( A God father to Ruby World )

    Major inspirations are taken from Rails for creating all the MVC you have seen and discussed above.

    The Most surprising part is that…. I have hardly seen any discussion on ” AKELOS “, a pure Rails port to PHP.

    Akelos is a xerox copy of Rails framework that works for PHP and the Creator of ALELOS clarifies this on the front page only.

    Just wondering how other frameworks can be better that a direct Port / Fork of Rails to PHP.

    Why there are no takers…..?

    It can be because no one from PHP has tried this yet or perhaps have not tried the Original Ruby on Rails.

    Rails is so popular that Java has adopted that with Jruby and Microsoft has adopted with IronRuby. And now a New Asp.Net MVC is based on the same way.

    Give AKELOS a try…. Trust me.



  48. 48

    I highly doubt SM if even cares about our input…. as no edits are done… and probly wont be done..

  49. 49

    Vitaly Friedman & Sven Lennartz

    January 6, 2008 3:48 am

    @v1: we’ve corrected mistakes in the article. And the edits have been done. However, a) most comments are quite subjective and b) the article reflects the opinion of our guest author, so we can’t change everything once it’s mentioned in the comments. Thank you.

  50. 50

    i also agree, symfony deserve the first place among php frameworks

  51. 51

    Nice overview, but I really think Symfony should have a bit more attention. There is a reason why yahoo picked this framework to build some of their apps, like answers, bookmarks and delicious (new one) with. As yahoo has like the most visitors in the world on its network, there should be no concern about wether this framework can handle that. Anyway I recommend anyone considering a framework to check them all out and see which one fits their needs. Java users might also want to checkout wicket ( Heard great things about it.

  52. 52

    Will I troll here ? No, this one doesn’t worth it. Some more stupid bytes consumed.

  53. 53

    Interesting article and great roundup of frameworks. I come from a .NET background, so was a little lost when I began doing some PHP. Have used CodeIgniter, and found it contained many things that I took for granted in ASP.NET.
    Now using Ruby on Rails. Don’t think many people will have heard of that one ;)

  54. 54

    Phew…great list… though I didn’t learn the “When to use and How to choose” part :)

  55. 55

    An excellent article. I really appreciate the efforts of the author.


  56. 56

    “Dojo is a small library focused on interpreter independence and small core size. ”

    What is small? in size or in capabilities? Guess the amount of support from big corporations like IBM will not give Dojo the qualification of small, is it?

  57. 57

    Hi, very interesting article. Next an article about CMF ! ??

  58. 58

    This is a nice introduction for those who lived in caves. But generally this doesn’t any justice to most of the frameworks, as it’s not complete and way too short. But at least you can see the trends in this. Oh, btw, Seaside is missing.

    And to make a prediction: Python could be very interesting for the future because Google loves Python, their big community and interesting projects like IronPython for .NET and Jython for Java. It’s a strong, independant, portable and largely supported language. Just my two cents.

  59. 59

    ajax.NET is no more.

  60. 60

    I have been using symfony for almost a year and I would highly recommend it. The admin generator, caching and simple php templating are bliss. Tried both CI and Cake but I felt they didn’t come close. The speed issues are redundant with symfony, its even being used for delicious2.

    Surprised you put it in the ‘further’ section. But i suppose its just your view, as it doesn’t seem very objective.

  61. 61

    Nice article, but you forgot the Struts2 Framework for Java! :)

  62. 62

    Nice list. I found the following listing quite helpfull, it’s a list of +- 30 AJAX frameworks

    AJAX frameworks – For newbies
    . Quite a few I am not familiar with…

  63. 63

    You forgot YUI Javascript library.

  64. 64

    lol… good work……. :) its sooo helpful…

  65. 65

    +2 for Grails. I think Grails is mature enough to include. Use the Java platform for rock solid stability and Groovy as a great RAD development language.

  66. 66

    P.S. Nice overview by the way. There’s nothing like web frameworks to stir the emotions of web developers.

  67. 67

    Spanish frameworks exists too. For example Kumbia PHP Framework is a framework developed by spanish team that have many options to integrate specified frameworks ( css, javascript, … ) and is based into MVC pattern.

    SIte of Kumbia

  68. 68

    Maybe you like to take a look at Java framework too.


    new and unique action processing module – clean, technology agnostic urls – fully JSP, Velocity and AJAX compatible – state-free – invisible to the web-client – convention over configuration – extensible – small and modular.

  69. 69

    Symfony is probably the most powerful framework for php. By far.
    Quite a bad writeup.

  70. 70

    +1 for Stripes

  71. 71

    Nice article.. I think symfony is the most complete and have better documentation among others php framework, symfony deserve 1st place..

  72. 72

    Will all these Frameworks put the web developers out of job? Already, there has been serious talks about the economy heading for another recession…

  73. 73

    what about MochaChochaLatta framework? You didn’t include that?

  74. 74

    All you need to know is CakePHP is all you need to know =)

    Best PHP framework out there.

  75. 75

    It’s amazing that Drupal wasn’t mentioned.

    Drupal has THE most useful community-added modules.

    No matter how fast your framework lets you code, it’s always faster if someone has already coded it for you.

    The problem with most frameworks is that they do not put enough importance on their communities. They might claim so. But they don’t walk the walk.

  76. 76

    great list, we are planning on using Django for our next project. Here we come..

  77. 77

    Symfony should be given more respect on this PHP framework list; should be highlighted with logo, if not moved to the top of the list. Rather silly that the most complete PHP framework is listed as a footnote. Please fix!

  78. 78

    you mush check Kohana Framework for PHP 5. Small footprint and based on Code Igniter.

  79. 79

    CMS’s I ever consider is: CodeIgniter, Silverstripe, ModxCMS, Symfony, CakePHP and RubyonRails. And from all, I use Modx and Silverstripe. Good luck ;)

  80. 80

    As a total new developer, I found the article very informing.. thank you..

  81. 81

    Guys remember that this article is old, but the time the author wrote this symfony wasn’t the best out there.

    Currently with the new launch Symfony 2.0 things are different, but still I agree that CodeIgniter is simpler to learn due to their video tutorials and a lot of examples.

    Symfony is harder to learn, but it’s very powerfull and robust.

    Zend is a pain in the $”#$… and it’s going to remain a pain in the #”$” for the future generations… hard to learn

    CakePHP seems to be easier… i’ve tested a few things.

    From all the above frameworks (related to php) I would choose between CodeIgniter and Symfony… but until Symfony can create some video tutorials, examples, and an easier way to provide documentation instead of showing us prices for conferences, private courses etc… CodeIgniter is my choice.

    At the moment I’m still learning Symfony.

  82. 82

    I ment to say “*By the time that the Author wrote this article”

  83. 83

    You should add Twitter Bootstrap CSS framework.

  84. 84

    How surprising it is that you have not included JSF (Java Server Faces). It’s a JEE standard. Among so many there is a new framework “Nano Web” from TechnoSeals at I haven’t seen something as powerful and simple as this one. But it’s new.


↑ Back to top