Choosing a web development framework

Choosing a framework is one of the major decisions you make, and will influence a lot of your development choices.

Web Development Frameworks

Illustration from Wordle.net

Web Dev FrameworksWhich one is right for you?


So you have decided you want to start your startup, or may be you just want to build a hobby site. Choosing the web framework is going to be one of the most important decisions you will make, and this decision is going to influence most of your future decisions, so choose wisely. Recently at uswaretech.com, I helped a client evaluate frameworks and make a choice, so here is some help for you from my experience.

Step 1. What are the choices?

Of course the first step to choosing is to enumerate the choices. Lets try some,

  1. Java with Struts framework.
  2. PHP with or without a framework. Let’s assume Symfony.
  3. Ruby with Ruby on Rails.
  4. Python with Django.

… And others.

Step 2. What are your constraints? What are your strengths?

You are a startup, (or a single person, or two). You have limited budget and timeline. You need to hit production yesterday! In such a scenario, Java is something you do not want. You want an Agile framework, something which allows you to develop quickly and iteratively.

A detour - Why Oracle uses Java, but you should not.

For a large organization using Java is a no brainer. “No body got fired for using IBM.” Java is the default option, and for risk averse managers the only option. As Michael Trier succintly put, “You can pick up the phone and get three .NET developers tomorrow. Regardless of whether your company is based in Louisville, Kentucky or White Plains, New York.” This flexibility of swapping programmers is useful to large corporations, but as a startup, you need your development team to stick with you.

Step 3. What libraries are available.

For this project, the client needed to to do a lot of statistical and numerical processing. Scipy is a fast, optimised library to do numerical and scientific processing. So choosing Python over PHP was a no brainer for us. Your requirement might be that the developed application be deployable on a variety of vanilla shared hosting, PHP scores way over anything in this respect. There is no way Wordpress could have become so popular if it was not written in PHP.

Step 4: What do you already know?

Do you have some legacy code in a given language you would like to reuse? Do you and your team have experince with some framework? For us, the client had a team experienced with PHP, but the presence of a killer library tilted the balance in favor of Python. Similarly you need to weigh the what value your previous experience has in relation to other factors.

Step 5: How large is the community. How good is the documentation?

When you get stuck in a deep, challenging framework problem would you be able to ask a question in the framework forums and get a quick response? Do a lot of people hangout in the IRC channels? Is the documentation top notch and comprehensive. Once we had decided on Python as the language, we had the choice between Turbogears and Django. We choose Django for its larger community and better documentation..

Finally

Choosing a framework is one of the major decisions you make, and will influence a lot of your development choices. I hope you can use this step by step method to come to a correct decision. I recommended Django after evaluating my client’s requirements, but your needs and requirements are unique, and your framework most suited to you may be different.
So choose the best framework, and go build the next Google.

This was a guest post by Shabda Raaj from Uswaretech, which specializes in Django web development. They have built a number of Django webapps, such as 42topics.com, a social news site which find links tailored to an user’s needs.


Don't like it? There are lots of published articles, pick a random one.

oCricket

Shabda posted this article on Wed, Jul 9th, 2008 at 6:34 am
Categorized under Django, Featured, Java, Technology and has the following tags

Prev Article: How about an Open Sourced office?

Next Article: Secure your Wordpress, mine was attacked


Possibly Related Articles

Archives: Visit the Archives for more articles.

Comments Post Yours

There are 7 responses so far. You can follow any responses to this entry through the RSS feed. You can leave a response, or trackback from your own site.

  1. What about Perl and Catalyst as an option for us old timers?

    http://catalyst.perl.org/

  2. another good framework is also there in java : JSF.
    This post is very informative.
    most of the things i don’t know thanks

  3. yeah jsf is good too it is a presentation layer of j2ee and useful to design complex web component without codding single line of java script. But it has some limitation for eg: it only support post form method you can not use get form method. and its too complicated. Thats why struts is more popular.

  4. i have not work on struts so i don’t have any idea about the struts. but u r right jsf is very complicated

  5. If you’re curious about MVC frameworks, have a gander at MVC Marathon.

    It takes longer to write about it than it does doing the code, but I hope to make it all the way through.

  1. Pings & Trackbacks Sites, articles & blog posts linking back to this article.

Post yours

Sidenotes

Quick notes, scribbles, somehow related to this website and to what I do. Or perhaps I'm just plain lazy to make them into a full article.

Introduction to Adobe AIR (NetTuts)

Nettuts have a nice Introduction to Adobe AIR which focus on using HTML/JS to build an AIR Application. It covers -- Adobe AIR Architecture, How to install AIR, Get the development SDK, Configurations, gets on to ...2nd Oct, 2008

Decide Team Type from Books

What do you think of the "Team-Type" if they got these books recently? What "Team-Type" do these books suggest? ( surveys) 29th Sep, 2008

What do investors look for in a startup?

A great video Interview with Venture Hacker Naval Ravikant answering the age-old question: What do you look for in a startup? Investors look for two things that are paramount above all: # Great team: It's obvious. It's a ...27th Sep, 2008

You don't mess with the 'Englineer Bother'

(Via: Hiring Horror) 24th Sep, 2008

Dear Adobe

Do you have a gripe with the Adobe Softwares that you use? Do you have complaints about Adobe Softwares? Please visit Dear Adobe to file your informal gripe with Adobe. 15th Sep, 2008

View the Sidenotes Archive

Play the Penguin Game

Recommended

  • o! Just Me Of colorful cultures, entertainment, media, life hacks, music, books and movies from hollywood & bollywood.
  • Not Safe for Work Ever clicked a link and felt embarrassed with the content in front of your co-workers? Ever caught unaware because the funny link your friend sent was a little beyond funny? Let’s minimize that with NSWF.
  • Forum Oinam’s technical discussion forum where developers and designers can discuss all technical topics.
  • ActionScript 3.0 Reference Flash/Flex ActionScript 3.0 Reference.
  • My Special Job My Special Job is a place where you can look for your weird necessities, strangely superb employees, when your need are more of those hackers, geeks, and ultimate rockstars in the Internet Technology.
  • Ode to Apple Dedicated to Apple - Mac, iPhone, iPod, iTunes, Quicktime, Apple TV and all the awesome softwares for the Apple Mac.
  • AS 2.0 Reference Reference for ActionScript 2.0 Programming Language used in Flash. Primarily stashed here for my own personal reference.

Download free Brajeshwar Wordpress Theme

Brajeshwar

Brajeshwar I firmly believe in keeping things simple, easy for users and I envison pushing the technical envelop time and again for the betterment of viable commercial and practical applications. More about me.

Brajeshwar Personal Identity Portal powered by VeriSign Labs

Brajeshwar's affinity with Adobe

My Photos

More photos on Flickr

Member of 9rules Network

Since its inception on 11th June, 2001, "Brajeshwar" has 863 Articles and 5,995 comments, contained within 20 categories and 1,233 tags.