Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
From my perspective, web2py style is very much influenced by its functional approach and the usage of functors. This gives a great amount of tools to new comers, but can be problmematic with experienced programmers that have been working with a COO (class object oriented: read java) language. I have a bit of experience with OO (truly object oriented) languages besides python, such as lisp or scheme so I feel web2py confortable. But with java experience and being used to the define Interface, define Class, define Subclass of Class, instanciate Object and so on, I understand that it is not clear how and where you can do that. Maybe it is just a matter of documentation, a Library Reference distinct from a Tutorial ? Other python frameworks stick to COO so maybe more people feel confortable, and have a API or Library Reference? mic 2011/1/10 Anthony abasta...@gmail.com: On Sunday, January 9, 2011 4:49:45 PM UTC-5, pbreit wrote: For one, I don't think businesses care much about backwards compatibility. My experience in the enterprise was that vendors were constantly churning out non-backwards-compatibile updates and customers were routinely several versions behind. Maybe they remain several versions behind because they don't want to keep dealing with backwards-incompatible upgrades (i.e., skip a few versions and just deal with an occasional big incompatible change). The cool thing about web2py is you can take advantage of every new feature that comes out (every couple weeks) without breaking your programs.
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I believe this is why web2py receives much criticism. I speak from experience in using (and contributing to) web2py. web2py cannot share objects in an importable namespace with other python applications ecause of its design architecture. This is an absolute requirement for most enterprise or real world applications. Two examples. (however there are many more than I have time to iterate over) Exhibit A: Multiple websites that share some or all database models and utility functions. A public site may use only some of the models needed for say user signup, and a dashboard that may be IP restricted for internal use only. Exhibit B: Must share database models with stand alone python programs. A long running process that sits in the background, but needs access to the database. web2py cannot do either of these, and unless web2py uses import it will never be able to. Currently, to accomplish exhibit A or B, code spaghetti-fication must occur, and maintainance of model definitions in multiple places now becomes a royal pain in the ass. That or you must use some of the other many (unprofessional, hard to maintain) hacks just to work around this limitation. With other frameworks, such as flask/sqlalchemy it is a python program like anything else. You can do from dashboard.models import person. You only maintain one model, but you can use it in all applications that may need it, since you can easy_install your site into a virtualenv. Another issue that I have ran into more often than not is the limitations in the web2py core. Certain things (like SQLForm, auth, sessions, etc) are great for rapid prototyping, but when you actually need to do something real with them, they just get in the way. For example, a form that has a subform or a built in subtable (like a form you might build in Access), or cookie stored sessions for scalability. Again, these are just simple examples when the real world implementation is much more complex. Another problem that the current design of web2py inherently brings is it enforces a functional programming style. You can use classes, but then you end up having to throw pointers around of your basic objects (db, session, etc). Using classes the way they are designed to be used with a normal object lifecycle (imported, instantiated, etc...) is extemely difficult to do in web2py. There is nothing wrong with functional programming, but the code can easily become a mess even if you are a good programmer. Just to give an example of how amazing a class based system is, I re-wrote appadmin for Flask+SQLAlchemy+WTForms in 80 lines of python code, with pagination, searching, creating, updating, and deleting. Think of how maintainable that is. I don't even know what is going on inside of web2pys appadmin... I try to stay away from it *wink*. One of the biggest arguments vs other frameworks is the speed of development time of a web2py app vs other framework. I disagree with this, I am usually able to add new features to my flask apps much faster than I can in web2py. This is probably due to the simplicity of other frameworks and not having to fight with anything being pre-determined for me (such as database tables forced to lowercase). As long as all your doing is building a simple website that will be completely 100% self contained into web2py and it isn't expected to grow over 10K lines of python code, web2py is great. If you are doing something that requires code to be shared, and has lots of complex models and a large codebase that will need to be maintained by other people than yourself in the future... I would pick Flask. I speak most of this from real world experience. I work in both web2py and flask every single day and know the strengths and weaknesses of both. I just wanted to take the time to chime in as to why some feel they way they do with web2py... maybe they just don't know how to explain it, or don't want to take the time to explain it. -- Thadeus On Sat, Jan 8, 2011 at 8:34 AM, Anthony abasta...@gmail.com wrote: On Saturday, January 8, 2011 9:12:55 AM UTC-5, Anthony wrote: +1 On Saturday, January 8, 2011 7:31:38 AM UTC-5, cjrh wrote: On Jan 7, 11:45 pm, Michele Comitini miche...@gmail.com wrote: I think the most misunderstood fact with web2py is that web2py implementation is improving every day, Do you really think the designers of other web frameworks do not understand how web2py works? They definitely understand, and they probably understand better than you or I. The problem is that web2py design is different from their own design. Because we operate in the same space, they try to show why their decisions are better. To be fair, Massimo has been doing exactly the same thing by comparing w2py versus the others for years. Quid pro quo. If we get to say why ours is better, then they get to do likewise. Good point, though it's not exactly the same. Massimo may claim that the web2py way is better (actually, he doesn't really make that
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
This is my prospective: Everything has a trade off. We want the ability to edit files via the web interface and see the effect of the change immediately, even on a production system using apache. That is not possible using imports. Django and Flask provide a module reload mechanism. That works only if/when they use a python based web server (not production solution) and it can lead to problems. If we did not execute models/controllers at every request something like this: db.define_table('table',Field('field',default=request.now)) would not work any more because the define would be executed only once before the http request exists. request.now would have to a lazy object (thus introducing complexity) or moved to every action that needs it (this introducing repetition). Thanks to your work (Thadeus) about template.py and the new dal, most of web2py modules can now be used with other frameworks. If you do not want the web2py way (i.e. models/controllers are not modules), you can still use all of the web2py helpers, validators, dal, template language, etc with the dispatcher of any other frameworks. The current design is not an accident. It was a choice to differentiate from what others do. This forum is about web2py and web2py is defined by its current design. Changing that design would break backward compatibility and it would not be web2py any more. As I said multiple times, there may be a web3py and it may very well have a different architecture. Although for me the issue is not whether to use exec or not. The issue is whether to use Python at all given its scalability problems on multicore and the lack of a proper garbage collection. I am very much open to a discussion on web3py (it is inevitable since python 3.x broke backward compatibility anyway) but I am not sure it belongs to this mailing list. Massimo On Jan 9, 4:41 am, Thadeus Burgess thade...@thadeusb.com wrote: I believe this is why web2py receives much criticism. I speak from experience in using (and contributing to) web2py. web2py cannot share objects in an importable namespace with other python applications ecause of its design architecture. This is an absolute requirement for most enterprise or real world applications. Two examples. (however there are many more than I have time to iterate over) Exhibit A: Multiple websites that share some or all database models and utility functions. A public site may use only some of the models needed for say user signup, and a dashboard that may be IP restricted for internal use only. Exhibit B: Must share database models with stand alone python programs. A long running process that sits in the background, but needs access to the database. web2py cannot do either of these, and unless web2py uses import it will never be able to. Currently, to accomplish exhibit A or B, code spaghetti-fication must occur, and maintainance of model definitions in multiple places now becomes a royal pain in the ass. That or you must use some of the other many (unprofessional, hard to maintain) hacks just to work around this limitation. With other frameworks, such as flask/sqlalchemy it is a python program like anything else. You can do from dashboard.models import person. You only maintain one model, but you can use it in all applications that may need it, since you can easy_install your site into a virtualenv. Another issue that I have ran into more often than not is the limitations in the web2py core. Certain things (like SQLForm, auth, sessions, etc) are great for rapid prototyping, but when you actually need to do something real with them, they just get in the way. For example, a form that has a subform or a built in subtable (like a form you might build in Access), or cookie stored sessions for scalability. Again, these are just simple examples when the real world implementation is much more complex. Another problem that the current design of web2py inherently brings is it enforces a functional programming style. You can use classes, but then you end up having to throw pointers around of your basic objects (db, session, etc). Using classes the way they are designed to be used with a normal object lifecycle (imported, instantiated, etc...) is extemely difficult to do in web2py. There is nothing wrong with functional programming, but the code can easily become a mess even if you are a good programmer. Just to give an example of how amazing a class based system is, I re-wrote appadmin for Flask+SQLAlchemy+WTForms in 80 lines of python code, with pagination, searching, creating, updating, and deleting. Think of how maintainable that is. I don't even know what is going on inside of web2pys appadmin... I try to stay away from it *wink*. One of the biggest arguments vs other frameworks is the speed of development time of a web2py app vs other framework. I disagree with this, I am usually able to add new features to my flask apps much faster than I can in
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
So I guess the question remains: is Web2py suitable for large, public web sites or does it max out as a rapid prototyper and smaller intranet type sites?
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I do not think this discussion has anything to do with it. This is a scalability issue and web2py scales as well as any of the other web frameworks. The issue is whether people like or not the programming style. If you like it you use web2py. If you do not like it you use something else. On Jan 9, 11:24 am, pbreit pbreitenb...@gmail.com wrote: So I guess the question remains: is Web2py suitable for large, public web sites or does it max out as a rapid prototyper and smaller intranet type sites?
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
2011/1/9 pbreit pbreitenb...@gmail.com So I guess the question remains: is Web2py suitable for large, public web sites or does it max out as a rapid prototyper and smaller intranet type sites? http://www.web2py.com/poweredby (this site has not every web2py powered site around the globe, people needs to update) To point few of these sites: http://www.web2py.com/poweredbySahanaEden, RadBox, TenthRow, Ru.ly, Campus Online, Latinux, Paraiba Brazilian State Government, NatalAnimal (My non profit e-commerce like website), The list above is not about prototype or intranet websites. Also, at my tiny company ( blouweb.com ) we are working only with web2py development, in one year of existence we are making our lives working only with web2py (developing and training) Besides the public websites and intranets, we are developing some corporate systems. Some of them are in production already, for more than 6 months and we are having a great experience. I also working a lot giving web2py classes (in-company) , and for example one of the biggest state-company of Brazil are getting trained and developing internal solutions with web2py. Now, we are in the way to sign a contract to develop a financial system for one of the São Paulo stock-exchange companies. 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 -- Bruno Rocha http://about.me/rochacbruno/bio
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
Bruno, Pbreit, the discussion was starting to get really interesting, please don't let it go OT
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I really reminds me situation I started to work with PlayFramework a few years ago. Its excelent JAVA web framework, but its done in completely(internaly) different way than how the rest of the JAVA frameworks being done(using standard servlet concept). The developers of Play! have a nice section on their site(under FAQ) called: You guys don’t even know how to program in Java... and they are trying to explain here why they did many things in a very different way in many areas that others describe as it is against a good JAVA practices http://www.playframework.org/documentation/1.1/faq David
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
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.
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I think Massimo hit it on the spot. Its about coding style. Most of the people I see giving web2py criticism are young. Considering that beginning in about 2001 colleges starting only teaching java and handing out degrees, it might be safe to assume that most of these guys knew Java as their first language. Not to mention that someone who went to school for 4 years for software engineering will have been uniquely tuned to a specific coding style (object oriented). I like web2py, and I do have uses for it on a daily basis to accomplish real world work. I use web2py alot to provide a web based access to automating statistical analysis. Usually these type of apps need to change often and can even change drastically, which is why I like web2py for them. -- Thadeus On Sun, Jan 9, 2011 at 1:46 PM, VP vtp2...@gmail.com wrote: 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
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I don't buy the problem with integrating enterprise systems. Components should be more loosely coupled. I do wonder about the balance between the features that make Web2py great for rapid prototyping vs what you would need to do in the real world. But it seems to me that the productivity features are not required and that Web2py offers sufficient flexibility. I'm not experienced enough to weigh-in on the functional vs object programming discussion.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
About enterprise: For me enterprise always meant business and non-profit as a way to emphasize non-profit since that is what I have major interest in. It looks like many people read enterprise as large and bloated businesses. I have nothing against changing the slogan (and we have have a poll like we did for the logo) but I stand by original intention: web2py targets businesses and non-profits as opposed to the occasional hacker. I claim this because our goals are backward compatibility, easy of development and security. Other frameworks like those that require programming at the WSGI level and release a new version under a different name every six months, seem to target python experts with above average hacking abilities. I also want to challenge the notion that I am the only web2py developer. If you look at commits in the last 6 months, there has been way more code contributed by Jonathan, for example, than by me. The new template.py was written entirely by Thadeus. A lof of the code from contrib was created by Mariano. It is true that I have know web2py longer than other and I may know some inner working details better than other, but for every web2py module, there is somebody who know is at least as well than me if not better. Massimo On Jan 9, 1:46 pm, VP vtp2...@gmail.com wrote: 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
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
Interesting points. One thing I don't understand is the objection to the web IDE since it is 100% optional. Could it be presented differently so that people understand that instantly? I like the commitment to backwards compatibility. Are there any good examples of things that would be worth changing or adding that would break backwards compatibility? A subtle but significant benefit of backwards compatibility is that it forces restraint and good design.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
It might make sense to dropt enterprise from the slogan. For one, I don't think businesses care much about backwards compatibility. My experience in the enterprise was that vendors were constantly churning out non-backwards-compatibile updates and customers were routinely several versions behind. I also don't think enterprise suggests non-profit. Perhaps the opposite, even. Finally, I think it's fine to attract the hacker audience.
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
web2py - the resilient web framework ;-)
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Jan 9, 2011, at 1:35 PM, Massimo Di Pierro wrote: About enterprise: For me enterprise always meant business and non-profit as a way to emphasize non-profit since that is what I have major interest in. It looks like many people read enterprise as large and bloated businesses. I think that's right, especially in the world of frameworks. The meaning of enterprise here has been established (polluted?) by Enterprise Java, which is a large and bloated framework (or pile of frameworks). (Java is the new Cobol.) I understand what you mean by enterprise, but it's definitely not what readers are going to understand. At the moment, I don't have a better idea. But I'm sure we can come up with one. I have nothing against changing the slogan (and we have have a poll like we did for the logo) but I stand by original intention: web2py targets businesses and non-profits as opposed to the occasional hacker. I claim this because our goals are backward compatibility, easy of development and security. Other frameworks like those that require programming at the WSGI level and release a new version under a different name every six months, seem to target python experts with above average hacking abilities. I also want to challenge the notion that I am the only web2py developer. If you look at commits in the last 6 months, there has been way more code contributed by Jonathan, for example, than by me. The new template.py was written entirely by Thadeus. A lof of the code from contrib was created by Mariano. It is true that I have know web2py longer than other and I may know some inner working details better than other, but for every web2py module, there is somebody who know is at least as well than me if not better.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
as david said, play! destroyed the traditional java -web app- programming. it doesn't use servlets so it is extremely flexible. it doesn't use maven, it uses python. it doesn't use jsp views, it is using a template system built with groovy, and so forth. there are lots of people using play!, contributing to play! and supporting play! they stand for it. i do not support the elitist criticism on reddit against web2py. these guys, especially armin*, have a thing against web2py for a long time now. web2py is not a library, its a platform where and what people build web applications with. however the criticism by thadeus must be taken very seriously as he is one of the oldest, most experienced and top contributed web2py users. * i like armin's work, especially werkzeug and pygments. however nothing more. On Jan 9, 8:38 pm, David Marko dma...@tiscali.cz wrote: I really reminds me situation I started to work with PlayFramework a few years ago. Its excelent JAVA web framework, but its done in completely(internaly) different way than how the rest of the JAVA frameworks being done(using standard servlet concept). The developers of Play! have a nice section on their site(under FAQ) called: You guys don’t even know how to program in Java... and they are trying to explain here why they did many things in a very different way in many areas that others describe as it is against a good JAVA practices http://www.playframework.org/documentation/1.1/faq David
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Sunday, January 9, 2011 4:49:45 PM UTC-5, pbreit wrote: For one, I don't think businesses care much about backwards compatibility. My experience in the enterprise was that vendors were constantly churning out non-backwards-compatibile updates and customers were routinely several versions behind. Maybe they remain several versions behind because they don't want to keep dealing with backwards-incompatible upgrades (i.e., skip a few versions and just deal with an occasional big incompatible change). The cool thing about web2py is you can take advantage of every new feature that comes out (every couple weeks) without breaking your programs.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Jan 7, 11:45 pm, Michele Comitini michele.comit...@gmail.com wrote: I think the most misunderstood fact with web2py is that web2py implementation is improving every day, Do you really think the designers of other web frameworks do not understand how web2py works? They definitely understand, and they probably understand better than you or I. The problem is that web2py design is different from their own design. Because we operate in the same space, they try to show why their decisions are better. To be fair, Massimo has been doing exactly the same thing by comparing w2py versus the others for years. Quid pro quo. If we get to say why ours is better, then they get to do likewise. However, these subjective discussions simply don't matter. The things that they complain about are *fundamental* to how web2py works, and that is why these topics are selected for ridicule. It is fundamental to w2py that controllers are executed by the framework (and IMO its best feature, and why I chose it over Django). Whether this approach is better or worse than any other framework cannot be determined theoretically, it has be be shown in practice, and we just haven't been seeing the kind of problems that detractors have been suggesting. And really, it's been getting ridiculous. Jacob KM suggesting we're not a python framework and inviting us to join the party. Such incredible arrogance. web2py doesn't have to win reddit arguments. All web2py has to do is support the creation of many awesome websites. We only need to maintain focus on the core design criteria that have already been in place since the start. We do not need to have a huge community. We do not need to be the next big thing. We do not have to slice toast and make coffee or rear ponies. Just be the best at making web app creation fast, easy and secure.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
+1 On Saturday, January 8, 2011 7:31:38 AM UTC-5, cjrh wrote: On Jan 7, 11:45 pm, Michele Comitini michele@gmail.com wrote: I think the most misunderstood fact with web2py is that web2py implementation is improving every day, Do you really think the designers of other web frameworks do not understand how web2py works? They definitely understand, and they probably understand better than you or I. The problem is that web2py design is different from their own design. Because we operate in the same space, they try to show why their decisions are better. To be fair, Massimo has been doing exactly the same thing by comparing w2py versus the others for years. Quid pro quo. If we get to say why ours is better, then they get to do likewise. Good point, though it's not exactly the same. Massimo may claim that the web2py way is better (actually, he doesn't really make that strong claim -- rather, I think he would claim that there are trade-offs in design and that he and many others prefer the trade-offs web2py has made while still respecting that others may prefer different trade-offs). But I don't think I've seen Massimo claim that the design decisions of frameworks like Django and Flask are actually bad or harmful. In fact, he usually has quite positive things to say about other frameworks. The guys on reddit, on the other hand, are claiming that web2py's design decisions are outside the bounds of acceptability (at least within the Python world) and therefore merit either correction or ostracism (in fact, Jacob is not the first guy I've seen try to expunge web2py from the community by claiming it's not really a Python framework and doesn't use real Python). Basically, Massimo is saying Django, Flask, etc. are all good frameworks that you'll probably be happy with, but web2py is even better, and you should give it a try. The other guys are saying Django, Flask, etc. are the only real Python frameworks, and web2py is harmful (technically, and to the community) and to be avoided at all costs (until it completely changes its fundamental design distinctives and does things the way they do). Cheers. Anthony
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Saturday, January 8, 2011 9:12:55 AM UTC-5, Anthony wrote: +1 On Saturday, January 8, 2011 7:31:38 AM UTC-5, cjrh wrote: On Jan 7, 11:45 pm, Michele Comitini miche...@gmail.com wrote: I think the most misunderstood fact with web2py is that web2py implementation is improving every day, Do you really think the designers of other web frameworks do not understand how web2py works? They definitely understand, and they probably understand better than you or I. The problem is that web2py design is different from their own design. Because we operate in the same space, they try to show why their decisions are better. To be fair, Massimo has been doing exactly the same thing by comparing w2py versus the others for years. Quid pro quo. If we get to say why ours is better, then they get to do likewise. Good point, though it's not exactly the same. Massimo may claim that the web2py way is better (actually, he doesn't really make that strong claim -- rather, I think he would claim that there are trade-offs in design and that he and many others prefer the trade-offs web2py has made while still respecting that others may prefer different trade-offs). But I don't think I've seen Massimo claim that the design decisions of frameworks like Django and Flask are actually bad or harmful. In fact, he usually has quite positive things to say about other frameworks. The guys on reddit, on the other hand, are claiming that web2py's design decisions are outside the bounds of acceptability (at least within the Python world) and therefore merit either correction or ostracism (in fact, Jacob is not the first guy I've seen try to expunge web2py from the community by claiming it's not really a Python framework and doesn't use real Python). Basically, Massimo is saying Django, Flask, etc. are all good frameworks that you'll probably be happy with, but web2py is even better, and you should give it a try. The other guys are saying Django, Flask, etc. are the only real Python frameworks, and web2py is harmful (technically, and to the community) and to be avoided at all costs (until it completely changes its fundamental design distinctives and does things the way they do). Cheers. Anthony Also, you are right that many of the web2py detractors do probably understand at least at a high level how web2py works, but I've been very surprised at how frequently these supposed experts exhibit complete misconceptions about web2py. Most of them have never used web2py to build a real application, and many of them have probably never even downloaded it and played with it (or read the docs, or looked at the source code). I am by no means an expert and am relatively new to both Python and web2py, and yet I routinely spot (and point out) very basic errors these guys make in their understanding of web2py. If they can't be bothered to comprehend the very basic things that even I know, their opinions about web2py really can't be taken seriously. The problem isn't that they don't know web2py, it's that they're willing to make such bold proclamations about it despite their ignorance and lack of experience with it. The fact that web2py has been around for several years and has a growing, active, and highly satisfied user base provides them no clue that perhaps their hypothetical concerns don't play out in reality. Anthony
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I think we could do ourselves a favor by taking the feedback seriously and not being so dismissive of criticism. There are pros and cons of the various approaches and we happen to think Web2py's design decisions have good merit. Hiding behind DRY for the importing situation is not productive. The reality is that it is a relatively non-standard approach but one that we think makes good sense and is certainly real Python. It's fine to get the word out but let's not look like trolls on every Python framework thread. There is still a dearth of significant Web2py-based sites. Let's work on that.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Saturday, January 8, 2011 9:53:18 AM UTC-5, pbreit wrote: I think we could do ourselves a favor by taking the feedback seriously and not being so dismissive of criticism. There are pros and cons of the various approaches and we happen to think Web2py's design decisions have good merit. Hiding behind DRY for the importing situation is not productive. The reality is that it is a relatively non-standard approach but one that we think makes good sense and is certainly real Python. You are right, though I think we have indeed adopted the very position you state above. What is being dismissed are not the reasonable criticisms or concerns that some people make, but the arrogant and over-the-top calls to drive web2py from the Python community. We should always listen to feedback and be willing to learn from others. Anthony
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Jan 7, 2:12 am, Mariano Reingart reing...@gmail.com wrote: I know that in your mind skipping imports is about not repeating yourself. But look guys: every single other Python program ever written uses imports. By not including them you've basically made sure that learning web2py is different from learning Python. Excessive desire to see all import statements comes from (OCD) fear. Fear leads to hate. Hate leads to the dark side :) My 2c is that guys like Jacobian are really, really scared of web2py, and want to kill it now before it grows bigger. Otherwise, they wouldn't go out of their way to write these huge posts about it.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
Jacobian made a few bogus statements. One is about imports. In fact, you don't need to import anything to use Python globals or primitive data structures. Why? because those primitives structures are so useful and often used that they are automatically imported for use. This is conceptually similar about the Web2py primitives. These primitives are so often used that there are automatically imported. Another bogus statement is about web2py is harder to learn. Now. Jacob is a very smart guy with proven records. But he doesn't have a record of being a teacher, one that Massimo has. I think it is this experience that Massimo understands better what it is easy or difficult for beginners to learn. Personally, I have two Django books in my bookshelf, but I eventually gave up Django to look for other options that did waste my time. A little more objective, if people pay attention to the tweets, there are lots of beginners who love web2py and find it so easy to learn. The most outrageous thing that comes out of Jacob and some other folks is this mentality that Python experts will look down to you if you use web2py or sure, beginners love web2py because they are beginners. These guys seem to have no clue about the increasingly pervasive nature of computing in society today. There are many very smart and intelligent beginners who know little about web frameworks or even Python. They simply look for tools to develop their ideas. In fact, you see many scientists and researchers who write programs and develop webapps (in particular). My thinking is in the short future many more (smart) people who will be writing programs, naturally. They will look for tools that in the easiest manner facilitate the creation of what they want to do. It is very unfortunately that these young and smart guys are trapped in their narrow world. So much group-think. So narrow-minded. My advice again is simply to ignore them. As I said in a previous post, as long as you mention Flask, Django in the same breath as web2py, it's going to be a negative experience.
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
Indeed. Moreover, while it's not best practice, it's certainly common enough to see from somewhere import * which magically injects a bunch of names into the namespace. Your suggestion that web2py simply has a small set of built-ins strikes me as right on. For exemple from gluon.tools import * in db.py. :)
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
+1 On Friday, January 7, 2011 3:18:55 AM UTC-5, VP wrote: Jacobian made a few bogus statements. One is about imports. In fact, you don't need to import anything to use Python globals or primitive data structures. Why? because those primitives structures are so useful and often used that they are automatically imported for use. This is conceptually similar about the Web2py primitives. These primitives are so often used that there are automatically imported. Another bogus statement is about web2py is harder to learn. Now. Jacob is a very smart guy with proven records. But he doesn't have a record of being a teacher, one that Massimo has. I think it is this experience that Massimo understands better what it is easy or difficult for beginners to learn. Personally, I have two Django books in my bookshelf, but I eventually gave up Django to look for other options that did waste my time. A little more objective, if people pay attention to the tweets, there are lots of beginners who love web2py and find it so easy to learn. The most outrageous thing that comes out of Jacob and some other folks is this mentality that Python experts will look down to you if you use web2py or sure, beginners love web2py because they are beginners. These guys seem to have no clue about the increasingly pervasive nature of computing in society today. There are many very smart and intelligent beginners who know little about web frameworks or even Python. They simply look for tools to develop their ideas. In fact, you see many scientists and researchers who write programs and develop webapps (in particular). My thinking is in the short future many more (smart) people who will be writing programs, naturally. They will look for tools that in the easiest manner facilitate the creation of what they want to do. It is very unfortunately that these young and smart guys are trapped in their narrow world. So much group-think. So narrow-minded. My advice again is simply to ignore them. As I said in a previous post, as long as you mention Flask, Django in the same breath as web2py, it's going to be a negative experience.
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
On Jan 7, 2011, at 2:15 AM, puercoespin wrote: Indeed. Moreover, while it's not best practice, it's certainly common enough to see from somewhere import * which magically injects a bunch of names into the namespace. Your suggestion that web2py simply has a small set of built-ins strikes me as right on. For exemple from gluon.tools import * in db.py. :) Exactly right. I've removed a few of those, but it's tedious work. I've been using pyflakes as a quick check on my Python coding. Pyflakes is very handy, but it's also fairly simpleminded. If you say from gluon.tools import *, it doesn't look in gluon.tools to see what that might mean; it just turns off its search for undefined symbols. So to get its benefit, you have to fix the import *. For the same reason, a lot of my code starts out with: if False: import request, response, session, T, (etc) OTOH, pyflakes has built-in knowledge of built-in Python globals. One of the things that the web2py-imports discussion tends to miss, though, is that the web2py globals exist precisely because they're *not* globals--they have request scope, not global scope. They can't be imported (in a straightforward way, anyway), and it would be a PITA to have to pass them around everywhere. That would have been an alternative strategy for web2py: every argument list starts with the request-global, which would include all that stuff.
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
After being offended by web2py being in Pycon, they made a major attack on reddit, raised a bunch of lies. Alarmed against web2py on twitter (they managed to enter to the top tweets) and this created a certain discomfort. Some of my clients (two of them) called me asking for explanations about it. (Interestingly, after my explanation they seem much more confident) Moreover two new possible new clients came to me today (one by experts4solutions), one of them commented about the topic and the tweets, so it awakened interest to evaluate web2py to a new small project. A company that offers online training came to me asking me to submit a web2py training to their program, they think web2py is trendy and many people are talking about it on the web, then it is a good time to offer training. thanks to @jacob, @armin, @GrahamDumpleton and @benbangert and others. They promote web2py! After that: @jacob decide to escape from threads (leaving unanswered questions) http://twitter.com/#!/jacobian/status/23138026796355584 @Mike slept upset http://twitter.com/#!/zzzeek/status/23160805851668480 http://twitter.com/#!/zzzeek/status/22788155665031168 and @armin still wants to propose a PEP which tends to remove the execfile() statement from Python2.x language. LOL http://twitter.com/#!/mitsuhiko/status/23082854590185472 http://twitter.com/#!/mitsuhiko/status/23089568890753025 I love this community... :) Please: Don't call me Pythonic I never wrote a PEP.. LOL http://twitter.com/#!/jacobian/status/23138026796355584-- Bruno Rocha http://about.me/rochacbruno/bio
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
Gosh I am glad I can share about web2py in with my country's php, django and rails programmers without all this nonsense. On Jan 7, 11:40 pm, Bruno Rocha rochacbr...@gmail.com wrote: After being offended by web2py being in Pycon, they made a major attack on reddit, raised a bunch of lies. Alarmed against web2py on twitter (they managed to enter to the top tweets) and this created a certain discomfort. Some of my clients (two of them) called me asking for explanations about it. (Interestingly, after my explanation they seem much more confident) Moreover two new possible new clients came to me today (one by experts4solutions), one of them commented about the topic and the tweets, so it awakened interest to evaluate web2py to a new small project. A company that offers online training came to me asking me to submit a web2py training to their program, they think web2py is trendy and many people are talking about it on the web, then it is a good time to offer training. thanks to @jacob, @armin, @GrahamDumpleton and @benbangert and others. They promote web2py! After that: @jacob decide to escape from threads (leaving unanswered questions)http://twitter.com/#!/jacobian/status/23138026796355584 @Mike slept upsethttp://twitter.com/#!/zzzeek/status/23160805851668480 http://twitter.com/#!/zzzeek/status/22788155665031168 and @armin still wants to propose a PEP which tends to remove the execfile() statement from Python2.x language. LOLhttp://twitter.com/#!/mitsuhiko/status/23082854590185472 http://twitter.com/#!/mitsuhiko/status/23089568890753025 I love this community... :) Please: Don't call me Pythonic I never wrote a PEP.. LOL http://twitter.com/#!/jacobian/status/23138026796355584-- Bruno Rochahttp://about.me/rochacbruno/bio
[web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
These guys seem to have no clue about the increasingly pervasive nature of computing in society today. There are many very smart and intelligent beginners who know little about web frameworks or even Python. They simply look for tools to develop their ideas. In fact, you see many scientists and researchers who write programs and develop webapps (in particular). My thinking is in the short future many more (smart) people who will be writing programs, naturally. They will look for tools that in the easiest manner facilitate the creation of what they want to do. I just want to second this point. I fit this description. I'm a business guy, and no part of my job description would mention setting up databases or writing software, but often software is a way to increase efficiency dramatically, even if it's just a VB script in Excel to automate some repetitive or complex task. I recognized that my team would benefit a lot if we had a gold copy of certain data in a database accessible to everyone (with normal CRUD features and some canned ways of presenting it). In the past, I would have thrown together a MS Access DB, but I realized that a web-based app would be far better, and that the web frameworks out there would make that equally as easy to put together. I took some CS classes in college (15 years ago) and wrote a decent amount of code back then (Fortran, Lisp, C) but had never used Python nor had I ever done any web-related development (heck, I even had to brush up on HTML!) before deciding to set this up. After looking around at frameworks (with the most time spent on Django including some initial app prototyping), I chose web2py. It was a no- brainer, because it was very easy to get started with, and yet as far as I can tell, there is nothing that I cannot do in web2py that I could do, or could do easier, in any other framework. I taught myself Python to use web2py, and I put together an app that we now use in production in our firm. It was a nights and weekends project, and it took longer than it should have because of my inexperience, but in the grand scheme of things it took very little effort relative to the value it created. Web2py is to me the next generation of MS Access, and I mean that as a compliment. MS Access first opened up the world of database-driven applications to business people. With Access they could throw together a simple application to manage a database (CRUD and reports) without having to hire a developer or wait on their IT staff to write one. Web2py does the same thing. It is easy enough for a business user to throw something together very quickly and be up and running immediately. The amount of development expertise required is trivial. For a basic app, if you read the web2py book, you don't even have to understand more than the very basics of python. For really, big complex apps, there may be some reason that Django is preferable - I'll leave that to the professional web developers to figure out the tools they need - but I can't say enough about how great my experience has been with web2py, as a non-developer looking for the tools that in the easiest manner facilitate the creation of what I want to do (to use your words). I just needed to get stuff done, and web2py worked.
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
Hi Philip, On 07/01/11 18:17, Philip wrote: Web2py is to me the next generation of MS Access, and I mean that as a compliment. MS Access first opened up the world of database-driven applications to business people. With Access they could throw together a simple application to manage a database (CRUD and reports) without having to hire a developer or wait on their IT staff to write one. Web2py does the same thing. It is easy enough for a business user to throw something together very quickly and be up and running immediately. The amount of development expertise required is trivial. For a basic app, if you read the web2py book, you don't even have to understand more than the very basics of python. +1 I'm database developer (going back to DataEase for DOS and FoxPro, and the IBM S/26) in need of a data-driven front end, and I see web2py as the perfect tool for me. I have no desire to tinker /inside/ web2py - I just want to use it to develop apps. Rather than competing with Django /et al/, which are defined as much by a culture as the technology, I'd like to see some advocacy to promote web2py to people who simply aren't in a position to use Django, but who can get up to speed with web2py very easily. The comment earlier about Massimo's approach being informed by his teaching experience seemed very sharp to me. For really, big complex apps, there may be some reason that Django is preferable - I'll leave that to the professional web developers to figure out the tools they need - but I can't say enough about how great my experience has been with web2py, as a non-developer looking for the tools that in the easiest manner facilitate the creation of what I want to do (to use your words). I just needed to get stuff done, and web2py worked. Just so. -- Cheers, PhilK
Re: [web2py] Re: ADVOCACY: every single other Python program ever written uses imports?
I think the most misunderstood fact with web2py is that web2py implementation is improving every day, because of TOP-DOWN approach choosen by Massimo. What does that mean? If someone finds that something has big impact on perfomace, web2py gets changed to better and the users can upgrade safely, because the external simple API of the framework does not change. So critics are welcome, the more the better. exec ccode in is not injection? It is IoC for sure. http://en.wikipedia.org/wiki/Inversion_of_control where is it deprecated? I cannot read it. http://docs.python.org/reference/simple_stmts.html#the-exec-statement remove exec ... in ... from python? On what basis? if you want a static language go out of python. I wonder what GVR thinks about that. The only good reasons at the moment to change that are: 1) exec statement bug 2) drastic performance improvement Neither is true AFAIK, but maybe web2py's IoC will change, for testing and debugging purposes, this is free (not as a beer) software indeed, so a new solution would be adopted if one comes with a better one instead of talking about plain aesthetics, which is a good thing although it is not alway viable in this world. But if that would happen fear not, we won't notice, we will not have to change our code. mic/mcm 2011/1/7 Philip Kilner phil.kil...@gmail.com: Hi Philip, On 07/01/11 18:17, Philip wrote: Web2py is to me the next generation of MS Access, and I mean that as a compliment. MS Access first opened up the world of database-driven applications to business people. With Access they could throw together a simple application to manage a database (CRUD and reports) without having to hire a developer or wait on their IT staff to write one. Web2py does the same thing. It is easy enough for a business user to throw something together very quickly and be up and running immediately. The amount of development expertise required is trivial. For a basic app, if you read the web2py book, you don't even have to understand more than the very basics of python. +1 I'm database developer (going back to DataEase for DOS and FoxPro, and the IBM S/26) in need of a data-driven front end, and I see web2py as the perfect tool for me. I have no desire to tinker /inside/ web2py - I just want to use it to develop apps. Rather than competing with Django /et al/, which are defined as much by a culture as the technology, I'd like to see some advocacy to promote web2py to people who simply aren't in a position to use Django, but who can get up to speed with web2py very easily. The comment earlier about Massimo's approach being informed by his teaching experience seemed very sharp to me. For really, big complex apps, there may be some reason that Django is preferable - I'll leave that to the professional web developers to figure out the tools they need - but I can't say enough about how great my experience has been with web2py, as a non-developer looking for the tools that in the easiest manner facilitate the creation of what I want to do (to use your words). I just needed to get stuff done, and web2py worked. Just so. -- Cheers, PhilK