I've been experimenting with web2py over the last week and I like it. Simple web apps are easy to create with very little work. I'm not keen on through-the-web code development but that's not essential to web2py -- everything can be edited directly as simple files. The code of the 'gluon' library seems fine to me. It's a very compact style of coding that (IMO) could use a few more comments, but it's at least as good as what I've seen in Zope and Plone. (Of course, web2py has not been around long enough to accumulate the kind of cruft that happens in more aged software). The documentation is pretty good, particularly in its examples and tutorials. The new "manual" is good. The one thing is miss is an API manual such as can be found for the PHP and Python libraries.
Have you looked at the source code? web2py is a bad joke with a lot of marketing. Then again, the author isn't really into the Python style - just its userbase. Look at Django if you want a full stack or Werkzeug if you want to roll your own; the latter can easily emulate the style of web.py or Pylons (in fact the trunk comes with these examples).
I'm not sure about the other frameworks listed but I did notice the following related to Django:
- Django's caching supports ram, disk, database, and memcache as well.
- Migrations are supported in Django via the 3rd party django_evolution to name one of a few.
- Django trunk also has simplejson included.
- For documentation there are the online docs, the djangobook.com website, three published books as of today, and at least a few other books coming out in the next few months. My point just being that there is more then just one book.
I just made many corrections. I could find only 2 published books. please send me a personal email if you have other corrections and they will be incorporated.
It also might be worth pointing out the community size based on the frameworks. By looking at their respective IRC channels and/or Google Group sizes you can get a rough estimate how big each of their communities are. Overall, I've found any / all python web framework communities to be extremely helpful and friendly. I say that not to take away from the non-python frameworks because I don't have experience with them.
I couldn't easily find your email so here is a list instead. These books are out right now:
I don't develop any sort of web framework or toolkit, so I have no idea which package you mean. I just don't see web2py being extracted from a large successful project, which I think is a partial recipe for success. I'm especially confused, because it's an "enterprise framework", but grown in a university.
We already have a full stack web framework with an insane amount of documentation - Django, and I would bet my money on its continued evolution and 1.0 release. If anyone is on the fence, look at the web2py/gluon source code and ask if that's the sort of full stack you see being maintained by a community.
"enterprise" does not mean it is developed by an enterprise. It means it was developed for the enterprise. For one thing it means it is stable and always backward compatible. It also means it packages everything you need including support for xmlrpc web services, file streaming, if_modified_since, partial content, distributed transactions, ticketing system, etc.
I beg to disagree, web2py is quite good, at least in my own impression much better that webpy, at least when looking at it from the angle of code documentation and cohesion.
ivan, have you actually used it yourself? What did you like/dislike about it? Can you gives us examples?
I personally don't like Django that much as it might be an overkill, and I kinda liked web.py, but the documentation is so poor and it misses a lot of features from a proper framework. Maybe web2py is the middle ground, and I will give it a look.
Dissmissing something, b/c its source codestyle is not pythonic enough for you, is a pretty shallow argument.
I wasn't advocating web.py - emulating its style was just an example of Werkzeug's flexibility. I recommend Django if it fits your application, or rolling your own stack (Werkzeug) if Django doesn't fit. I haven't used web2py because I don't invest time in things I have zero faith in.
Edit: full disclosure: I've written code far worse than this (in some ways). I just don't publicly release it and encourage language newbies to build on it.
Can you make any specific point so that it can be addressed or are you just ranting as usual? Who is doing marketing here? Since when computer science is about faith?
Being a professor who teaches the stuff for a living and grades other people's work, you remind me of that typical PhD student that knows enough to talk about his work but nothing enough in detail to ever graduate. No offense.
Let me add that in life is the new things that give you an edge, not those things that everybody knows.
ok, but still his analogy is not bad. Ivan's arguments against web2py so far are unconvincing. It reminds myself, right out of college, when I thought "I knew" things, and I was fully opinionated for everything, as long as I had heard something about it.
The Dunnin-Kruger effect in action. http://en.wikipedia.org/wiki/Dunning-Kruger_effect
I judge software still in development by the people developing it, especially if it's something that'll be part of my project for a long time. It tells me about the direction it's going, and it's a fast and incredibly accurate method. If you heard that Linus Torvalds designed a DVCS, and Microsoft designed a DVCS, which do you think would actually work? Hopefully, that decision wouldn't take more than 10 seconds. There are exceptions; you might have subtly different (but important) requirements than what the library/tool author was designing for.
When you see this amount of unjustified duplication and defensive rationalization (including off-site remarks from the developer that building an ORM is easy), warning sirens should go off in your head.
I did go through some of the source code, but it's not my job to provide detailed code review. I can say that the packaging is strange, it doesn't resemble Python, and I've seen better versions of everything bundled in web2py. I'm not sure the integration and "ease" of install is worth being stuck to this framework.
I disagree with your criterial of looking at previous qualifications of the developer but by your own criteria you should love web2py.
Yes, developing the ORM was very very easy compared to, for example, developing www.fermiqcd.net (BTW we should be friends since I see you are in data representation and me too these days mdp.cti.depaul.edu/vqcd).
I will agree with you that for some of the web2py components there is a better module out there, the point you are missing is that the web2py modules are designed to work together while the alternatives are not. You will not appreciate this until you try it. Here is an example: Pygments is a much better general purpose syntax highlighter than the web2py's one, nevertheless web2py's one can highlight web2py code, create clickable links from web2py keywords to the web2py online documentation, is faster and fits in 10k. If you need to syntax highlight Java or PHP code you can still easy_install and use Pygments. Although you can, the web2py modules are not designed to be taken out and used separately.
In mentioning that its "the new things that give you an edge," are you suggesting that web2py is one of those new things? In what non-trivial way do you feel that it differentiates itself from the literally hundreds of other web frameworks?
Examining the documentation I found the unsatisfying answer: "web2py is better because it is faster, it is easier to use, and it is stable and always backward compatible."
Do you seriously want a laundry list of everything wrong with web2py? Would that help you in some way, or would you refute it with a personal attack? If you do, I could send you an email this week.
I've tried Django and web.py in the past, and given up with both. web2py works, is nicely implemented and the documentation is starting to take shape. Good support on the mailing list too.
Massimo has boiled down the essence of what a web app needs to do (MVC, REST), and has delivered it in a clean, simple package, which is just what I would expect from a Computer Science professor.
The new Google appengine Bigtable datastore makes any SQL-based ORMs moot now anyway, so all we really need to worry about are the business logic and presentation, both of which web2py excels at.
Yes, you can still use Textmate if you want, but the cool thing about web2py is you never need to leave the browser IDE. Also, the framework itself is so compact you can carry everything around in a few megs of a USB thumb drive, so now you have a truly portable cross-platform package you can use to develop wherever you are!
So just get involved, and let's lead the way into the cloud... I see a huge need for that kind of leadership over at the appengine; this is a chance to make a real difference and shape the future, folks.
Web2py is a joke. The guy wrote his own ORM, rather than working with the best-of-breed Python ORM SQLAlchemy, and he touts this as a feature. He was also quick to point out that Web2py won a rumble, but fails to mention that this was because none of the other Python frameworks had even heard of it.
If you want a good Python framework that doesn't unduly dictate your app structure, go to Pylons.
The Flourish conference was sponsored by Google. The creators of Django, CackePHP and Rails were on the mailing list and some even replied to it. I agree that if nobody else participated it is not a victory. I would not say web2py won, I would say web2py was not afraid to participate and delivered a working project in 24 hours that met the specs. The organizers said web2py won. Ask the organizers. Ian Biking was on the jury.
"web2py is the only framework that participated to the www.flourishconf.com rumble (develop a web app in 24 hours) and won because all the other frameworks chickened out."
Three other people came to pick up the rules and some more were on the mailing list, were supposed to and didn't. I spent 24 hours coding and felt like a fool when nobody else delivered. You are taking a quote I made to my users' group out of context. Why do you turn a discussion about some work of mine into a personal thing?
inklesspen, don't all framework/orm whatever come out when a guy is frustrated with what's there and starts it's own?
Doesn't Django have its own ORM?
You can say that his ORM solution is crappy, or doesn't work well, but you can't dissmiss something just b/c it is not one of the old packages.
While I may not want to use his framework for anything mission critical, it seem to be a good choice for a small and app or for quick prototype development.
His main points in his framework is simplicity and ease of starting.
SQLAlchemy is better than the web2py ORM in dealing with legacy databases. web2py has restrictions in this case. But the web2py ORM is much better integrated with the rest of the framework than SQLAlchemy is integrated with, for example, Pylons or TurboGears. If you do not use the entire web2py framework you are better off with SQLAlchemy. If you do use web2py, you are better off with its own ORM. Here are some preliminary benchmarks (take them with grain of salt)
http://mdp.cti.depaul.edu/AlterEgo/default/show/76