From: Jake on
On Dec 19, 1:42 am, AppRe Godeck <a...(a)godeck.com> wrote:
> Just curious if anybody prefers web2py over django, and visa versa. I
> know it's been discussed on a flame war level a lot. I am looking for a
> more intellectual reasoning behind using one or the other.

Hi! I come from a mvc framework background in a few different
languages (java, php, ruby). I'm only a couple weeks into web2py, I'm
finding web2py a joy to work with. I won't waste your time with the
features it provides, as you can find these on the website. There is
also a copy of the lead developer's book on the site, and its very
well written.

If web2py intrigues you, I would recommend just trying it for a few
days. It's pretty small (relatively few exposed classes and
functions) and very comprehensible, so you won't really have to invest
much if you decide to try it and don't like it. The mailing list is
active and responsive, and the lead developer happens to have chimed
in on every question i've asked. On the down side, the irc community
is very small.

Good Luck,
Jake



From: mdipierro on
Errata 2. Before people jump on me. I said "copyright" but I meant
"trademark". Of course web2py is GPL2 so everybody can copy and modify
it.

The license has an exception that basically treats the compiled web2py
as freeware.

The license does not extend to apps that require web2py. They can be
distributed under any license you like, included closed source and
bundled with the web2py binary.

On Dec 19, 5:32 pm, mdipierro <massimodipierr...(a)gmail.com> wrote:
> On Dec 19, 12:42 am, AppRe Godeck <a...(a)godeck.com> wrote:
>
> > Just curious if anybody prefers web2py over django, and visa versa. I
> > know it's been discussed on a flame war level a lot. I am looking for a
> > more intellectual reasoning behind using one or the other.
>
> Of course I am the most biased person in the world on this topic but
> perhaps you want to hear my bias.
>
> A little bit of history... I thought a Django course at DePaul
> University and built a CMS for the United Nations in Django. I loved
> it. Then I also learned RoR. I found RoR more intuitive and better for
> rapid prototyping. I found Django much faster and more solid. I
> decided to build a proof of concept system that was somewhat in
> between Django and Rails with focus on 3 features: 1) easy to start
> with (no installation, no configuration, web based IDE, web based
> testing, debugging, and database interface); 2) enforce good practice
> (MVC, postbacks); 3) secure (escape all output, talk to database via
> DAL to present injections, server-side cookies with uuid session keys,
> role based access control with pluggable login methods, regex
> validation for all input including URLs).
>
> Originally it was a proof of concept, mostly suitable for teaching.
> Then lots of people helped to make it better and turn it into a
> production system. Now he had more than 50 contributors and a more
> than 20 companies that provide support.
>
> There are some distinctive features of web2py vs Django. Some love
> them, some hate hate them (mostly people who did not try them):
>
> - We promise backward compatibility. I do not accept patches that
> break it. It has been backward compatible for three years and I will
> enforce the copyright, if necessary, in order to ensure it for the
> future.
>
> - In web2py models and controllers are not modules. They are not
> imported. They are executed. This means you do not need to import
> basic web2py symbols. They are already defined in the environment that
> executes the models and controllers (like in Rails). This also means
> you do not need to restart the web server when you edit your app. You
> can import additional modules and you can define modules if you like.
>
> - You have a web based IDE with editor, some conflict resolution,
> Mercurial integration, ticketing system, web-based testing and
> debugging.
>
> - The Database Abstraction Layer (DAL) is closed to SQL than Dango ORM
> is. This means it does less for you (in particular about many 2 many)
> but it is more flaxible when it comes to complex joins, aggregates and
> nested selects.
>
> - The DAL supports out of the box SQLite, MySQL, PostgreSQL, MSSQL,
> Oracle, FireBird, FireBase, DB2, Informix, Ingres, and the Google App
> Engine (except for joins and multi-entity transactions). We plan
> support for Sybase and MongoDB within one month.
>
> - The DAL supports transactions. It means it will create and/or ALTER
> tables for you as your model changes. This can be disabled.
>
> - The DAL has partial support for some legacy databases that do not
> have an 'id' auto increment primary key.
>
> - It has a plugin and a component systems (here is an old video:http://www.vimeo.com/7182692the video says "experimental" but this is
> now stable in trunk, although not very well documented).
>
> - both systems have a web based database interface (Django calls it
> "admin", web2py calls it "appadmin, not to be confused with web2py
> "admin", the IDE). The Django one is more polished, customizable and
> designed to be exposed to users. The web2py one is raw and designed
> for the administrator. It is not customizable. Because it is designed
> for the administrator and requires administrator login it allows
> arbitrary DAL code to be executed. It can be disabled.
>
> Here is the last app I built with it:http://www.vimeo.com/7182692
> running on GAE here:http://www.vimeo.com/7182692
>
> Herehttp://www.vimeo.com/6507384you can see a video in which I
> rewrite the Django polls tutorial in web2py. You will get an idea of
> some of the differences.
>
> Anyway, I think both system are great. Spend 15 minutes (no more) with
> each to make up your mind, and stick with it.
>
> Massimo

From: AppRe Godeck on
On Sat, 19 Dec 2009 12:48:07 -0800, Yarko wrote:

> On Dec 19, 12:42 am, AppRe Godeck <a...(a)godeck.com> wrote:
>> Just curious if anybody prefers web2py over django, and visa versa. I
>> know it's been discussed on a flame war level a lot. I am looking for a
>> more intellectual reasoning behind using one or the other.
>
> Chevy or Ford? (or whatever pair you prefer) vi or emacs?
> <pick your favorite two long-lasting world religions>...
>
> These hold one aspect.
>
> Hammer or a saw?
>
> Hold (perhaps) another...
>

tis the nature of man kind to war.

> us.pycon.org, for example, uses both (in reality a mix of the above
> argument sets, but at least evidence of the latter: different tools for
> different problems).
>
> From a rapid prototyping perspective, web2py is heavily data-table
> efficient: that is, you can define a system, and all the app creation,
> form generation and validation have defaults out of the box, and you can
> have a "sense" of your data-centric structure in minutes. The same
> argument can go against ("how do I get it to do exactly what _I_ want it
> to, not what it wants to?") - that is, defaults hide things, and that
> has two edges...
>
> From a layout/user interaction rapid prototyping perspective, web2py is
> just entering the waters...
>

> There is a steady growth of users, and (as you would expect for a young
> framework), a lot of changes going on (although backward compatiblity is
> a constant mantra when considering changes, that too is a double-edged
> thing).
>
> I find web2py useful, fast, and at times / in areas not as evolved /
> flexible as I'd like. BUT I could learn it quickly, and get to work
> quickly.
>
> I have taken an intro Django course (at a PyCon), have built a few
> things with it (not nearly as many as I have w/ web2py), and I _can_ do
> things in it - so I'll let someone else w/ django "miles" under their
> belt speak their mind.
>
> - Yarko

It seems that this is the biggest issue surrounding web2py, from my
research, is the ability to customize the defaults (the easy). If all
web2py offers is default views, then it may be good for proof of concept
projects, however I can't see in my right mind, proofing an application,
and then turning around to write it in django because more than the
defaults is needed.

Thanks for your replies, I was hoping to hear from some django people as
well. Especially if you choose django over web2py, and why.

If you have time to write,

Give a situation where you would prefer to have django over web2py, and
then another situation you would prefer web2py over django, and why.

Why does web2py have classes that represent HTML? I can't see ever
needing to write VIEW code in my controller, since thats what views are
for.

It seems that even though web2py is fast, supports lots of features, the
fact that in the end it gets in the way of doing what you want is it's
downfall. Django, even though requiring more "ground work", this ground
work becomes a solid foundation on which to build your application on.
From: mdipierro on
> Why does web2py have classes that represent HTML? I can't see ever
> needing to write VIEW code in my controller, since thats what views are
> for.

You do not need to use but if, for example, you want to build a menu
recursively, having a server-side presentation of the DOM allows to do
it without string manipulation. It is safer and less error prone.
Anyway, it is not something you must use.

Lots of the features are optional. Like the web based IDE. If you do
not like it, you can use the shell like you use Django.

> It seems that even though web2py is fast, supports lots of
features, the
> fact that in the end it gets in the way of doing what you want is it's
> downfall. Django, even though requiring more "ground work", this ground
> work becomes a solid foundation on which to build your application on.

What do you mean by "gets in the way"? Could you provide an example?

From: Thadeus Burgess on
On Dec 19, 8:39 pm, AppRe Godeck <a...(a)godeck.com> wrote:
> On Sat, 19 Dec 2009 12:48:07 -0800, Yarko wrote:
> > On Dec 19, 12:42 am, AppRe Godeck <a...(a)godeck.com> wrote:
> >> Just curious if anybody prefers web2py over django, and visa versa. I
> >> know it's been discussed on a flame war level a lot. I am looking for a
> >> more intellectual reasoning behind using one or the other.
>
> > Chevy or Ford?  (or whatever pair you prefer) vi or emacs?
> > <pick your favorite two long-lasting world religions>...
>
> > These hold one aspect.
>
> > Hammer or a saw?
>
> > Hold (perhaps) another...
>
> tis the nature of man kind to war.
>
>
>
>
>
> > us.pycon.org, for example, uses both (in reality a mix of the above
> > argument sets, but at least evidence of the latter: different tools for
> > different problems).
>
> > From a rapid prototyping perspective, web2py is heavily data-table
> > efficient: that is, you can define a system, and all the app creation,
> > form generation and validation have defaults out of the box, and you can
> > have a "sense" of your data-centric structure in minutes.   The same
> > argument can go against ("how do I get it to do exactly what _I_ want it
> > to, not what it wants to?") - that is, defaults hide things, and  that
> > has two edges...
>
> > From a layout/user interaction rapid prototyping perspective, web2py is
> > just entering the waters...
>
> > There is a steady growth of users, and (as you would expect for a young
> > framework), a lot of changes going on (although backward compatiblity is
> > a constant mantra when considering changes, that too is a double-edged
> > thing).
>
> > I find web2py useful, fast, and at times / in areas not as evolved /
> > flexible as I'd like.  BUT I could learn it quickly, and get to work
> > quickly.
>
> > I have taken an intro Django course (at a PyCon), have built a few
> > things with it (not nearly as many as I have w/ web2py), and I _can_ do
> > things in it - so I'll let someone else w/ django "miles" under their
> > belt speak their mind.
>
> > - Yarko
>
> It seems that this is the biggest issue surrounding web2py, from my
> research, is the ability to customize the defaults (the easy). If all
> web2py offers is default views, then it may be good for proof of concept
> projects, however I can't see in my right mind, proofing an application,
> and then turning around to write it in django because more than the
> defaults is needed.
>
> Thanks for your replies, I was hoping to hear from some django people as
> well. Especially if you choose django over web2py, and why.
>
> If you have time to write,
>
> Give a situation where you would prefer to have django over web2py, and
> then another situation you would prefer web2py over django, and why.
>
> Why does web2py have classes that represent HTML? I can't see ever
> needing to write VIEW code in my controller, since thats what views are
> for.
>
> It seems that even though web2py is fast, supports lots of features, the
> fact that in the end it gets in the way of doing what you want is it's
> downfall. Django, even though requiring more "ground work", this ground
> work becomes a solid foundation on which to build your application on.

You need to realize that web2py is still a relatively young framework,
issues to certain problems are currently being addressed in web2py.
For example, the DAL is being re-written in a much more modular maner,
allowing the addition of new database backends to be quite seemless.
Other parts of web2py will follow as web2py grows I am sure. I
wouldn't disqualify web2py based off what you read, you really need to
try it for yourself, and if you run into a problem, I'm sure, some way
there is a solution if you bring up the problem, and your problem
might even help web2py to grow to be an even better framework.

I dare you to try developing a web application with both. Spend one
day working on a simple django application, polls, blog, image
gallery, family pet tree, you name it. Then take the next day, and
write the same application with web2py, and you decide. In the end,
both are tools and you need to figure out what is best for YOU.