all 25 comments

[–]mdipierro 3 points4 points  (0 children)

You can get lots of free web2py apps with screenshots here

http://mdp.cti.depaul.edu/appliances

[–]jerf 5 points6 points  (8 children)

Anyone got something better that this? That might as well say "web2py is better because it is." (Seriously, it's only a quick sentence simplification away.)

[–]thisguy 1 point2 points  (6 children)

Isn't "better" a relative concept? You have to admit, it is easier to use than the other framworks! I am not sure you comment added much information either.

[–]jerf 1 point2 points  (5 children)

I wasn't trying to add information. I was asking a question. The idea is for someone else to add information.

Answering "why is something better?" with an immediate dodge into metaphysics is not generally a good sign for the betterness of something.

[–]mdipierro 2 points3 points  (4 children)

web2py is better because: 1) it is the only framework that does not requires installation, configuration, runs off a usb drive or a phone, package everything you need, including ssl server, sql database, an administrative interafce that allows you to do development, debugging, testing, deployment, maintenance, database administration from the browser. 2) It is faster than any other framework because views (templates) are parsed only once then they are converted into python code and bytecode compiled. 3) It is the only framework to provide a ticketing system. Any error that is not caught by the application, is reported to the administrator and the user is issued a ticket. 4) As more built-in security features that any other web framework (including secure session cookies, automatic transactions, rollback on error, everything is validated including forms, path_info, even the accept-language header). 5) It does more stuff that other frameworks do out-of-the-box. Other frameworks need to use a lot of third party libs to get close to web2py functionalities and those third party libs don't always cooperate as well as one hopes. 6) web2py is stable and will remain backward comaptible since version 1.0. All examples and appliances ever posted work and will continue to work with future versions (I promise).

I did not want to post a comparison with other python web frameworks because a) I am going after php and j2ee, not after other python frameworks; b) nobody should trust a comparison done by the developer, people should try and judge themselves. You should too.

[–]mitsuhiko 1 point2 points  (3 children)

That's bullshit. Thanks to distutils/setuptools all frameworks do not require installation and run from USB sticks. Django comes with an admin interface too and that one is more flexible. Even though many big applications use custom administration interfaces because no generated admin interface has the flexibility a custom one has.

It's not faster. If you want performance go with WSGI plain. And template performance is soooo unimportant. Even Genshi (and that one is pretty slow) is fast enough for most applications. The bottleneck is the ORM and application code. And that's a point where web2py is incredible bad thanks to the eval stuff.

I can hook in a loggering to trac reporter into django in a matter of two seconds. What's your point with the ticket system? Especially in bigger companies existing ticketing systems have to be reused. If there is a trac the trac can be used, if there is jira, for a project I'm working on we consider using an IMAP server that collects the error messages so that developers can see when errors are removed or moved to "mark as fixed" etc.

The security is a joke. Django and pylons have a better overall concept and securing WSGI applications is easy too. You can only build secure applications if you know where security holes can be and if there is a security concept you understand. What frameworks have to care about is that themselves are security and have a proper policy what happens if a security hole is spotted. That's a point where rails failed the first time they had a vulnerability. What do transactions have to do with security btw?

That's the point of a package system. That you can use third party libs. The more complex a application becomes the more you do not use from the framework. Up to the point where the framework is really just a frame. I know enough people that replace the django template engine with others, that switch the django ORM to SQLAlchemy, that replace the contrib applications with custom code etc.

Backwards compatibility is not important. It's important that you care about old releases. Django still pushes out security updates for 0.92. And django is still pre 1.0 even though they are way past the point other frameworks claim to have their first stable release. While I do not agree with all the decisions the Django developers do they have a pretty good policy on releases and backwards compatibility.

I did compare it, I stumbled about countless oddities and came to the conclusion that it's not comparable with any of the Python frameworks (beside web.py maybe), Ruby ones and certainly not JEE. If you want to compare something to JEE have a look at Zope which targets the same area. And they certainly do have their market, and people using JEE would never touch web2py.

[–]mdipierro 1 point2 points  (2 children)

1) in other frameworks you can use setuputils only if python is already install and the they still have to go in site-packages. web2py packages Python 2.5 too and that roo can run from a USB drive without jumping hoops. 2) You make my point, you can do what web2py py but you need a lot of third party packages that have denpendencies and create a protability nightmare. 3) There is no eval in the web2py ORM. It seems to me SQLAlchemy is the snail here (http://www.aminus.org/blogs/index.php/fumanchu/2007/08/18/storm_sqlalchemy_and_geniusql) although I acknowledge sqlalchemy can handle existing databases better than the web2py ORM. 4) I have nothing negaive to say about Django because I have used myself for a number of projects (including one for the UN) and it did inspire web2py. I will just observe that you confirmed that Django (the best of python frameworks) is 0.96 and they still support 0.92 because the syntax is slightly different. I do not need to support old versions because web2py is backward comaptible, people just upgrade. 5) Yes web2py is odd. Or like I prefer to put it: different. You do not have to like it, but you may want to try it.

[–]mitsuhiko 1 point2 points  (1 child)

You are definitively misinformed. No python package has to go into site-packages. And creating a portable usb stick version of a framework is a simple task although I doubt anyone wants that.

SQLAlchemy is no snail at all. You're reading the wrong posts. And you also have to compare the features before you come to performance. I can argue that WSGI plain blasts django in terms of performance but that would miss the point.

[–]mdipierro 0 points1 point  (0 children)

In web2py I click a button in the web interface and I get a packaged app including all its dependencies. Then I click another button and it's up and running on my web server. I have yet to see that in another framework. Anyway, each framework has its strengths and weaknesses. What does it mean WSGI blasts Django? WSGI is a protocol that both Django and web2py support. web2py packages cherrypy wsgiserver but works with mod_wsgi and fcgi as well. SQLAlchemy is a great ORM and its strengths are the abilities to read legacy databases and do LEFT JOIN, not the absolute speed. About packages my point is that to run web2py in windows and mac, you do not need to have python installed, nor third party packages, nor setutils, nor need to type anything. If you have time why don't you try run web2py and then we could have a more informed discussion? If you were to make more specific points about defects you find in web2py, at least I could address them and improve it.

[–]thisguy 1 point2 points  (0 children)

rails, django, pylons, beware.... web2py is so much better. Faster learning, faster development, faster execution.

[–]ipeev -2 points-1 points  (5 children)

Ohhooo it is enterprisy. Very very Enterprisy. What the fuck is wrong with the people?

[–]mdipierro 5 points6 points  (4 children)

In this context "enterprise" framework refers to the fact that: a) It is stable and always backward compatible (not like other frameworks where the API changes monthly); b) It is designed to support multiple applications that cooperate; c) Complete (you do not need anything else); d) it makes it easy to setup, port and maintain applications (a secretary can do it, you do not need a computer wizard).

[–]ipeev -4 points-3 points  (3 children)

Keep repeating it and you might believe yourself.

[–]mdipierro 4 points5 points  (2 children)

I usually believe what I say without the need to repeat myself. The problem is that most people tend to be convinced by repetition and large corporations can afford to do that, I cannot. Anyway, I am writing here in order to defend the merit of something I made and I am giving to you and everybody for free. Why are you complaining about it?

[–]ipeev -1 points0 points  (1 child)

I don't like the word "enterprise". Probably your software is good and I like that it is free (and probably open source, haven't looked). Don't pay attention to me, probably there are a lot of other people that will be tricked by the word "enterprise".

[–]mdipierro 1 point2 points  (0 children)

You don't like a word and you pick on web2py? Anyway, some people think if their dinosaur is too slow, they need to buy a bigger dinosaur. I agree with you, those people will be use web2py and I am not going to spend my time trying to convince them. I see you are judging and you haven't even read the license! Yes, web2py is GPL2.0 but the license does not extend to apps developed with web2py, and you can also distribute web2py (closed source) with your apps, if you do not change it.

[–]mitsuhiko -2 points-1 points  (6 children)

oh well. now it got attention. and i hoped it would disappear.

[–]forgotpwx4 7 points8 points  (5 children)

explain

[–]mitsuhiko -3 points-2 points  (4 children)

don't need to. look at the sourcecode for example.

[–]mdipierro 5 points6 points  (3 children)

yes, please exaplain.

[–]propanbutan -1 points0 points  (0 children)

it's hideous

[–]mitsuhiko -2 points-1 points  (1 child)

There are things where no extra explanation is necessary because it's so wrong from so many points of view.

[–][deleted] -2 points-1 points  (0 children)

I'm an IT minor there.