Tools of the Trade: Web Development Frameworks that the Pros Use

Tools of the Trade: Web Development Frameworks that the Pros Use

New web development frameworks, promising rapid development and easy deployment, are sprouting out at a more rapid pace than you can keep up. In the last article, we looked at the various factors you’d have to consider when deciding on a framework. Today, we are going to look at the various frameworks available for each facet of web development.

In this current day and age, pushing out a finished, polished application well before your competitor is key. Coding everything from scratch, excluding even the mundane things, can be extremely time consuming and makes the developer spend time reinventing the wheel, time which would rather be spent implementing new features or tightening up the code base. This is where web development frameworks come in.

Today, we are going to take a look at the various options you have when choosing a web development framework. We are going to cover every type of framework, right from server side frameworks down to JavaScript animation frameworks. Intrigued? Let’s go take a look!

Server Side Frameworks

Server side frameworks are the one doing almost all the heavy lifting behind the application. They handle almost every aspect of the application right from URL handling to database access. You have a variety of options for each platform. For the sake of brevity, we’ll look at only the most popular ones today.

CakePHP

Tutorial Image

CakePHP is a very popular PHP framework inspired by Ruby on Rails and lets you develop, maintain and deploy applications with ease.

This framework makes use of the MVC pattern and has a lot of must have features including ORM, scaffolding and URL routing. The built in libraries are pretty expansive and include helpers for generating RSS feeds and HTML elements.

There is little to no configuration needed to get it up running and has an excellent community and detailed documentation behind it.

CodeIgniter

Tutorial Image

CodeIgniter is a PHP framework built on the tenets of simplicity, speed and a small footprint and as such is among the smallest PHP libraries in terms of the total footprint.

Among the frameworks which are built on the MVC pattern, CI is the easiest to learn. If you are a beginner PHP programmer, CodeIgniter would be the best place to start with.

Since it aspires to be as small as possible, the libraries aren’t as full fledged as Cake but the extremely thorough documentation and the very friendly community more than make up for it.

Kohana

Tutorial Image

Kohana is a fork of CodeIgniter intended to work only with PHP 5. Kohana is completely community driven and every modification is thoroughly discussed and vetted with in the community.

All the positive aspects of CI carry over here except that the documentation can be relatively lacking. However it has a thriving community behind it you can turn to if you run into errors.

Zend

Tutorial Image

Zend framework is more of a glue framework in that things aren’t as tightly coupled as in other frameworks like RoR or CakePHP. As such it also gives you a lot more control.

This framework boasts of one of the most complete collection of utility classes to leverage in your application. But since this is a collection of classes than a proper framework, you’ll be looking at lots of configuration to make it work. If you are thinking of starting off as a PHP programmer, this isn’t the first framework you should try.

Having said that, it has excellent documentation and a very large community behind it.

Symfony

Tutorial Image

Symfony is yet another very popular, feature packed PHP framework. It provides a solid core and ships with a number of third party libraries to fill in the blanks.

This is marketed primarily as an enterprise framework and has solid documentation and a thriving community to help you.

ASP.NET

Tutorial Image

ASP.NET allows you to leverage the MVC pattern through ASP.NET MVC. It lets developers use the accepted MVC pattern in their applications. Or if you chose to, you can completely ignore MVC and use the way you’d normally want to.

It ships with a very impressive set of features including libraries for code generation. It also has very thorough documentation and a welcoming community behind it.

Ruby on Rails

Tutorial Image

Ruby on Rails is a framework for the Ruby platform and was created by David Hansson whilst creating Basecamp for 37Signals. Ruby on Rails has gained incredible growth ever since it was released.

RoR uses the MVC pattern and provides a number of features including a complete ORM, scaffolding and URL rewriting. Ruby, by default, uses Prototype as it’s JavaScript library.

Ruby’s incredible growth can be attributed to ease of development and rich feature set. Configuration is generally minimal to nothing. It has good documentation and a growing community.

Django

Tutorial Image

Django is a web development framework based on Python and is amongst the most robust one on the Python platform.

Django ships with an extensive library containing tools for caching, serialization, authentication. It even provides a simple administrative interface based on your models and controllers. Its URL rewriting mechanism is a little different in that it uses regular expression to resolve which controller it needs to use.

It has extremely thorough documentation to back it up along with a helpful, polite community. A beginner Python programmer will take to Django very easily.

Pylons

Similar to Zend, this is a very loosely coupled framework which glues a number of third party libraries to provide functionality.

In Pylons, each and every aspect can be switched out with the one you like. Everything from it templating language to its ORM can be switched out with minimal fuss.

With respect to features, it depends directly on the individual components you pick for your project. Documentation can be relatively lacking and the community is a little smaller too.

TurboGears

Tutorial Image

Similar to Kohana and CodeIgniter, Turbogears is built on top of Pylons. It shares the same pros and cons as Pylons.

As with Pylons, every component of the framework can be replaced with one of your own choosing. Currently it only uses Pylons for its controller component.

JavaScript Frameworks

JavaScript frameworks work almost exclusively on the browser side. A typical framework lets you navigate the DOM easier, manipulate its contents right up to AJAX integration. There are a couple of widget libraries too which let you use specific user interface elements in your application instead of creating them from scratch.

jQuery

Tutorial Image

jQuery is an extremely popular library which focuses primarily on DOM manipulation. It has an extensive API encompassing a range of functionalities from DOM traversal to AJAX support.

It has very good documentation with a plethora of tutorials, screencasts, references and books for you to go through. The community is pretty large and very helpful.

If you are new to JavaScript and need to get started as quickly as possible, jQuery is an excellent choice.

Prototype

Tutorial Image

Prototype is among the oldest JS libraries and as such is very mature and stable. It ships with Ruby on Rails and as part of the standard OS X installation.

It provides a clear API for all of the functionality it exposes and has clear documentation to back it all up. Prototype also provides various methods through which you can write clean class based code. Prototype handles everything from DOM manipulation to AJAX to providing a number of utility methods.

MooTools

Tutorial Image

Mootools presents itself as the ideal solution for the intermediate to advanced programmer. It focuses on JavaScript as a language and extends on it as much as possible.

It provides a robust class creation system just like Prototype and just like the others, it provides a coherent API for all the functionality it provides.

The documentation can be pretty lacking at times but the active community more than makes up for it.

Yahoo UI

Tutorial Image

Yahoo UI library is a Swiss army kind of a library in that it provides a complete set of features and widgets letting you build the application you want to build. It is built by the developers at Yahoo itself.

In YUI, the core library contains all the essential elements including DOM traversal and CSS manipulation while the utilities and widgets are optional and are available separately.

YUI has the most thorough documentation among JavaScript and is easy to get started with.

Dojo

Tutorial Image

Dojo is yet another JS toolkit which provides everything that you’d expect from a modern JS library including a selector engine, AJAX integration and so on.

It also provides a set of rich interface elements and a number of advanced features like persistent connections and offline storage. Dojo has very thorough documentation and a thriving community.

CSS Frameworks

CSS frameworks, when properly used, let you cut down on development time by cutting down on oft repeated declarations and styling.

CSS frameworks can be a pretty polarizing topic among the development community but you owe it to yourself to give it a try.

960Grid

Tutorial Image

The 960 grid system intends to ease your workflow without complicating things. There are 12 and 16 columns versions for added choices.

It provides a CSS generator to further cut down on your development time. It also has pre made templates for use in popular software including Photoshop, Fireworks, Illustrator and Expression Design.

YAML

Tutorial Image

YAML, Yet Another Multi column Layout, is a CSS framework which lets you create robust column based and/or grid based layout based on web standards.

It also has a nifty tool for creating YAML CSS code. The documentation is pretty thorough and the community, helpful.

BluePrint

Tutorial Image

Blueprint is a CSS framework which intends to reduce the time you spending mulling over grids and padding. It makes use of a solid grid, support for typography and print support.

It features wiki based documentation and bug tracking. It boasts an active community where you can post your queries.

YUI Grids

Tutorial Image

Yet another Yahoo products on the list. YUI Grids offers support for multiple widths, fluid layouts, flexible element placement and more.

As with the YUI JS library, each part of this is thoroughly documented with plenty of examples, sample code and screen casts

Elastic

Tutorial Image

Elastic is a very simple framework with support for fixed, liquid and elastic layouts.

Elastic has a growing community and pretty decent documentation.

JS Animation Frameworks

Recently, specialized JS animation libraries have been popping up with the sole purpose of providing easier way to animate user interfaces. Let’s a look at the most popular ones.

Scripty 2 and script.aculo.us

Tutorial Image

Scripty and script.aculo.us are based on Prototype and provide a way to seamlessly animate content as well as provide a number of user interface elements to use in our applications.

fx

Tutorial Image

fx is a standalone JS library which focuses exclusively on animation. As such it lets you animate each and every CSS property along a set time line.

It has decent documentation and is extremely small at less than 4 kb.

gx

Tutorial Image

gx is a cross browser framework which again focuses exclusively on animation. It has a number of extremely impressive features including easing, delayed animation and predefined animation rules.

Since it is relatively new, the documentation is a little lacking and the community is hard to find. But it is extremely impressive and definitely warrants a try.

Processing.JS

Tutorial Image

Processing.js is built on the canvas element and written by John Resig. It lets you draw elements and then manipulate them on the canvas element.

Since it is a port of Processing for the JS language, it shares most of its advantages including robust support animation capability and shape support.

jsAnim

Tutorial Image

jsAnim is yet another animation library which lets you create very impressive animations. The example on the front page itself is a wonderful example of what can be done with it.

It weights in at a hefty 25 kilobytes compared to 3.7 for fx but packs a lot of features. The documentation is pretty straight forward and should give you a good idea of the basics.

Raphael

Tutorial Image

Raphael is a tiny library which lets you work with vector elements on your web page. It uses SVG or VML as needed to generate its graphics.

It’s extremely robust and produces extremely impressive results. A look through the demo pages gives you an idea of what it is capable of.

The documentation is pretty thorough and the discussion group is pretty active too.

Conclusion

And we are done! We looked at all the choices you have when you need to choose a web development framework. We looked at all types of frameworks right from humongous server side frameworks to nimble JS animation frameworks. Hopefully, this has been useful to you and you found it interesting.

Questions? Nice things to say? Criticisms? Hit the comments section and leave me a comment. Happy coding!

Ready to take your skills to the next level, and start profiting from your scripts and components? Check out our sister marketplace, CodeCanyon.

CodeCanyon

Siddharth is Siddharth on Codecanyon
Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • http://www.philohermans.com Philo Hermans

    Nice Article! :)
    Best combination: CodeIgniter + jQuery + 960 framework :P

    • http://www.jeffrey-way.com Jeffrey Way

      Ditto. :)

    • http://www.ssiddharth.com Siddharth
      Author

      Heh. Thank you for reading.

      I am a Cake + jQ or Django + jQ man, myself.

    • http://www.phpandstuff.com Burak

      Adding Doctrine to CodeIgniter is awesome also.

    • http://bwebi.com barat

      CI … I prefeer Kohana PHP … CI is PHP4, and PHP4 is unsupported now :)
      But … I like the way wich both works ;)

      • http://net.tutsplus.com Jeffrey J Way

        I’ve heard such great things about Kohana…just haven’t tried it out yet. Been meaning to! I’ve heard that it’s much better than CodeIgniter.

      • http://tutsvalley.com Slobodan Kustrimovic

        After you finish the CodeIgniter screencast series you can start Kohana screencast series. :)

        But continue with the CI finally :P

        OffTopic: Is “that” needed in the title, shouldn’t it be “Web Development Frameworks the Pros Use” :)

      • http://bwebi.com barat

        @Jeffrey J Way (UP).

        “I’ve heard that it’s much better than CodeIgniter.”

        Well … meybe ot as that … but for me -it’s better :) PHP5 based autoloader is realy fast.
        One thing – I’m using Kohana 2.3.x, because there is no Formo for KO3.x yet. I’ll wait few months for more supported KO3 and then switch.
        Next thing is that KO2.3.x have better doc.
        I’m thinking about reanimating my website and post few tutorials about Kohana (maid two portals on it, 3rd is on the way).

      • http://hostilewarfare.co.cc Joe S

        CI has been upgraded to PHP 5 Hence CI 1.7.2 ;)

    • Christian

      I agree, CI + JQ + 960 is really the best for me

    • Matt

      I’ll stay with my Ruby on Rails + jQuery + Blueprint + HAML/SASS, thanks :)

      • http://tutsvalley.com Slobodan Kustrimovic

        RAW PHP + jQuery + Normal HTML and CSS :)

        I don’t use the 960 framework much because my clients have specific needs about the layout :)

      • Deoxys

        Agreed to Slobodan :)

      • Commenter

        Slobodan Kustrimovi hit the nail right on the spot :) – I’ve only used CI once, but taken a few stuff from it which I’ve developed into my own mini framework – as in, one customised exactly the way I want it :D

      • gotjosh

        What IDE do you use for RoR ? Or just Text-Mate?

    • http://www.webstuffshare.com Hidayat Sagita

      I prefer : CI, jQuery and BluePrint CSS :D

    • Fabryz

      Same combination! :D

      I love them <3

      • http://www.designr.in Ramesh

        I love cake+Jquery+blueprint combination

  • http://www.what-a-geek.com Adit Gupta

    I use Cake PHP :)

  • ShadowAssassin

    nice, thank you, CI all the way!

    • ShadowAssassin

      @Jeffery Way: I have been watching your Codeigniter video tutorials..

      Sadly (I think it was 5/6) couldn’t load :(

      they are amazing tutorials though :D

  • http://www.jacobwhenderson.com Jacob

    CakePHP FTW!

    • http://www.ssiddharth.com Siddharth
      Author

      Amen, brother.

  • Chris Carey

    No ExtJS?

    • cb

      I find it surprising as well that non of the ‘pros’ uses ExtJs according to this article..

  • JohnDel

    Ruby on Rails, Jquery and for CSS nothing, I use LESS! :) For javascript I use jquery most, but I have also the advantages of the prototype-scriptaculous ready-made ajax effects with one line of code by helpers.

    Nice article but I think web2py is something pretty and special and it shouldn’t be out of the list.

  • Rob Brooks-Bilson

    A couple of additional popular frameworks you may want to consider adding:

    EXT JS: http://www.extjs.com/
    Mach-II: http://www.mach-ii.com/
    ColdBox: http://coldbox.org/

  • Borlando

    Could you open a vote with a little message area to say why people choosen what?
    It could really help me and other neiubies :)
    Thanks in advanced.

  • http://www.urbanvideos.tv alan

    Cake ,J-query,Blueprint. My favorites!

    CI is not bad ,but Cake is really fast to work with!

    It’s like Ruby on Rails for PHP!

    • http://www.ssiddharth.com Siddharth
      Author

      It is actually RoR for PHP. A lot of the techniques and practices including a proper ORM, strict naming schemes and routing were carried over to Cake.

  • Matt

    What, no perl frameworks or tips? Real work can be done with perl.

  • http://www.jacobwhenderson.com Jacob

    I would love to see more cake tutorials here.

    • http://www.ssiddharth.com Siddharth
      Author

      I’ll definitely keep that in mind.

      Thank you for reading.

  • http://http Jonathan Yarbor

    Used CI, now I made my own, I don’t like using other people’s code!

    However CI did open my eyes to a new world of PHP development!

  • http://tracker1.info/ Michael J. Ryan

    You missed extjs, which is great for web applications. I personally like ASP.Net MVC (not as big a fan of regular ASP.Net) Also, not a big fan of PHP in general. The Python stuff is pretty cool, as is RoR. If it’s a site as an app, I tend to lean towards jQuery+UI for the scripting, with a good core layout (the Yahoo Grids are decent). For me the biggest thing is being able to use the same code for an initial render, as well as dynamically updating content sections as needed. Other than missing ExtJS, and being a bit light on ASP.Net MVC, it’s a nice rundown.

  • http://anitek.org jetrois

    great post. Very infomitive I need all the info I can handle ATM

    • http://tutsvalley.com Slobodan Kustrimovic

      Then i suggest watching those screencast Jeffrey made about CodeIgniter.

  • http://laranzjoe.blogspot.com lawrence77

    ASP.NET ;)

  • http://www.yiiframework.com streetdaddy

    Am I the only one who’s surprised not to see the Yii Framework in there?

    • http://www.purplematter.com Miguel Benevides

      No :) Yii Framework is a must. Tried it and never looked back.

      • giz

        Yep, Yii Framework makes sense but what do I know ;-)

  • http://www.vimeo.com/skatevideos alan

    wordpress….

  • Sam

    I think frameworks such as Codeigniter and cakePHP are not a good practice, since they allow running of only one application at a time. For more advanced techniques, Zend Framework is much better and more flexible.

  • http://twitter.com/z0r z0r

    I’m gonna hurry and learn some RoR. I only heard about it and never tasted. Hope the flavour would be better than the cake one

  • Jon

    You missed one for the JS Animation section; Glimmer. Just a thought. Other than that, great article!

  • http://www.encoder2002.com Daniel Sitnik

    Great article, thanks!

  • http://www.maikdiaz.com Maik

    Great Article Thanks for sharing

  • http://www.slickdev.com Jeff

    I don’t see ExtJS here.. It’s one of the JS Framework I use regularly, if not, always. Really great for tables, list, etc.. :)

    Other than that, great list!

  • http://www.numgame.com/fxpro/ fxpro

    so good。

  • http://www.vedicrishi.in/ chandan

    really some great frameworks.
    thanks for sharing

  • http://www.webbannerdesigns.com Pixmedia

    Nice ,Thank you so much for sharing :)

  • sam

    shouldn’t jQuery Tools be somewhere on this?

    http://flowplayer.org/tools/index.html

  • http://www.codeworxx.com/ codeworxx

    Very nice Article…

    the best combination for us:

    CodeIgniter, jQuery, CSS Scaffold.

  • http://www.crearedesign.co.uk Stephen Webb

    Thanks for this great list of useful technologies; I will be keeping it on file for future reference. I think some of the most usable ones appear to be MooTools and CodeIgnighter , and the fact these are both open source software technologies is essential to their success and widespread usage.

    jQuery is also a well known software platform and I’ve seen it have widespread usage in recent years. I’m interested to learn more about this so maybe a feature on its capabilities and ease of usage could be done in the near future?

    These development framework articles are an excellent reference, so I look forward to seeing more of them soon.

  • http://www.vunkyblog.net Vunky

    I think Ruby on Rails should be higher in the list. They where some of the first to implement the MVC framework structure. CakePHP derived from their example.

    One of the best improvements in the last couple of years is the emerge of javascript frameworks like Prototype and JQuery. They really take away the pain of cross browser javascript development.

  • Dan

    You missed out ExtJS!

    • http://www.ssiddharth.com Siddharth
      Author

      And Rico too. Unfortunately, there is only so much you can put in an article.

      Thanks for reading. :)

  • Espen

    Let me suggest another one: http://ezcomponents.org/

    Much like Zend Framework it’s very loosely coupled and has excellent documentation. On the downside, there’s a limited community surrounding it. It is however incredibly easy to get started with. Much easier than ZE in my opinion.

  • http://evansofts.com Evan-XG

    nice selection . there are few that I didn’t know . But you shouldn’t ignore Extjs which is a great framework in my opinion . even though the licence is a litle bit restrictive .

  • http://www.nukleo.fr Erik

    CI+jQuery+960grid = love :)
    Thanks for the nice roundup… I’ll have to check some of those out

    Oh and CI is not php4, it supports php4

  • kisin

    what is the best php framework in case of memory usage?

    • http://www.gunners.fr/ mikaweb

      Good question. If anyone has an answer ?
      I’m currently on Kohana but it’s pretty difficult because there isn’t a documentation.
      CI is good but Kohana better. And about Cake ? I heard it was not very efficient, slower than the others…

      • http://www.ssiddharth.com Siddharth
        Author

        CI and Kohana definitely.

  • Gudjonsen

    I have tried most of the PHP frameworks out there, I´m gonna stick to Kohana, have tried out both 2.3 and 3.0. Wrote my CMS in 2.3 so I will stick to it untill 3.0 will be non-beta.

    The reasons are way to many, but lets just say that the database query builder is awsome, and some modules like PayPal module and more are so neat.

    Go for Kohana :)

  • http://www.stefanosala.name stewe

    +1 for Symfony here! :-)

  • Sajid Ali

    Nice article…

    So are you going to update this with ExtJS and Yii?

    • http://www.ssiddharth.com Siddharth
      Author

      I’d like to but writers don’t get to edit the article once it’s posted. I’ll have to ask ze boss man. :)

  • jem

    django + mootools (though i dont mind JQ) and some 960 on the side, Mmmmm tasty.

  • http://www.gabereiser.com Gabriel Reiser

    CodeIgniter + jQuery + YUI FTW!!! Ruby on Rails is nice but finding hosting for it without buying your own dedicated server is somewhat a crap shoot.

  • sachin

    No doubt Asp.Net All the Way !

  • http://www.demogeek.com DemoGeek

    After sincere attempts to adopt RoR failed (too much hidden magic) I’ve been sticking with CodeIgniter + jQuery + BluePrint + MySQL. Next step is to bring Doctrine into the mix along with transitioning to Kohana.

  • ashraf

    ci + jquery + normal html css. what about java frameworks ? i know stripes and play is there others ? and what is the better one ?

  • Ricantails

    Where is Cappuccino?
    I think it’s one of the most impressive framework around here, would be nice to see some Cappuccino tutorial on Nettuts :)

    Anyway i mostly use: My PHP Framework + jQuery + 960gs

  • http://watchallsawmovies.com/ James

    Thanks i like what jeffery way suggests about the CodeIgniter and it’s easy doc

  • Brian

    Dittos on “why no perl?” Catalyst is a fantastic framework.

  • http://www.almogdesign.net Almog Koren

    This great and if your developing in Flash you have PureMVC

  • http://www.davidkaneda.com/ David Kaneda

    +1 for Ext JS!

  • Commenter

    Personally JS frameworks are more or less a must, it makes everything JS more efficient, quicker, etc.

    On the other hands, PHP Frameworks are not really a must depending on what you are doing, or more or less scalabilty and future. Making your own framework will work in many scenarios, you know it inside out, and you can easily make additions/changes as required, reuse it – For example I’ve made my own which is similar to CI just more OOP and php5 orientated, and much more light weight and customised to my needs, it also easily integrates with my user authentication, and PDO with my own DB helpers, etc – Can be reused, and easily modified, applications built on it are also sort of modular.

    BUT, when you are building a comerical project, such as a web based game or massive website, a framework becomes the more sensible option, in which case something like Symfony or Zend, though very hard to get to grips with (like a new language imo) they will be better.

    So with PHP it depends on what you are doing, DO NOT use a framework for EVERYTHING you do, but take a think before you start on whether you need one, what you need from it, etc.

    When it comes to CSS, I prefer to write my own,.

  • Commenter

    Oh I just remembered, as a PHP developer it is important to be consistent in your code, what I mean by that is have your own coding guidelines, way of doing something, etc – A great way of doing so is taking a look at existing open source stuff, such as frameworks ;)