>>I think web2py is very good for 'Corporate' and 'Enterprise', but perhaps we >>need to be less pretentious and change the slogan for something like:
>>web2py - the getting things done web framework I know much less about web2py than most people here, but I feel compelled to add an opinion. There are many different things that are touched upon in this thread. First is the slogan of web2py. I think the word "enterprise" is a mistake. But at the same time, the attacks that center around this word is very unjustified. For the sake of comparison, let's take a look at the Django's slogan: Webframework for perfectionists with deadlines. Now, you can easily attack this slogan in much the same ways people have attacked Web2py. But most people don't do that. Massimo is not great at PR, so his PR approach is easily prone to attack. But at the same time, a slogan is just a slogan. And yet people unfairly focused on a little slogan repeatedly. That's utterly unfair. Second, let's talk about what it means to be "enterprise". I think a many people tend to make this type of reasoning: (1) I am doing real work, (2) this tool isn't quite the best thing for this work, (3) therefore, it is not "real" (enterprise). I do not agree with this line of reasoning. A tool, any tool, has its limitations and within its boundary of effectiveness it can be as real as any other tool. Drupal, for example, has been used extensively in many big companies to do real things. And yet, Drupal, at its heart, is a CMS, and therefore is not as flexible as something like a webframework. As such the domain of effectiveness of a CMS is smaller than that of a webframework. But when people need to build CMS, Drupal is very effective and *real*. The right word, I think, is "generality". A full stack webframework like web2py is more general than a CMS like Drupal. Thus, it can do more things. Something like Flask is not a full-stack framework, as such, it makes fewer assumptions, and it is more general than a full- stack framework. At the same time, it doesn't have as much batteries. And many will find a full-stack framework more useful in that regards. So to say that because you can not import pieces of a model into an app, therefore web2py is inappropriate for enterprise, is not right. I think many enterprise apps do not have to have highly connected models. There are many other dimensions that are important with respect to what it means to be enterprise, such as scalability, maintainability, etc. And I think that web2py still needs to be proven in this regards. And third, there's a criticism that the internals of web2py is a mess. That might or might not be true. There are a few things I'd like to say in this regards. First, from a user's point of view, this criticism is not very interesting. But this criticism implies indirectly a few things, such as there are many bugs; or it's not easy to add features to web2py. From an outsider's point of view, this is what I see. In terms of man power, web2py has fewer than Django. I think Flask also has a decent number of developers working on it. Web2py has mainly Massimo, who wears many hats; plus maybe 2, 3 other people putting a lot of time into it. And yet, you look at features, there's not much Django has that Web2py doesn't have. Another thing that adding features to Web2py is quite quick. This is what I often see around here. When someone has an idea, Massimo often does it right away. Recently, it took a relatively quick effort for Massimo (and probably a handful of other people) to rewrite DAL completely. Now, going back to the criticism that Web2py's internal is real bad. I am very reluctant to believe that is the case, given all of these I have seen and experienced around here. Having said this, I don't think I am a web2py zealous fan. Trust me, if there are better frameworks, I'd jump in a second. I have perused the Flask/Bottle/Django documentations countless of times, and each time, I just decided they do not yet have what I want. Further, there are a few things I still wish web2py do better. Frankly, one of the design decision that I do not care for too much is the web IDE and backward compatibility (which I think is useful but should not be an absolute). I am looking forward to web3py. I hope Massimo starts this right away, drawing lessons from web2py and other frameworks.