On Wednesday, June 7, 2017 at 8:16:38 PM UTC-7, [email protected] wrote:
>
> According to github, there were semi-regular releases going back to 2013, 
> then they stopped about a year ago, so I guess it's only natural for people 
> to wonder about the status of the project. Personally, I'm wondering if the 
> project will continue to build production releases in the future. I see 
> that master still gets some love, so maybe master is now stable for 
> production and I missed it?
>
> Anyhow, thank you for all your work on this framework. I admire the 
> project itself and I think the community speaks for its integrity. I read 
> your post earlier in this thread on your plans for web3py, and I thought I 
> would say that as a web2py user, I loved how it gave me a current version 
> of a few nice libraries and flattened web development into a single Python 
> layer. Basically it gave me a mostly pre-built good-enough web interface 
> and let me get on with the business of developing services for users.
>
>
I agree with this as well.  I haven't been using web2py too long, but one 
of the things I really like about it is how self-contained it is.  Many of 
the other frameworks involve layers of dependencies on all sorts of things 
that make it quite onerous to begin.  web2py shines in that regard.
 

> Your web3py post concedes that the days of the flat development stack are 
> over, and I agree it's unavoidable to use some of the newer JS components 
> and move a lot of the work to the browser. I haven't checked out the stack 
> you've listed in your reply yet, but I'll very likely end up using whatever 
> you put together because I want to keep using helpers, validators and the 
> DAL. I look forward to the day the lineup is stable enough for release, and 
> thanks again for your past work on web2py.
>
>
I think it would be unfortunate for the "flat stack" to disappear 
entirely.  Hopefully a compromise can be reached in which web2py ships (or 
at least can ship) with a bundle of tested-and-verified-to-work-together 
dependencies allowing simple installation.

Just to add my own perspective on the web3py play Massimo outlined: in my 
experience, the main weaknesses in web2py are the "magicness" of the 
import/namespace model, and the lack of comprehensive client/server 
communication tools.  By the first I mean many of the things I've asked 
about (and been graciously helped with) over the past several months.  The 
way that web2py manipulates import paths, executes code per request, and 
populates namespaces automatically (e.g., making names defined in model 
code available in controllers) makes many things convenient.  However, the 
magic underlying this is not fully exposed, meaning that code reuse can 
become difficult if you stray outside the predefined magic boundaries.  
It's difficult, for instance, to create modules that factor out db-centric 
code, because the db object (typically defined in a model file) won't be 
available; this forces you to reimplement the wheel to some extent by 
taking the db-creation code out of a plain model file and put it in a 
function --- which then breaks things like the db-admin tool.  Obviously 
these are complex issues, but in the end I think it would be ideal to find 
a way that makes simple things smooth without making more complex code 
interdependencies quite so painful.  (Importing rather than executing code 
may help in this regard.)

The second weakness is client/server communication.  The web2py view 
template model is great, so telling the client what you want to serve is 
easy.  The problem comes when you want more or less continuous 
back-and-forth communication between client and server.  Most of web2py's 
client/server communication model is based on forms, which require the 
entire page to be reloaded.  While I'm not super gung-ho for "single-page 
apps", I do think that it's essential to facilitate "incremental" or 
"modular" communication between individual page elements and the server.  A 
clear example is validation.  Web2py has an elaborate validation mechanism 
which is quite powerful, but the need to submit an actual form makes it 
rather ponderous for situations where you want a "form" as just part of a 
page.  For instance, if you have a login form as a small box in the corner 
of a content page, you really want stuff like email validation to happen 
without a page reload.  It still needs to talk to the server, but it should 
be doing it with per-item AJAX.  I do think, though, that this is something 
that could be added to the existing web2py without requiring a wholesale 
rewrite; it basically amounts to adding more full-featured client-side 
tools, with linkups to the server, so that instead of using SQLFORM or 
whatever you can just have a series of <INPUT> elements in a view along 
with a {{=submitAjax}} or something that causes them to do their thing 
independent of the rest of the page.  The "components" model seems to be 
something along these lines but from what I see it is still a good deal 
less comprehensive than the whole form/validator mechanism available to 
"real" forms.

I've become quite a fan of web2py in the last year or two that I've been 
using it and hope to see it continue forward!

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to