Why I chose web2py for developing YATSY?
Non-functional features are as important as functional features in determining the success of an open-source application. Users should be able to download and try most of the functionality, without complicated installation steps. Equally important is the ease with which it can be deployed.
While striving to keep these boundary conditions for end-users, developers prefer a language (and framework) that enable them to transform their brilliant ideas into working code quickly.
With such a thought process, I searched for a framework to develop YATSY – an open source helpdesk application for small businesses. As the title says, I settled on web2py because of the following reasons:
It is on Python: If you didn’t know, Python can be learnt intuitively. In the recent years lots of Python-based frameworks have evolved improving developer’s productivity drastically. Python places minimal constraints on the developer; hence development is generally quick.
It adapts to Schema Changes: Schema changes are an inherent part of development; especially if you follow the open-source mantra of ‘release early; release often’. Web2py automatically changes db schema if it detects a change in the underlying model. You don’t need to drop and recreate schema or issue alter table commands. One less head-ache for developers.
Its a self-contained Framework: web2py is based on MVC pattern and it comes bundled with most of the components needed for web-development – authentication, authorization, form generation & validation, internationalization, admin interface, ajax (jQuery) and so on.
Its well documented: Yes it is a pity that the official manual has to be bought but Massimo, the lead developer, seems to have a justification for it. I went ahead and bought the manual and I should it is fantastic – he explains each component of the stack pretty well.
It can be installed easily: It is based on Python, but it is not a pre-requisite to run web2py. Download, Unzip, Execute are all that is needed to get started with web2py development – on any OS.
It can be hosted on AppEngine: This is a big plus for me. Google AppEngine is the only cloud hosting that I am aware of that provides a free hosting for Python based applications. So potential users of YATSY can try free GAE hosting before moving to paid hosting. Deploying web2py application to AppEngine is a one-click affair.
It can be hosted elsewhere too: Web2py provides the flexibility to host the developed application anywhere Python can be installed. This means that users are not tied to GAE. If they want to install in their own servers, it is no problem.
With web2py providing the basic blocks for non-functional requirements, I find it easy to develop YATSY. You can check out the code at Google code and try it at Google AppEngine.
[...] Read the rest here: Why I chose web2py for developing YATSY? [...]
Why I chose web2py for developing YATSY? |
7 Apr 09 at 11:06 am
Considering it’s currently the most dominant tag in your tag cloud on the right here, I’m curious why you didn’t go with Django? On the same note I’m curious why you also didn’t go with an existing solution like http://www.jutdahelpdesk.com/ ?
I’d previously looked at web2py, attracted initially by the fact that “It can be installed easily”. However, at the time I was looking at it as a PHP developer and I was quite put off by this page: http://mdp.cti.depaul.edu/AlterEgo/default/show/106
which I felt was a relatively uninformed view of PHP. (I even added a comment on that page to point out a few things I thought were incorrect but it seems to have disappeared).
Nick Lo
7 Apr 09 at 1:24 pm
Nick: Short answer: just for the heck of it
Joseph Jude
7 Apr 09 at 9:48 pm
As good a reason as any. I’ll be keeping my RSS eyes open for the follow ups.
Nick Lo
9 Apr 09 at 5:51 pm
Only the Windows .exe includes Python.
@nick
I’m pretty sure Massimo is using his experience as a university lecturer here. He’s probably seen lots of PHP done very badly.
PHP sites can be done very well, but they can also be done very badly. web2py doesn’t allow you to make mistakes like allowing SQL injection.
Tim
11 Aug 09 at 1:22 pm