From: AppRe Godeck on
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.
From: Yarko on
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...

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
From: Yarko on
On Dec 19, 2:48 pm, Yarko <yark...(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.
>
> 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...
>
> 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.

Oh and one more thing: I find it dependable (not that snapshots don't
have bugs, but that they are well defined, not "wild", and quickly
fixed - and if you work around them, you can also depend on the system
you've created). FYI, it does the money/registration part of PyCon
(past 2 years).

>
> 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

From: mdipierro on
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/7182692 the 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


Here http://www.vimeo.com/6507384 you 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: mdipierro on
Errata. I said "The dal supports transactions" where I meant "the dal
supports migrations".
Of course it also supports "transactions" as well as "distributed
transactions".


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