mirror of
https://github.com/not-kennethreitz/convore.json.git
synced 2026-06-21 07:31:00 +00:00
1 line
82 KiB
JSON
1 line
82 KiB
JSON
[{"user_id": 20761, "stars": [], "topic_id": 12644, "date_created": 1299955328.4741111, "message": "agreed, but in its defense, php isn't indentation dependent", "group_id": 373, "id": 334593}, {"user_id": 16551, "stars": [], "topic_id": 12644, "date_created": 1299955673.0669069, "message": "Only 47.5% of the Python web. http://www.djangosites.org/stats/ ;-)", "group_id": 373, "id": 334705}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299955497.045752, "message": "You", "group_id": 373, "id": 334642}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299955105.164222, "message": "Trust me this is going to be fun", "group_id": 373, "id": 334517}, {"user_id": 16551, "stars": [], "topic_id": 12644, "date_created": 1299955570.8009319, "message": "Are you serious? I haven't ever really written a web application only the stuff that goes under it.", "group_id": 373, "id": 334664}, {"user_id": 1916, "stars": [], "topic_id": 12644, "date_created": 1299955277.7288649, "message": "They still do in PHP", "group_id": 373, "id": 334573}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299955492.6777251, "message": "@gsiegman until it fights against uou", "group_id": 373, "id": 334639}, {"user_id": 1916, "stars": [], "topic_id": 12644, "date_created": 1299955447.709028, "message": "Nah, just choose Django.", "group_id": 373, "id": 334626}, {"user_id": 1333, "stars": [], "topic_id": 12644, "date_created": 1299955514.219368, "message": "Python's web framework BDFL: I vote for Graham Dumpleton.", "group_id": 373, "id": 334650}, {"user_id": 1333, "stars": [], "topic_id": 12644, "date_created": 1299955599.997442, "message": "Yes but you're the grand-daddy of Python on the web", "group_id": 373, "id": 334674}, {"user_id": 1333, "stars": [], "topic_id": 12644, "date_created": 1299956503.312778, "message": "Why shouldn't you use WSGI middleware?", "group_id": 373, "id": 334965}, {"user_id": 20653, "stars": [], "topic_id": 12644, "date_created": 1299957568.59641, "message": "Is web2py that bad?", "group_id": 373, "id": 335280}, {"user_id": 4156, "stars": [], "topic_id": 12644, "date_created": 1299958947.2721269, "message": "@axioma yes", "group_id": 373, "id": 335605}, {"user_id": 16551, "stars": [], "topic_id": 12644, "date_created": 1299958238.1534879, "message": "http://dirtsimple.org/2007/02/wsgi-middleware-considered-harmful.html", "group_id": 373, "id": 335461}, {"user_id": 1979, "stars": [], "topic_id": 12644, "date_created": 1299968517.7258649, "message": "find Armin Ronacher and ask him, he'll give you a really detailed list of issues with web2py", "group_id": 373, "id": 337104}, {"user_id": 20653, "stars": [], "topic_id": 12644, "date_created": 1299968441.908581, "message": "@bitprophet i searched google to find information on why it's bad, i read something about it using exec. is that the reason? could you recommend any post/blog/doc that explains this a little?", "group_id": 373, "id": 337092}, {"user_id": 1979, "stars": [{"date_created": 1299999695.4183819, "user_id": 20599}], "topic_id": 12644, "date_created": 1299968609.6890841, "message": "i mean, come on, *implicit imports*?", "group_id": 373, "id": 337116}, {"user_id": 1979, "stars": [], "topic_id": 12644, "date_created": 1299969784.4102011, "message": "@elpargo does the recovery process include booze?", "group_id": 373, "id": 337209}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299969860.5957961, "message": "@mishok13 yup got to kill those menories", "group_id": 373, "id": 337215}, {"user_id": 21091, "stars": [], "topic_id": 12644, "date_created": 1299970483.3680069, "message": "memories, nothing more than memories", "group_id": 373, "id": 337297}, {"user_id": 1979, "stars": [], "topic_id": 12644, "date_created": 1299968624.951968, "message": "who'd ever think that's a good idea?", "group_id": 373, "id": 337119}, {"user_id": 1979, "stars": [], "topic_id": 12644, "date_created": 1299968597.6255071, "message": "I've never written any code in Django and web2py, with most of my stuff being really simple (thus werkzeug or similar libraries), but just looking at web2py code makes me feel abused", "group_id": 373, "id": 337115}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299968518.0060761, "message": "@axioma take a look at the code that automatically import everything", "group_id": 373, "id": 337105}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299969868.2875731, "message": "Memories", "group_id": 373, "id": 337217}, {"user_id": 19652, "stars": [], "topic_id": 12644, "date_created": 1299969656.661427, "message": "@mishok13 I'm sorry for that. But we have a recovery group for people that have read that code", "group_id": 373, "id": 337196}, {"user_id": 1736, "stars": [], "topic_id": 12644, "date_created": 1299995028.2588029, "message": "@ncdegroot web2py just needs to drop the \"py\" part. If you want to invent a DSL for webapps go right ahead (lets face it, thats really what Rails started as) but for the love of all that is good in this world stop calling it Python.", "group_id": 373, "id": 339106}, {"user_id": 19714, "stars": [], "topic_id": 12644, "date_created": 1299993212.6714029, "message": "@axioma see http://bit.ly/fStQjp for a discussion. Web2py uses exec in a controlled way, implicitly imports the model and has a limited set of helperfunctions. Pragmatic design choices IMHO, but judge for yourself.", "group_id": 373, "id": 339017}, {"user_id": 22569, "stars": [{"date_created": 1300431777.4247451, "user_id": 20582}], "topic_id": 12644, "date_created": 1300406133.7789791, "message": "Guys, these kinds of comments make the Python Web world seem unserious and frankly a bit mean-spirited. I think we can be more civil and professional with technical criticisms. And if you haven't actually used a framework, maybe be a little more circumspect and open-minded about it, particularly if it's known to have a lot of happy users.", "group_id": 373, "id": 378638}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300406474.3709691, "message": "@elpargo @mishok13 web2py uses imports as usual. There are just a small number of core global objects like request, response, session, etc. that don't require imports. People who actually use web2py have no problem with this. Repeating the same boilerplate imports everywhere would not be helpful.", "group_id": 373, "id": 378669}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300406532.8204999, "message": "@coderanger You keep trying to marginalize web2py by claiming it's a DSL. If it is, then so is Django and all the others. Both the framework and the apps are written in Python. You can import and use any Python module. web2py even uses Python in the templates, unlike Django, which uses a DSL (should we therefore stop calling Django a Python framework?). In any case, it's not clear why these semantics should matter -- is that really the only thing bothering you?", "group_id": 373, "id": 378672}, {"user_id": 4156, "stars": [{"date_created": 1300419166.6261251, "user_id": 1736}, {"date_created": 1300632463.3085251, "user_id": 22109}, {"date_created": 1300744812.2979701, "user_id": 5852}], "topic_id": 12644, "date_created": 1300407243.8929689, "message": "Use of Django encourages Python best practices, such as importing every variable/object name you use. Use of web2py encourages bad habits such as...not importing things. Is this so hard to understand? If you flaunt community best practices and standards you *will* get shit for it. Whether that is justified is up to individuals but don't tell people not to say it like it is :)", "group_id": 373, "id": 378731}, {"user_id": 3354, "stars": [{"date_created": 1300419165.2915449, "user_id": 1736}, {"date_created": 1300438579.5128479, "user_id": 1979}], "topic_id": 12644, "date_created": 1300414460.088577, "message": "@av201001 It may not be *helpful* to repeat the same imports, but it would be more *explicit*. I defer from value judgement, but web2py isn't to my taste.", "group_id": 373, "id": 379170}, {"user_id": 1736, "stars": [], "topic_id": 12644, "date_created": 1300419304.6493011, "message": "Also, I would love to hear where Django ever claimed that its templates are Python. In fact that is one of the things that will nearly send Jacob into a hulked-out rage. Django's templates are purposefully _not_ Python with the goal of making them easier for non-programmers to understand. Jinja, it could be argued, uses Python in the templates but that is a horse of a different color ...", "group_id": 373, "id": 379633}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300419522.1907041, "message": "@coderanger I did not say Django claims its templates are Python. Quite the opposite -- I pointed out that Django created a DSL for its templates -- so its templates are *not* Python. You were trying to claim that web2py is a DSL (which it certainly is not), and yet failing to recognize that part of Django itself is a DSL.", "group_id": 373, "id": 379656}, {"user_id": 1736, "stars": [], "topic_id": 12644, "date_created": 1300419411.156733, "message": "In general the difference is that Django (and TG, Pyramid, etc) all choose to adhere to the collection of standards and community practices that make up the greater Python ecosystem. web2py elects to use different standards and therefore stands alone. Does that make it worse? No. It is, however, clearly different and should be labelled as such.", "group_id": 373, "id": 379643}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300420603.9569609, "message": "@bitprophet Once again, web2py does not encourage any bad practices -- developers still import whatever they use, including much of the framework functionality, such as Auth, Crud, Mail, and Services as well as a number of contributed libraries and of course any external or third party modules. There are about 12 core API objects plus a set of HTML helpers and form validators that are in the global namespace. These are well-documented and nearly ubiquitous. The typical benefits of explicit imports simply do not apply in the case of these few core objects. If you're developing a web2py app, you know what those objects are and where they're defined. If you actually used web2py, you'd realize this is not a problem. And I am not telling people \"not to say it like it is\" -- I am correcting misinformation. My initial comment was not asking people not to criticize web2py, but simply to be more professional and civil about it, as some of the juvenile behavior reflects poorly on the Python community.", "group_id": 373, "id": 379734}, {"user_id": 205, "stars": [{"date_created": 1300423896.1513081, "user_id": 1736}, {"date_created": 1300438623.326369, "user_id": 1979}, {"date_created": 1300580327.8719289, "user_id": 209}, {"date_created": 1300632507.8416791, "user_id": 22109}, {"date_created": 1300662171.1556301, "user_id": 13325}, {"date_created": 1300751710.4148271, "user_id": 208}], "topic_id": 12644, "date_created": 1300423365.1480451, "message": "This conversation has been had a million times. Just ignore web2py", "group_id": 373, "id": 379841}, {"user_id": 22569, "stars": [{"date_created": 1304270832.1313391, "user_id": 2376}], "topic_id": 12644, "date_created": 1300423972.7160759, "message": "@holdenweb It's very odd that you want to do something for the sake of being *explicit* even though you admit it would not be *helpful*. That's an example of cargo cult programming (http://bit.ly/38LOZs). Wouldn't it be more explicit to import __builtins__, or build your own data structures, or do your own memory management? But you don't do those things because the gains in productivity from not doing them outweigh any loss of explicitness. All code is an abstraction and involves something going on under the hood that is not completely explicit in the code itself. At some point, additional explicitness is no longer helpful and may become counter-productive (e.g., repeating boilerplate imports of a few core API objects everywhere).", "group_id": 373, "id": 379919}, {"user_id": 1736, "stars": [], "topic_id": 12644, "date_created": 1300424149.0942521, "message": "@av201001 \"you actually used web2py, you'd realize this is not a problem\". You just proved my point. web2py code != normal Python code. If you know web2py then the code makes perfect sense, in the same way that if you know C then C code makes perfect sense. This doesn't make web2py (or C) inherently inferior, but it does mean it isn't the same as Python. It is certainly similar to Python and is implemented in Python (both qualities shared by the Django template system, but again Django templates make no claim at being \"Python\") but the distinction is still important.", "group_id": 373, "id": 379929}, {"user_id": 22569, "stars": [{"date_created": 1304270921.9261611, "user_id": 2376}], "topic_id": 12644, "date_created": 1300425600.3033221, "message": "@coderanger No, I did not prove your point. You can say the exact same thing of Django -- if you know Django, the code makes perfect sense -- otherwise it contains references to all kinds of objects that are not native to the Python language. The mere presence of a few imports is not enough to enable you to code in Django without any knowledge of the API. You have to learn the objects it defines and how to use them, primarily by reading the documentation (that's why people are always bragging about the Django documentation -- it's essential if you want to learn how to use it). It's the same with any library. Just because a library defines its own classes and functions does not make it a new language or DSL. If Django is normal Python code, then so is web2py. But again, why does this matter so much to you? Let's say we agree that web2py == (Python + 12 keywords). What difference would that make? Note, it would be much more misleading to say web2py is not Python, because then developers might not realize they can use pure Python code anywhere in their apps as well as import and use any third party Python modules.", "group_id": 373, "id": 380008}, {"user_id": 20777, "stars": [{"date_created": 1300425924.612711, "user_id": 1736}, {"date_created": 1300427831.371388, "user_id": 7}, {"date_created": 1300438668.7248819, "user_id": 1979}, {"date_created": 1300479595.3606081, "user_id": 4156}], "topic_id": 12644, "date_created": 1300425820.5464251, "message": "\"Arguing on the internet is like winning the special olympics; even if you win, you're still retarded.\" web2py is a domain-specific language that uses Python as its runtime environment. 'nuff said.", "group_id": 373, "id": 380017}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300428289.6155269, "message": "@mishok13 I have never seen Armin provide \"a really detailed list of issues.\" The only thing he seems to mention is the use of exec, though he offers no evidence of any real problems.", "group_id": 373, "id": 380142}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300426512.829819, "message": "@coderanger Yes, web2py is different in some ways, but every framework is different from the others in some significant way -- that's usually why people create new frameworks -- to do something different. One standard/community practice is to build frameworks that either glue together best-in-breed components (e.g., Turbogears) or that comprise a basic core that enables users to choose their own favorite components to build a custom stack (e.g., Pyramid, Flask, etc.). It also seems to be a standard to use SQLAlchemy as the ORM. In other words, \"don't reinvent the wheel.\" Django violates this standard by building everything in-house as one integrated full-stack framework. Does that make it worse? No. It is, however, clearly different and should be labeled as such.", "group_id": 373, "id": 380052}, {"user_id": 22569, "stars": [{"date_created": 1304270997.3194139, "user_id": 2376}], "topic_id": 12644, "date_created": 1300428198.7036059, "message": "@axioma There are no problems with web2py's use of exec. There are some potential pitfalls with exec (e.g., executing user-provided input; exec without defining a new environment), but web2py doesn't do any of those things. Keep in mind that web2py has been tested in the real world by many users deploying many applications over the past three and a half years. Most of the naysayers have never actually used web2py and are heavily invested in other frameworks. If you want to know more about web2py, feel free to ask on the mailing list (http://bit.ly/hfuVoQ), where you'll get prompt and friendly replies from people who really know the framework. Many of them have used the other frameworks as well and can speak cogently about the differences.", "group_id": 373, "id": 380136}, {"user_id": 1979, "stars": [], "topic_id": 12644, "date_created": 1300439646.4326861, "message": "@av201001 What stopped you from coming up to Armin and asking him personally? Also, your defense of implicit imports make me sad. I've worked and still working with tons of ugly APIs, but implicit imports are just wrong, as in 2 + 2 = 5 wrong. And yes, this is my personal opinion and your arguments in favor of them will not work.", "group_id": 373, "id": 380809}, {"user_id": 1930, "stars": [{"date_created": 1300744974.609458, "user_id": 5852}], "topic_id": 12644, "date_created": 1300463538.651576, "message": "This is an old discussion (and there is not much point to drawing lines in the sand). See Armin's piece http://lucumr.pocoo.org/2011/2/1/exec-in-python/; I'd particularly pay attention to the closing (3) paragraphs. I like Massimo. Web2py has some nice ideas. Ultimately, I would pay _particular_ attention to Armin's 2nd-to-last paragraph: use of regular Python modules... Love, hate, or indifferent to web2py - building an app from components, in a way similar to django-mingus built a blog as an example - this should be our goal (and I think Armin's point) - that, after all, is the interesting argument. We've been re-inventing python web-apps in one form or another for (?) a decade. Much better to focus on component web-modules, and more interesting to exert discursive energy on what it would take to make _them_ portable across frameworks, and what characteristics in frameworks & web components would enable a useful context for that.", "group_id": 373, "id": 382998}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300466389.85742, "message": "@yarkot Thanks for your thoughts. Armin's analysis of exec is interesting and helpful but ultimately doesn't do enough to justify his second to last paragraph. He does nothing to demonstrate any actual real-world problems with web2py applications (web2py already follows the guidelines he mentions in his analysis). Meanwhile, we've had thousands of users around the world running apps for years with no problems. If Armin or someone can re-architect web2py in a way that wouldn't break backward compatibility of the API (and that wouldn't require too much effort, sacrifice any capabilities, or negatively impact performance, etc.), then maybe it would be considered. But it's not reasonable to undertake a major re-write and break all the existing apps just based on Armin's intuition that exec is dangerous, particularly given the complete lack of evidence. Also, in has last paragraph, Armin claims that Python developers \"will be very confused\" and that use of exec is \"very hurtful for Python.\" Where is his evidence of developer confusion or of Python being hurt in any way? In the absence of any real evidence, he simply asserts these vague and dire claims. Note, there is some personal history with Armin going back a few years, so he is not exactly objective when it comes to web2py.", "group_id": 373, "id": 383479}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300466826.95297, "message": "@yarkot Also, note that web2py's modules can indeed be used outside of web2py within other frameworks or Python programs, including the database abstraction layer, template engine, forms, validators, and HTML helpers. Likewise, other template engines, ORMs, etc. can be plugged in to web2py. It is obviously designed to be an integrated full-stack framework, but it is also very modular.", "group_id": 373, "id": 383538}, {"user_id": 291, "stars": [{"date_created": 1300472018.6880519, "user_id": 927}, {"date_created": 1300477341.8738871, "user_id": 1930}, {"date_created": 1300581990.8069661, "user_id": 1243}], "topic_id": 12644, "date_created": 1300468797.274545, "message": "*sigh* This discussion is pretty tired. I don't particularly like some of the choices that web2py makes. That's okay... I don't particularly like some of the choices that Django makes, or even that Pyramid makes, and Pyramid is my preferred framework to use, I'm a committer on the project. Why do these conversations always have to devolve into a slagging match? /me thinks plenty of folks here could do w/ some communication training, to learn to speak w/ \"I\" statements and to clearly differentiate btn opinions and facts.", "group_id": 373, "id": 383908}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300475820.492105, "message": "@mishok13 In this thread, you made the claim that Armin has a detailed list of issues -- prior to that, I would have had no reason to ask him personally for such a list because I wasn't under the impression he had one -- he only ever mentions exec (without providing any evidence).", "group_id": 373, "id": 384789}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300476558.616745, "message": "@mishok13 Regarding imports, you should think through the reasons why explicit imports are generally desirable in order to understand the special cases in which they may not be particularly beneficial. You clearly have a strong conviction, but you have offered no arguments in favor of your position. What exactly is the problem in the case of web2py? For example, in a controller I can refer to the 'request' object without importing it. So what? The few global core objects are well documented in the book (http://bit.ly/hH3aip), and it's easy to find the relevant framework code if you need it (e.g., http://bit.ly/gz4urs, http://bit.ly/esHx1B). You can easily see all the global imports in gluon.main and gluon.compileapp. Actual web2py users don't have a problem with this, but if you do and would prefer to see the imports, nothing is stopping you from putting them in your app files anyway (maybe inside a doctstring, comment, or 'if 0:'). Perhaps it's not to your taste, but surely it is not \"wrong\" in the same way 2 + 2 = 5 is wrong.", "group_id": 373, "id": 384840}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300479216.716804, "message": "@av201001 - web2py is anything but modular. I know web2py. I like Massimo, Massimo is my friend, and I have no desire to speak badly of him or his work, rather the contrary. I managed / maintained the registration system the 2 years web2py was used in pycon. But I would not call web2py modular. To wit: point to the repository for the components - the template system; the orm; etc. (there aren't any repos). To wit: go to http://www.web2py.com/appliances and use any 2 or 3 to build a web2py app (I don't think you can, without recoding them - certainly not in the way you of mingus). To Armin's point: what are web2py plugins (or - why are they not python modules)? As you defend, you fail to see what is right before you. Work on that as much as these posts, and we'll all be happier.", "group_id": 373, "id": 385015}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300484226.4615209, "message": "@yarkot Sorry, I think I misunderstood your point about components. I don't think I stated anything incorrectly, but perhaps did not address your point. With regard to the framework, by modular I just meant that the individual modules can be pulled out and used outside of the framework, not that they are maintained as independent repos (I think Django is the same, no?). I wasn't referring at all to modularity of applications. Kind Regards.", "group_id": 373, "id": 385500}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300484308.5787599, "message": "@av201001 My point: no, I do not think they can. If you think they can, show it to be so.", "group_id": 373, "id": 385507}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300484549.242589, "message": "@av201001 Re: django: you can build an app from components (strictly from component example: mingus), and there is a component catalog (djangopackages). On only the topic of modular, web2py has not demonstrated to be so - in fact, I have tried and so I would say, it practically speaking is not. Period.", "group_id": 373, "id": 385531}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300485518.0896411, "message": "@yarkot Got it. My mention of Django had to do with the *framework* modules -- like web2py's, I don't think they're maintained as independent repos. I'm sure you know this, but for the benefit of others, regarding application modularity, there are a number of ways web2py applications can cooperate (http://bit.ly/gUZxPV), and there are components and plugins (http://bit.ly/gEtL3R). Perhaps not as seemless and modular as Django can be, but I wouldn't say there's no modularity at all. Also, although web2py plugins are typically designed specifically for web2py apps and therefore include web2py model and controller files, plugins *can* include (or consist entirely of) regular Python modules as well.", "group_id": 373, "id": 385617}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300506357.2851591, "message": "@yarkot \"My point: no, I do not think they can. If you think they can, show it to be so.\" When you say you \"do not think they can,\" are you saying you don't think the web2py *framework* modules (e.g., DAL, template engine, helpers, forms) can be used outside the framework? If that's what you were referring to, I do believe they can be used independently of the framework -- see http://vimeo.com/21185623 (starting at 3:30).", "group_id": 373, "id": 386977}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300507710.085762, "message": "Just a few clarifications about a few things that have been said... @yarkot (why plugins are not modules?) because in web2py plugins are defined as \"any subset of an app\". they may contain python modules but they may also contain css files and js files. A plugin can be just a regular python module but it can also be a just a js file or just a css file.", "group_id": 373, "id": 387003}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300507753.6424711, "message": "About DSL. Django invented a DSL for templates. web2py did not do such a thing. We use pure python everywhere and you can use any module you like.", "group_id": 373, "id": 387006}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300508351.2507889, "message": "The disagreement between me and other is that some people believe it is ok that a template is not a module but it not ok that a controller is not a module. I would argue that none of them is a module. In fact a controller NEEDS a request object to run and you can force a circle into a square and you get the necessary verbosity of other frameworks. About exec. Armin si right. if you define a class in a web2py controller with a __del__ method you have a memory leak. That is why you should not define a class with a __del__ method in a web2py controller. Period. This is not a web2py problem anyway, this is a Python issue because CPython does have a proper garbage collection. There are constructs that would cause the same type of memory leak in Django or Flask. Yet there every design decision has pros and cons. The pros of our design decision is that we do not have to worry about conflicts between apps, we can hot install and uninstall apps, and we can edit a live app, even when running on a production server. Those are unique features of web2py and are a direct consequence of our design decisions.", "group_id": 373, "id": 387018}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300508589.4892261, "message": "BTW... I could start making a list of \"cons\" of Django design decisions and/or Flask design decisions. I just choose not to. I trust users can try the different systems and figure out for themselves what they like or dislike. You guys seem to have made a hobby of criticizing web2py. If you have so much time on your hands, why don't you try figure out what is that people like in web2py and try to implement similar features in those frameworks that you like. Perhaps one day I could stop developing web2py and I could just use Django.", "group_id": 373, "id": 387023}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300509502.414834, "message": "Finally, the Python community is fragmented but not because if offers choice (of frameworks) but because we seem to constantly criticize each other. That is not good for anybody.", "group_id": 373, "id": 387037}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300511252.1963439, "message": "ERRATA \"does have a proper garbage collection\" should have been \"does NOT have a proper garbage collection\"", "group_id": 373, "id": 387061}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300513662.6512649, "message": "@holdenweb The Enthought PyLab shell has hidden imports (all the math functions and some more are exposed and do not need to be imported). I would like to know your opinion about it.", "group_id": 373, "id": 387090}, {"user_id": 3354, "stars": [{"date_created": 1300520372.3260889, "user_id": 1}, {"date_created": 1300745184.4352541, "user_id": 206}], "topic_id": 12644, "date_created": 1300519878.9802589, "message": "I'm sure you would.", "group_id": 373, "id": 387208}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300545574.4016981, "message": "FYI, although you should not define a class with a __del__ method in a web2py controller, if you happen to need such a class, I believe you can simply define it in a module and import it without any problem. Practically, I don't think this has been an issue for anyone.", "group_id": 373, "id": 388487}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300545853.1180551, "message": "@holdenweb I apologize for the tone of my question. I love Enthought Python. I think it is a great tool. I do not hink of it as a DSL. What Entought PyLab does for math is exactly what web2py does for web.", "group_id": 373, "id": 388506}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300561363.990792, "message": "So the issue is that - you think - in web2py one cannot build apps without any coding. Wrong. Look at the first half of the web2py tutorial at PyCon. Apart for the fact that you are wrong, you are now raising a different issue than everybody else.", "group_id": 373, "id": 389130}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300558713.149796, "message": "@massimodipierro: if \"any subset\" of an app is a plugin in web2py, then the welcome app seems to fail this test - if I try to load the \"welcome\" app as a plugin to make a new app, an error happens. In fact, what happens is what SEI calls \"opportunistic reuse\" - a copy of the app is how one kick-starts a new app (not a \"module\", or plugin to ensure you have the basics). I stand by my assessment: this is not at this point capable of being usefully modular way of building solutions.", "group_id": 373, "id": 389030}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300559679.020401, "message": "@massimodipierro - constructive criticism (even when hard to hear) is that. While it is certainly true that you can usefully maintain, upgrade, extend a running web2py app (which we were able to quite successfully do for registration the two years that web2py was used) - if such prototyping capability is at the price of being able extract the fruits of your prototype for reuse, at the price of building web sites the way software practice favors in general - from an aggregation / collection of components - then this is precisely the central topic, your challenge. The topics of modularity, interface definitions, appropriate design coupling, and so forth simply must enter the discussion for this to be an interesting discussion to maintain. Defense of \"it works - use it\" without this necessary context is simply not interesting (and indeed generates discussion of harm to community, through lack of openness to such basic topics). And more so, these topical foci are not the exclusive domain of web2py critique, but useful topics in the general community - their suppression, avoidance is indeed of broader detriment.", "group_id": 373, "id": 389048}, {"user_id": 21247, "stars": [{"date_created": 1304272011.4423831, "user_id": 2376}], "topic_id": 12644, "date_created": 1300560185.722878, "message": "@yarkot A plugin is a method for packaging any subset of an app. The welcome app itself, as you say, can be considered a plugin but, because it was packages as an app, not as a plugin, is not recognized. Just rename web2py.app.welcome.w2p and web2py.plugin.welcome.w2p and you will be able to install the welcome app as a plugin. Of course this is silly since a app should be installed as an app not as a plugin. This kind of issues should be raised on the web2py mailing list and do not belong here.", "group_id": 373, "id": 389075}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561330.0303199, "message": "*sigh*", "group_id": 373, "id": 389129}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561127.0813661, "message": "If templates (for example) were encouraged to be used in other frameworks, then - much like jinja2 - I would expect it to be packaged this way, and used this way in web2py. Further, much like jinja is used in (say) sphinx-docs, I would expect web2py-templates seen somewhere (eventually) like this. You dont _have_ to do this; but if you make a claim that behaves as-if this is your intent, then I will look for behavioral evidence which supports this claim - I do not see it.", "group_id": 373, "id": 389120}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561142.0678971, "message": "No more, no less.", "group_id": 373, "id": 389122}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300560721.4388411, "message": "@yarkot No objection to constructive criticism. Bring it up on the web2py mailing list and will be addressed in the proper place. About lack of reusability: all web2py modules are re-usable outside web2py with any other framework. Web2py plugins are not reusable outside web2py but Django middleware is not reusable outside Django either. That is because every framework has its own classes for request/response objects. Mark Ramm advocates for a more uniform approach to request/response and I would support that. Any future standardization in web development will probably be supported in future version of web2py (as we support today the WSGI standrad). About your last example, this video (http://vimeo.com/21185623) shows how to use the web2py dal, web2py forms, and the template system in any other web framework. It also shows how to use other web servers and other template systems within web2py.", "group_id": 373, "id": 389101}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561306.0315261, "message": "@massimodipierro (re: web2py write parts for django) - you are not listening to the issue correctly - the issue is you make claims which seem unsubstantiated; the comparisons are just that: comparisons between others experience and behaviors (examples, apps, etc.), and pointing out lack of like examples in web2py vis-a-vis web2py claims.", "group_id": 373, "id": 389128}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300560372.71155, "message": "@av201001 - note the distinction between reactive response, and intentionality. E.g., a car salesman can certainly take a car off the lot, send it back into the spray painting booth, and react: \"you want a black car? no problem - here's your black car!\". This is different from \"we offer black as one of the color choices on our car.\" One is consistent, and has a path; the other is ... a reactive response. W.r.t. to your reactions: if welcome were - by standard and design as the basic scaffolding app - built with no code other than as a web2py plugin, then I would begin to believe that maybe plugins are indeed a form of web componentry (and we could then discuss the pros and cons of how plugin boundary choices were made). If web2py templates were - as part of normal web2py apps - pulled in as-if an external component (to show how that is done, as a matter of standard practice), then that would be a different discussion also.", "group_id": 373, "id": 389079}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300560827.303339, "message": "Reading this thread again... is the criticism that web2py developers do not write the code for the Django framework? Because if that is the issue, my answer is another questions: why should we?", "group_id": 373, "id": 389108}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561375.4128311, "message": "The other \"problem\" is, perhaps, different people see different issues - so there is more than one discussion thread going.", "group_id": 373, "id": 389131}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300560973.286334, "message": "@massimodipierro - you seem to dodge: django, for example, _can_ build an app w/ no code other than external parts. That parts are not re-usable across other frameworks is a different (and generally interesting) discussion - but for now, speak for yourself - that is, for web2py. If - by design - web2py was promoting component based development within web2py itself, then I would expect welome to be implemented this way. It is not.", "group_id": 373, "id": 389114}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561661.5249, "message": "etc.", "group_id": 373, "id": 389150}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561720.875397, "message": "If this spurs this shift in focus, then I have done you a service. If not, I have no interest in arguing about it - I simply stand by my statement, and it remains for me an important, central topic in general w.r.t. web frameworks.", "group_id": 373, "id": 389153}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561432.6590121, "message": "@massimodipierro - can or cannot is not the issue: if this is the \"standard promoted\", the way encouraged to do things, something central, intentional - this (for me) is the issue I raise.", "group_id": 373, "id": 389136}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561571.0920191, "message": "Roll back: in response to @av201001's various claims / defenses, I finally felt it was valid to state flatly: web2py is _not_ modular, does not by it's current nature promote modular development. This is only somewhat loosely related to the article which Armin wrote, but enough in the ballbark I felt it worthwhile to raise the issue (for me it is a fundamental issue).", "group_id": 373, "id": 389146}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300561657.741086, "message": "If you think I am incorrect in this (I have no doubt you could offer reactive counter-points), then please - show welcome as \"the subset which defines how plugins work\" - as the first example used in _all_ instances.", "group_id": 373, "id": 389149}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300562267.080585, "message": "I think I said all I had to say on the topic. I trust prospective users can try it form themselves. If they have questions, or constructive criticism, they are welcome on the web2py mailing list. Whether they decide to use or now web2py they are welcome on our list.", "group_id": 373, "id": 389200}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300568506.9333279, "message": "@yarkot It's not that \"any subset of an app\" is automatically a plugin, it's that a plugin can be any subset of an app (but to be defined as a plugin, it has to follow particular naming and organization conventions, defined in the book). So, as Massimo pointed out, the welcome app is not a plugin as is, but with some renaming, it could easily be made into one.", "group_id": 373, "id": 389517}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300568610.9617369, "message": "@yarkot I was not offering a \"reactive response.\" You stated that web2py is not modular, \"Period.\" That is not a reasonable characterization. You *can* build a web2py app simply by combining a set of plugins, without any additional coding (maybe some configuration, depending on the plugins). True, you cannot simply grab any random set of existing web2py apps and expect them to automatically work together as a single combined app without any re-coding. But I'm not under the impression you can do that with Django (or other frameworks) either (I believe you have to design apps specifically to be reusable, no?). Regarding the scaffolding app, there has actually been some recent discussion about offering a more basic shell that could then be easily customized with various components/plugins. But even the existing scaffolding app can be used as a foundation to which other plugins are added in order to build out a full app, without additional code (plugin_wiki alone gets you advanced-capability wiki pages, comments, tags, grids, charts, slideshow, embeded video, and Google maps). I'm not sure what else you're looking for.", "group_id": 373, "id": 389521}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300569072.039829, "message": "@yarkot \"If templates (for example) were encouraged to be used in other frameworks, then - much like jinja2 - I would expect it to be packaged this way, and used this way in web2py. Further, much like jinja is used in (say) sphinx-docs, I would expect web2py-templates seen somewhere (eventually) like this.\" Sure, perhaps web2py should start doing more to promote external usage of its individual modules. Actually, I think this is already happening with the DAL -- Massimo has been encouraging its use, and in fact a number of people have been using it with Flask and even in non-web programs.", "group_id": 373, "id": 389548}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300576941.6136191, "message": "Sorry, I don't get it. web2py's plugin system is not akin to offering a non-standard car color via special one-time customization -- it is an existing, standard, documented feature of web2py that enables applications to be assembled from modular components. I'm not saying it is perfect or couldn't use improvement, but I'm not sure what you mean by \"reactive\" -- it was designed with \"intentionality\" for exactly that purpose. Perhaps you could join us on the mailing list and offer additional guidance and ideas (Convore isn't conducive to these kinds of detailed discussions). Thank you.", "group_id": 373, "id": 389807}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300576247.751297, "message": "@av201001 - re: reactive: see \"black car\" metaphor...", "group_id": 373, "id": 389787}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300579547.0486341, "message": "@yarkot Note, in the \"New application wizard\" in the administrative interface, Step 1 includes a drop-down to select any plugins you would like automatically installed in your new app. I would say that makes plugins very much \"part of the process\", no?", "group_id": 373, "id": 389926}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300577439.094425, "message": "@av201001 plugins are not the normal way web2py apps are built, therefore it is not part of the process; welcome is not distributed this way. \"Oh, sure - you can do that\" is not \"Oh sure, this is what we do all the time... in fact, we've honed the system through our own use, and encourage it.\" ==> black is a color from the factory vs. you want black? sure, you can do that.", "group_id": 373, "id": 389829}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300577471.7965879, "message": "sorry you don't get it (and ... I see you don't get it...)", "group_id": 373, "id": 389831}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300580604.1238861, "message": "@ericholscher If by \"ignore web2py\" you mean \"don't spread FUD about web2py\", then yes, please \"ignore\" web2py.", "group_id": 373, "id": 389975}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300578574.2707729, "message": "@yarkot Plugins *are* the normal way web2py apps are built when you need to build an app that includes standard functionality that can be abstracted into plugins. Not every app that's built with web2py is designed to be a plugin or reusable, but I'm sure that's the same with Django or any framework. Nevertheless, the creation and use of plugins is very much encouraged and \"part of the process\". I don't know what you're talking about with regard to the 'welcome' app -- there is no problem with adding plugins to that app in order to build a bigger app -- you can make it as modular as you like. Are you saying you want 'welcome' itself to be a plugin so it can be added to some *other* app? If so, why?", "group_id": 373, "id": 389890}, {"user_id": 205, "stars": [{"date_created": 1300582387.0518501, "user_id": 1930}, {"date_created": 1300583557.0763879, "user_id": 4156}, {"date_created": 1300585933.125644, "user_id": 1736}, {"date_created": 1300587519.4442661, "user_id": 22109}], "topic_id": 12644, "date_created": 1300580301.5447071, "message": "Remember when I said to ignore web2py? This is why ^^^", "group_id": 373, "id": 389955}, {"user_id": 205, "stars": [], "topic_id": 12644, "date_created": 1300582671.4691899, "message": "@av201001 If you don't promote yourself, nobody will spread FUD. Let the code stand on it's own merit.", "group_id": 373, "id": 390060}, {"user_id": 4156, "stars": [{"date_created": 1300585931.79809, "user_id": 1736}, {"date_created": 1300593941.8386819, "user_id": 16551}, {"date_created": 1300610500.3808539, "user_id": 1930}, {"date_created": 1300632987.715694, "user_id": 22109}, {"date_created": 1300731366.2334571, "user_id": 18843}, {"date_created": 1300745184.135381, "user_id": 5852}, {"date_created": 1300745640.089155, "user_id": 206}, {"date_created": 1301773440.075603, "user_id": 1264}], "topic_id": 12644, "date_created": 1300583753.7289021, "message": "To clarify @ericholscher's statement, the problem is that web2py aggressively promotes itself and then when people are critical about its design decisions, its users get defensive, play the victim card, and/or try to brush discussion under the rug (\"take it to our mailing list!\").", "group_id": 373, "id": 390097}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300585994.780859, "message": "@bitprophet Sorry, but you are wrong. web2py folks have no problem with criticism of design decisions. The problem is when people make false, misleading, unsubstantiated, or exaggerated claims about web2py. Such claims are typically made by people who have never actually used web2py and who have no idea what they're talking about. This behavior is hurtful because it wrongly impugns the integrity of those who contribute to and use web2py, it drives people away who might otherwise benefit from it, and it makes the Python community look unprofessional and narrow-minded. And nobody wants to brush any discussion under the rug -- it's simply that when we're seriously discussing real possible changes to web2py, we'd rather have the discussion on the list where everyone can more easily participate and it will be archived. Anyway, the list is completely public, so there's no rug to sweep under. Thank you.", "group_id": 373, "id": 390181}, {"user_id": 209, "stars": [], "topic_id": 12644, "date_created": 1300585190.4946151, "message": "@av201001 If we're pointing out argument fallacies, then um flag: \"FUD is spread mostly by those who have never actually used web2py\" 2 minutes in the box for fact with no possible data point", "group_id": 373, "id": 390153}, {"user_id": 4156, "stars": [{"date_created": 1300585930.782624, "user_id": 1736}, {"date_created": 1300745196.4271691, "user_id": 5852}], "topic_id": 12644, "date_created": 1300584028.659339, "message": "Something something heat kitchen etc.", "group_id": 373, "id": 390113}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300584713.0811119, "message": "@ericholscher If you look at the top of this thread, you will see that the discussion started with negative (and false or misleading) statements about web2py, not with any promotion. Also, it appears you are saying that the mere fact that a project is promoted justifies the spreading of FUD about that project. That does not sound ethical to me -- FUD by definition is false and misleading, hence never justified. In any case, if you look on Reddit, for example, you will see Flask, Pyramid, and Django all being promoted -- does that justify spreading FUD about those frameworks? As for the code standing on its own merit, I don't think web2py has any problem with that -- there are many very happy users, and new ones being attracted to it every day. In fact, the FUD is spread mostly by those who have never actually used web2py -- that should tell you something.", "group_id": 373, "id": 390131}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300585913.659416, "message": "@issackelly Sorry, I do have data points. In many cases, the FUD spreaders have readily admitted right within their comments that they have never used web2py. In other cases, it is obvious from the content of the comments (e.g., such a complete lack of knowledge of the very basics that they couldn't ever have used it seriously). Furthermore, people who are critiquing web2py based on actual usage usually like to mention that in order to lend credibility to their arguments. Most of the FUD comes from the same few people, so this doesn't require a lot of new data collection. How about you -- how much experience do you have building applications with web2py? I'll be sure to note your answer so I can provide more precise percentages next time. Thank you.", "group_id": 373, "id": 390180}, {"user_id": 22109, "stars": [{"date_created": 1300588411.4998109, "user_id": 1}, {"date_created": 1300610442.885946, "user_id": 1930}, {"date_created": 1300646532.558553, "user_id": 1979}, {"date_created": 1300731420.2741921, "user_id": 18843}, {"date_created": 1301773507.770386, "user_id": 1264}], "topic_id": 12644, "date_created": 1300587991.225909, "message": "Holy crap, somebody said something about web2py on the internet! Better fire up the typing machines, it's gonna be a long night.", "group_id": 373, "id": 390255}, {"user_id": 209, "stars": [], "topic_id": 12644, "date_created": 1300588046.5701461, "message": "@av201001 My complaint with that argument is that you are seeming to put forth the idea that something has to be tried (and to completion!) to determine it's proper use in one's personal/work life. It, um, doesn't. Attacking me personally isn't fair either, so I'll just ignore that.", "group_id": 373, "id": 390257}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300590218.81567, "message": "@issackelly I should add that not only have most of the naysayers not used web2py, but many of them are actually the lead developers of, contributors to, or otherwise heavily invested in alternative Python frameworks. They are clearly not dispassionate observers, yet they rarely indicate that.", "group_id": 373, "id": 390327}, {"user_id": 21247, "stars": [{"date_created": 1304272617.0224071, "user_id": 2376}], "topic_id": 12644, "date_created": 1300589580.588511, "message": "Summary. It sees some people here have complained about web2py hidden imports but had failed to argue why that is bad for web2py and not bad for Enthought python. Other people have argued against about web2py use of exec. We agree that has cons we also pointed out pros. Nobody has argued we are wrong. Yarko has complained about reusability of code. I believe Yarko is wrong and web2py code is not less reusable than Django's. I do not think Yarko has used the new plugins or the new wizard either. Finally pitprohest reminded us about the \"aggressive\" web2py advertising campaign. That is an internet meme. You can google web2py posts vs Django posts vs Flask posts on reddit and see who wins/loses. This thread itself demonstrates that the campaign against web2py preceded any response from our members.", "group_id": 373, "id": 390308}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300589961.611521, "message": "@issackelly No, your complaint was specifically that the statement was not factual, not that it was irrelevant whether or not true. And I did not attack you personally. You led me to believe that you really cared about whether my claim was true -- if people like you are willing to declare your status, then we'll have even better data. Now you have shifted your argument. And I agree with you that something does not necessarily have to be tried \"to determine its proper use in one's personal/work life.\" I'm not saying you have to have deep experience with web2py to have *any* opinion about it, but I hope you will admit that the opinions of people who have actually used it are likely to be much better informed. Furthermore, I think if you're going to enter a public forum and disparage a framework with extreme and definitive claims about it (thereby impugning the integrity of those who work on and with that framework), then you have an ethical obligation to really know what you're talking about and have the goods to back up your claims. If all you have is a hunch, hypothesis, or vague concern based solely on a cursory review, it's fine if you want to make a private decision to avoid it in your personal/work life -- but don't jump on the internet and tell the world that you're absolutely sure its usage will be harmful. In other words, be more circumspect and humble, and dare I say, open-minded. It would be one thing if web2py were brand new and untested, but it has been used by thousands of people over several years with great success, so we've got some real data suggesting the hunches, hypotheses, and vague concerns are overblown at best. Thank you.", "group_id": 373, "id": 390317}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300590964.6852219, "message": "web2py now counts 2670 registered users, 100 contributors and is it is supported by many software companies worldwide. These people are not idiots. They are very smart professionals who have carefully considered their options. You are alienating such large community of Python users. By making baseless complaints about web2py, you are making a huge disservice to the Python community. You are being divisive simple because we choose not to use the same web framework that you like. You cannot expect to make a statement about web2py and not getting a response. Of course you are free to make any statement you like but you need to take responsibility for what you say. We will fact check your statements, and will point out your mistakes. You can choose to ignore the fact that thousands of web2py users read what you say and think you are fools, but that does not make those people go away. Once more I will point out many web2py users dislike some of the other frameworks yet we always try to be respectful of other people work, whether we like it or not.", "group_id": 373, "id": 390352}, {"user_id": 209, "stars": [{"date_created": 1300591792.9093781, "user_id": 4156}, {"date_created": 1301773645.927978, "user_id": 1264}], "topic_id": 12644, "date_created": 1300591222.259243, "message": "Yup, and I'm saying \"I wasn't saying those things about web2py... so it doesn't matter if I used it, please leave me out of this\". I was making a shallow point about your arguing tactics (clearly... I thought... just a joke). \n\nNow, I will say those things, because well, I don't know why.\n\nIf I were a casual observer [you're right, I'm not, I picked a toolset I liked, and I'll stick with it, namely because I get a lot of work done with it, and I like the people involved] I would also note that the people who do actively speak out against some design decisions, don't also say \"flask is bad because ....\" or \"tornado isn't pythonic because ...\". really, I think that if you dropped implicit imports, most people would shut up. Exec, to me personally is a weird decision, but I see your argument for it, and not seeing it in practice, or any other data, I really don't care.\n\nI do appreciate that you don't actively have bad things to say about other frameworks. I can also tell that you work very hard at what you do, and want to (and do!) have other people use your work. There are just a couple of things that make you really, really, stand out, and people will always go \"that's ridiculous\" because of that. Some of those things, people see as core to Python, and they see going against it as an affront to their work, teaching Python, to people learning Python, etc.", "group_id": 373, "id": 390358}, {"user_id": 209, "stars": [], "topic_id": 12644, "date_created": 1300591297.329937, "message": "That being said, I don't have a lot of interest in continuing this discussion in a public manner.", "group_id": 373, "id": 390364}, {"user_id": 12404, "stars": [{"date_created": 1300593406.6125801, "user_id": 21247}, {"date_created": 1300626034.0710609, "user_id": 19090}], "topic_id": 12644, "date_created": 1300592771.3538871, "message": "pssst, hey guys, they're just web frameworks. :)", "group_id": 373, "id": 390427}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300594858.952117, "message": "@issackelly \"Sorry, I just don't fully understand that reference.\" My point was just that web2py is not the only framework that has to defend its design decisions.", "group_id": 373, "id": 390498}, {"user_id": 21247, "stars": [{"date_created": 1300593647.868397, "user_id": 209}], "topic_id": 12644, "date_created": 1300593485.253176, "message": "@tbatterii +1 It is not like we are talking about religion. ;-)", "group_id": 373, "id": 390456}, {"user_id": 21247, "stars": [{"date_created": 1300594585.172725, "user_id": 209}], "topic_id": 12644, "date_created": 1300594516.447962, "message": "@issackelly btw. I do agree with your objection. You do not have to try something to know if it is good or bad, assuming the reason for your judgement is fact based on and not based on somebody else propaganda. I do understand why some people dislike the use of exec and I do not object to their dilike of it. There are design design decisions that I dislike about other other frameworks but I do go public telling everybody about that. I do not assume my aesthetic test should be the same as everybody else. The fact that other fellow programmers make their work public and available to others, for free, is commendable and more important to me than the shortcomings of that software. The idea that one can wrote a piece of software that pleases everybody is utopic. The fact that we have choice is good. If we were to respect more each other work, instead work than against each other, we would all benefit.", "group_id": 373, "id": 390488}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300593899.442049, "message": "@issackelly \"I would also note that the people who do actively speak out against some design decisions, don't also say 'flask is bad because ....' or 'tornado isn't pythonic because ...'.\" Well, Chris McDonough has spent a lot of time defending Pyramid on Reddit, and had to post 12,000 words \"Defending Pyramid's Design\" (http://bit.ly/fjoURy).", "group_id": 373, "id": 390475}, {"user_id": 209, "stars": [], "topic_id": 12644, "date_created": 1300594755.3694899, "message": "@av201001 I don't know Chris McDonough (by name, or association, maybe I'd know him by an online handle?) Sorry, I just don't fully understand that reference. Very honestly, I know nothing about Pyramid, Pylons, or Zope, or their history. \n\nYour ides of good reasons, and others idea of good reasons are very different.", "group_id": 373, "id": 390497}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300594683.761847, "message": "@issackelly \"There are just a couple of things that make you really, really, stand out, and people will always go 'that's ridiculous' because of that.\" You're probably right about what people are thinking. I guess the point is that they don't have good reasons for thinking \"that's ridiculous,\" let alone for publicly impugning other people.", "group_id": 373, "id": 390493}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300595534.8833189, "message": "@issackelly \"Anyway, I'm not hating on web2py, and I was trying to make that clear. I'm trying, not to be, that guy.\" Much appreciated. :)", "group_id": 373, "id": 390524}, {"user_id": 209, "stars": [], "topic_id": 12644, "date_created": 1300595050.0327649, "message": "Django has been in that position too, and it has to defend the same decisions over and over too, cest la vi.", "group_id": 373, "id": 390504}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300595092.2279241, "message": "And this is the bottom line. We cannot being accused on one side of odd design decisions and - on the other side - of aggressive advertising, for trying to defend those design decisions. Mind I admin they are odd. I just claim we have good reasons to make them and defend them.", "group_id": 373, "id": 390505}, {"user_id": 12404, "stars": [], "topic_id": 12644, "date_created": 1300595755.0317459, "message": "I sure do wish we get this argument settled soon. I have a trillion dollars riding on the outcome. :)", "group_id": 373, "id": 390531}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300597237.4267361, "message": "@tbatterii I will concede the argument for 1% of that... or maybe not. ;-)", "group_id": 373, "id": 390565}, {"user_id": 209, "stars": [], "topic_id": 12644, "date_created": 1300594986.7465689, "message": "Anyway, I'm not hating on web2py, and I was trying to make that clear. I'm trying, not to be, that guy.", "group_id": 373, "id": 390502}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300595438.1452799, "message": "@issackelly \"Your idea of good reasons, and others idea of good reasons are very different.\" Right, I believe that if you're going to make an empirical claim about the way the world is, you need data to demonstrate the world really is that way. Other people are happy to substitute their intuition for data. Take the implicit import issue -- I have yet to see anyone explain why or how it will produce any harm, let alone offer data showing it does in fact produce harm in real-world web2py usage. Meanwhile, we've got plenty of data to the contrary (in the form of lots of real users not having any problems). Note, mindlessly repeating the \"explicit is better than implicit\" mantra does not count as a \"good reason\" -- it is, in fact, a tautology.", "group_id": 373, "id": 390517}, {"user_id": 19983, "stars": [], "topic_id": 12644, "date_created": 1300602109.6391771, "message": "...there is no web2py parking sign for the community to appropriate...", "group_id": 373, "id": 390740}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300609140.8517959, "message": "@massimodipierro - the ungraciousness of \"yarko has this...; yarko hasn't that...\" does not change anything about my basic observation (accuracy of your statements what I have or have not looked at are irrelevant - its demonstration of critique of person, rather than topic is clear): claims were made of modularity, and I asked where that evidence is in use. I saw no reply of examples about web2py (lots of things about others). My observations stand on their own, and I graciously invite and await presentation of evidence which would dismiss my observations as without weight. Until then.", "group_id": 373, "id": 391323}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300611128.3075521, "message": "@av201001 double bind (really - look it up): \"Furthermore, people who are critiquing web2py based on actual usage usually like to mention that in order to lend credibility....\"", "group_id": 373, "id": 391400}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300628259.9886091, "message": "http://blip.tv/file/4879126 http://vimeo.com/21185623", "group_id": 373, "id": 392009}, {"user_id": 13916, "stars": [{"date_created": 1300646185.1543629, "user_id": 205}, {"date_created": 1300646823.4492061, "user_id": 22109}, {"date_created": 1300654411.0005691, "user_id": 1930}], "topic_id": 12644, "date_created": 1300631015.167156, "message": "so....has anyone changed their mind on what framework they like to use ? hmm, thought not....", "group_id": 373, "id": 392066}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300633944.6076059, "message": "Can we all agree that ANY python framework is better than PHP?", "group_id": 373, "id": 392202}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300644783.158258, "message": "@yarkot Yes, I know what double bind means, but I do not see how it is relevant here. If you care to elaborate, I would be happy to respond. Thank you.", "group_id": 373, "id": 393019}, {"user_id": 22569, "stars": [{"date_created": 1300660289.4108031, "user_id": 21247}], "topic_id": 12644, "date_created": 1300657654.2793691, "message": "@markramm Thank you. Much appreciated.", "group_id": 373, "id": 393950}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300653857.892556, "message": "@av201001 honestly? Surely you must be kidding. Read your own words. Think. You argue that people who critique have not used web2py, so have little credibility. Then you dsicount those who have experience and raise issues. You have created a textbook example of double-bind.", "group_id": 373, "id": 393731}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300655073.021663, "message": "... and further consideration, the time for introductions has passed, @ericflo was (in hindsight) surprisingly astute - thanks Eric; ignore is appropriate.", "group_id": 373, "id": 393825}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300654311.9569559, "message": "@av201001 - anyway, who are you? Your profile here is completely anonymous. There is no user w/ anything resembling your ID on the web2py group. Have you even posted to other PyCon threads here? Were you a pycon attendee? Your intent here is certainly suspect, sir/mam.", "group_id": 373, "id": 393775}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300654633.826031, "message": "I'm done here.", "group_id": 373, "id": 393800}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300654563.477736, "message": "@yarkot \"You argue that people who critique have not used web2py, so have little credibility.\" No, I do not argue that they have little credibility -- I argue that their claims are far too strong given the evidence they have at hand.", "group_id": 373, "id": 393793}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300654914.8908811, "message": "@yarkot \"Then you dsicount those who have experience and raise issues.\" No, I do not. You took that quote out of context, so please, you go back and read my words. I was not saying those who have experience with web2py should be discounted. I was merely pointing out that people who have experience with web2py are likely to explicitly point that out as they offer a critique in order to lend credibility to their critique. That's perfectly reasonable to do, and indeed, you yourself have done so in this thread. In any case, those people are quite rare (which was my larger point) -- including you, I think I've seen two or three.", "group_id": 373, "id": 393815}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300654622.4934621, "message": "Massimo jumping into the fray with you certainly suggests that he knows who you are, and is willing to either defend web2py, or support you in the fight. But by your level of focus on just this thread, and your level of anonymity, you are a coward - only willing to complain loudly in anonymity. I hope one day you have enough conviction in your views and trust your own competence enough to [1] stand proudly as who you are and [2] do so without attacking others.", "group_id": 373, "id": 393799}, {"user_id": 1930, "stars": [{"date_created": 1300705030.4923561, "user_id": 1979}], "topic_id": 12644, "date_created": 1300654658.3798361, "message": "@av201001 you are a piece of work", "group_id": 373, "id": 393802}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300654972.798923, "message": "@av201001 - either introduce yourself, or bugger-off.", "group_id": 373, "id": 393817}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300656919.0682759, "message": "@yarkot \"and [2] do so without attacking others\" I do not think I have been attacking others, but if something I said has come across that way, please point it out to me. Thank you.", "group_id": 373, "id": 393921}, {"user_id": 21091, "stars": [], "topic_id": 12644, "date_created": 1300657083.9906261, "message": "wow, just got back from a family funeral where I was away from the interwebs for a couple days, and OMG, what a thread.", "group_id": 373, "id": 393928}, {"user_id": 1, "stars": [{"date_created": 1300660300.6926529, "user_id": 21247}], "topic_id": 12644, "date_created": 1300657376.0908699, "message": "Ok guys, let's keep this civil please.", "group_id": 373, "id": 393937}, {"user_id": 21091, "stars": [{"date_created": 1300719968.6783431, "user_id": 22569}, {"date_created": 1304277914.382123, "user_id": 2376}], "topic_id": 12644, "date_created": 1300657462.3206229, "message": "To the extent I'm at fault for this I'm sorry. I didn't intend to create this kind of attack on web2py, and was not as careful with my words as I could have been. Web2py is not a framework I would use, and I still have technical and philosophical differences with the project -- but the fervor with which some folks are attacking it is way out of proportion.", "group_id": 373, "id": 393942}, {"user_id": 21091, "stars": [{"date_created": 1300719970.8170879, "user_id": 22569}], "topic_id": 12644, "date_created": 1300657544.5999889, "message": "In fact, I think I mentioned a couple of things that web2py does *better* than some other frameworks, so while I said I didn't recommend it, I absolutely think we should *learn* from what they do right as well as avoid what they did (in my opinion) wrong.", "group_id": 373, "id": 393947}, {"user_id": 1, "stars": [], "topic_id": 12644, "date_created": 1300657398.871556, "message": "In fact, let's actually just drop this for now. Take it offline if you still want to discuss further.", "group_id": 373, "id": 393938}, {"user_id": 22569, "stars": [{"date_created": 1300660290.6641281, "user_id": 21247}], "topic_id": 12644, "date_created": 1300657674.3711519, "message": "@ericflo Sounds good.", "group_id": 373, "id": 393951}, {"user_id": 21091, "stars": [{"date_created": 1300664595.9558909, "user_id": 927}, {"date_created": 1300681933.3505859, "user_id": 20196}, {"date_created": 1300685519.5398099, "user_id": 7375}, {"date_created": 1300719949.816633, "user_id": 22569}, {"date_created": 1301773940.622782, "user_id": 1264}], "topic_id": 12644, "date_created": 1300658336.186775, "message": "@massimodipierro I'm sorry that this got out of hand. I didn't mean for this to happen, and I really do respect the work you put into web2py. \n\nI think you and the rest of the web2py community deserve more respect than I gave to you in the talk, where I was too casual in voicing my opinion. I respect you enough to know that you have thought hard about why you've made the choices I disagree with -- and while I still disagree quite strongly, I should have given that disagreement better voice. \n\nBeyond what I said, please know that I am offended by those who have turned my comments into a platform for a bunch of unfounded attacks on web2py. I hope we can have a community where we disagree without being disagreeable -- and to the extent that I've unintentionally fostered a bunch of disagreeableness I wish I could take back what I said. While we may disagree, I believe nobody deserves this, let alone somebody who's tried so hard to build open source software that makes people's lives better.", "group_id": 373, "id": 393971}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300659053.753952, "message": "@markramm Hello Mark. I do not have a problem with your comment since you are entitled to your opinion. In fact I do not think I ever mentioned it in public. In fact, I agree with your proposal for a common request/response object. I also agree with Armin's comment about the wsgi middleware. I am sorry I missed your talk or I would have asked you a question about it. It is not your fault this thread got out of hand.", "group_id": 373, "id": 394006}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300660047.9380591, "message": "Since you left @yarkot, many things have changed in web2py. We have implemented a plugin system that did not exist when you were an active user and we have rewritten a lot of modules so that they work independently. That is why I feel - and and sure av201001 feels - that you are talking about an older web2py, not about the newer one. Anyway... assuming I am wrong and you have been keeping up, I think you should bring up your objection(s) to the web2py mailing list so that other developers can share their opinion and perhaps you can help us make web2py better. We should not fight over software design decisions and list of features. We can talk about that but - please - not fight.", "group_id": 373, "id": 394089}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300659559.446146, "message": "@yarkot and @av201001. If this helps, I know both of you personally. Yarkot was a very active web2py user until 2009 when he disappear from the list but we kept in touch. Av201001 joined the web2py group more than one year ago and he is very active there. You were both at PyCon and probably crossed each other. If you had met in person you would probably like each other.", "group_id": 373, "id": 394048}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300662538.730119, "message": "@massimodipierro - Thank you for asking. I regularly maintain a current image of web2py, and continue to inspect the code, and test changes as they happen, although with decreasing depth. I did, with some bemusement watch your video link; tried template.py - it isn't packaged as a module, but - without running any extensive tests - does seem, with 5 other gluon files, it can be imported. I applaud your focus and efforts. I am in process of sending you a private note - I simply am not interested in continuing in this thread's context, and currently have not interest in jumping on the web2py group list again, as my professional needs have caused me to cast a broader net. I am interested in what others are doing from perspective of systems structure - as you know, this has been my interest and professional experience for > 25 yrs. From that perspective, you will understand that a developer making a web-based solution - indeed, the solution is a central systems element, and the framework a supporting structure. From this perspective, you will understand my claim that - as it currently is - web2py still has a way to go in the service of creating a component-based development environment (certainly not in the way that, for example, django has applications directories to aggregate smaller django solutions). You will also understand that my challenge about \"welcome\" as a template is a useful boundary condition test for \"plugins\". From my perspective, Pyramid, flask, django, web2py, etc. are all supporting systems players for the central job of providing reliable, rapid solutions.\nDefense of a framework environment as \"favorite\" is perfectly fine - it helps glue communities of contributors.\nDiscussion of which functionalities are needed for providing solutions is healthy, and what useful mechanisms for achieving them is enlightening - openness and respect goes a long way.\nDefense of functionality when it is not serving the development community as it might, or when such argument confuses or distracts from focus on how well addressed needs are elsewhere poses a disservice.", "group_id": 373, "id": 394225}, {"user_id": 21247, "stars": [{"date_created": 1300661517.2895229, "user_id": 1}, {"date_created": 1300662568.957577, "user_id": 1930}], "topic_id": 12644, "date_created": 1300660346.5287731, "message": "@ericflo BTW... congratulations for Convore. It is a nice system.", "group_id": 373, "id": 394103}, {"user_id": 1, "stars": [], "topic_id": 12644, "date_created": 1300661519.8237989, "message": "@massimodipierro thanks :)", "group_id": 373, "id": 394167}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300661191.285841, "message": "@massimodipierro \"If you had met in person you would probably like each other.\" Yes, probably. I'm sure the same for everyone in the conversation. Peace to all. :)", "group_id": 373, "id": 394149}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300663155.3131421, "message": "@massimodipierro - and you are correct, I have not looked in detail at the changes to web2py plugins, or the changes you have implemented. I look forward to seeing the web2py community creating components, and seeing an increasing number of examples of solutions built up from your components.", "group_id": 373, "id": 394282}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300664019.5376389, "message": "@massimodipierro - and I see you have a new section on componenets and plugins in your docs - http://www.web2py.com/book/default/chapter/13 - I look forward to seeing examples and discussion as web2py users proliferate component-based development in practice.", "group_id": 373, "id": 394318}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300664601.5798841, "message": "That section is of critical importance. You may also want to look at http://web2py.com/layouts and http://web2py.com/plugins (the look and feel of the page is crappy but we are working on it).", "group_id": 373, "id": 394334}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300665322.805367, "message": "Also, note that there are a number of plugins that are not yet listed on http://web2py.com/plugins (here's a good one: http://powertable.blouweb.com/), and there are some plugins and other reusable code on http://www.web2pyslices.com. We're also working on a whole new site to share plugins, applications, recipes, etc.", "group_id": 373, "id": 394385}, {"user_id": 22569, "stars": [], "topic_id": 12644, "date_created": 1300667647.8716979, "message": "@yarkot \"requirement for special naming (!) of plugin files\" See http://web2py.com/book/default/chapter/13#Plugins", "group_id": 373, "id": 394562}, {"user_id": 1930, "stars": [], "topic_id": 12644, "date_created": 1300666148.278986, "message": "Folks - I think you still have many challenges before you, not the least of which is requirement for special naming (!) of plugin files - that is part of my challenge to make the \"welcome\" bootstrap a plugin. Keep at it - continued good luck. Perhaps we'll eventually a web2py shop on startup row.", "group_id": 373, "id": 394457}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300670866.072829, "message": "Yarko since you continue to raise the issue, I have to continue reiterate the response. A plugin is a way to redistribute a subset of an app. It is a tar-gzipped set of files (models, controllers, views, modules, translations, static files). ANY subset of files can be a plugin, independently of any naming convention. Another issue is the admin interface. The admin interface groups files and folders that have a name starting with plugin_* (for displaying purpose only). We encourage this convention but it is not required to follow the convention to make a plugin. I do not believe this discussion belongs here.", "group_id": 373, "id": 394671}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300671611.1288879, "message": "I am having a de-ja-vu. You and I had this discussion two years ago and we discovered we meant different things by the word \"plugin\", therefore we had different expectations. Because to me it boils down to a semantic issue, I do not see much value in this conversation.", "group_id": 373, "id": 394706}, {"user_id": 21247, "stars": [], "topic_id": 12644, "date_created": 1300671167.5858979, "message": "Layout plugins for example do not follow this convention since they contain a file called views/layout.html", "group_id": 373, "id": 394688}, {"user_id": 22569, "stars": [{"date_created": 1300970193.3124249, "user_id": 5942}], "topic_id": 12644, "date_created": 1300969086.4416449, "message": "For those interested, here is a highly modular web2py app composed of 16 web2py plugins: http://pymantis.org", "group_id": 373, "id": 425926}, {"user_id": 31704, "stars": [], "topic_id": 12644, "date_created": 1304109517.7082801, "message": "Enjoying the conversation, I want to pass the link to an application made \u200b\u200bin web2py to monitor everything about this wonderful framework on Twitter: http://www.web2hash.dotcloud.com/", "group_id": 373, "id": 863368}, {"user_id": 31705, "stars": [], "topic_id": 12644, "date_created": 1304109996.0991459, "message": "hi all, this is pystar", "group_id": 373, "id": 863512}, {"user_id": 2376, "stars": [], "topic_id": 12644, "date_created": 1304278301.1549101, "message": "http://radbox.me is a video bookmarking site made using web2py! We absolutely love working with web2py at Radbox.", "group_id": 373, "id": 877431}, {"user_id": 1152, "stars": [], "topic_id": 12644, "date_created": 1304376413.459188, "message": "Why on earth are we getting web2py resurrections on a talk that happened at a conference months ago?", "group_id": 373, "id": 890521}, {"user_id": 1736, "stars": [], "topic_id": 12644, "date_created": 1304376441.472965, "message": "@jessenoller Mute button, my friend", "group_id": 373, "id": 890526}] |