Django or Web2Py for PyWhip
Since we are changing the name of the project from PyWhip to (PyKata, PyPractice, PyJet, ???), now might be a good time to reconsider some other basic choices. App Engine seems to be the right choice for the server foundation. Anyone who has tried to develop a web app with modpython will appreciate not having to worry about details like keeping track of user logins. The one major choice I'm still not comfortable with is the framework Django vs. Web2Py. We are currently using Django, because that was the default providcd by App Engine. Web2Py is also supported by App Engine, but perhaps not yet as well integrated (I don't know). The main issue seems to be versatility vs simplicity. My initial impression is that Django is more versatile and Web2Py is simpler. Django has the bigger community of users, more published books, etc., but Web2Py is still early in its growth. We need a framework which will provide all the features needed for a website like JavaBat.com, but will be simple enough that we have no trouble finding web programmers to take over when our current developers move on. I'll let the folks who are ready to step up and do the work make the decision, but if anyone has any experience, comments or suggestions, now is the time. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ *
On Thu, Feb 25, 2010 at 12:17 PM, David MacQuigg <macquigg@ece.arizona.edu> wrote:
Since we are changing the name of the project from PyWhip to (PyKata, PyPractice, PyJet, ???), now might be a good time to reconsider some other basic choices. App Engine seems to be the right choice for the server foundation. Anyone who has tried to develop a web app with modpython will appreciate not having to worry about details like keeping track of user logins.
Word on the street is mod_wsgi is superior to mod_python. Just reporting what I hear.
The one major choice I'm still not comfortable with is the framework Django vs. Web2Py. We are currently using Django, because that was the default providcd by App Engine. Web2Py is also supported by App Engine, but perhaps not yet as well integrated (I don't know). The main issue seems to be versatility vs simplicity. My initial impression is that Django is more versatile and Web2Py is simpler. Django has the bigger community of users, more published books, etc., but Web2Py is still early in its growth.
App Engine is what's obscure in this picture. Google didn't take the world by storm with it, adding Java not helping that much. Not saying it's not a good product, have written an appengine myself (osgarden.appspot.com), plus was a tech reviewer for the book by Dr. Chuck.
We need a framework which will provide all the features needed for a website like JavaBat.com, but will be simple enough that we have no trouble finding web programmers to take over when our current developers move on. I'll let the folks who are ready to step up and do the work make the decision, but if anyone has any experience, comments or suggestions, now is the time.
-- Dave
At issue is whether try-over-the-web is a way you need to go, granted other language communities are trying it. You've got Python out of the box if you're a Linux user, and so the question is, if you're not a Linux user, do you even matter? When it comes to server side architectures, probably not. That being said, Google Appengine is still a contender, so best wishes with PyKata or whatever you elect. Kirby
kirby urner wrote:
At issue is whether try-over-the-web is a way you need to go, granted other language communities are trying it.
You've got Python out of the box if you're a Linux user, and so the question is, if you're not a Linux user, do you even matter? When it comes to server side architectures, probably not.
The big difference between doing it "in the cloud" and doing it with a downloadable app on the student's computer is teacher interaction. Sure, you could do even that with the right kind of networking, but we will still need a central server if we want instructors to have a "wide and deep" view of the students work in progress, not just a clipping sent in an email. The immediate problem might be difficulties with recursion, but if the teacher drills down into the lesson on for-loops and sees some misunderstanding there, she might suggest that the student do a few more problems in that area first. Here's another scenario. Imagine a diverse set of students, with an equally diverse collection of laptops, desktops, OS's, whatever. When a student has some difficulty with his homework, he presses the HELP button, and within minutes a "black belt" PyKata instructor is looking at the student's work, and offering advice. These instructors could be former students making a little money as tutors, or just doing it as a favor for their younger classmates, or maybe helping the sophomore team get ready for a competition. I'm not seeing much downside to doing this as a web app, so I haven't given much thought to making it a self-contained downloadable app. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ *
On Thu, Feb 25, 2010 at 4:23 PM, David MacQuigg <macquigg@ece.arizona.edu> wrote:
kirby urner wrote:
At issue is whether try-over-the-web is a way you need to go, granted other language communities are trying it.
You've got Python out of the box if you're a Linux user, and so the question is, if you're not a Linux user, do you even matter? When it comes to server side architectures, probably not.
The big difference between doing it "in the cloud" and doing it with a downloadable app on the student's computer is teacher interaction. Sure, you could do even that with the right kind of networking, but we will still need a central server if we want instructors to have a "wide and deep" view of the students work in progress, not just a clipping sent in an email. The immediate problem might be difficulties with recursion, but if the teacher drills down into the lesson on for-loops and sees some misunderstanding there, she might suggest that the student do a few more problems in that area first.
No argument there, that having a centralized study center will provide better overview stats. I'm just skeptical that a web site with the premise "we think you don't have Python installed, so try it here first" is getting off on the right foot. <namespace author = "h.g. wells" title="the time machine" > If you're a Morlock, working server-side, you've got Python installed. If you're Eloi, wallowing in Windows, it's easy enough to get it, and if you aspire to get into programming, that's a worthwhile first step. </namespace> I consider OS X a server side technology even if many OS X users know next to nothing about programming. In other words, lets not assume that people come to FlyPy or PyJet because they don't have a running Python, as that's likely not your demographic. They'll have it. On the other hand, if the message is more like: "do it here on our cloud or you won't get academic credit for your work", well, that's something else and might represent a reasonable instructor demand (getting everything as email snippets for checking is too much work). Based on my experiences helping international students, like this guy in Indonesia (a Facebook friend), it's not that easy sharing source code, especially when all the variable names are in Indonesian (for me, that's hard to read). There's this shared whiteboard we can use, with built in chat, but we each run our Pythons locally. Having a shared server in the cloud that we could both observe and work with, might be just the ticket.
Here's another scenario. Imagine a diverse set of students, with an equally diverse collection of laptops, desktops, OS's, whatever. When a student has some difficulty with his homework, he presses the HELP button, and within minutes a "black belt" PyKata instructor is looking at the student's work, and offering advice. These instructors could be former students making a little money as tutors, or just doing it as a favor for their younger classmates, or maybe helping the sophomore team get ready for a competition.
Finding someone to pair up with so that you don't get lost in some solo project that no one understands but you is a worthy goal. If doing your Python in the cloud helps you get expert attention, so much the better.
I'm not seeing much downside to doing this as a web app, so I haven't given much thought to making it a self-contained downloadable app.
-- Dave
From a student centric point of view, if I'm having trouble with my Python, where will I go?
Newgroups, user groups, Youtubes, Showmedo, a ton of other places. Friends. Associates... However, if I'm in a class with my peers and we share some over-the-web infrastructure, maybe that's another good way to get some help. Having classmates help one another, not just compete, seems very XP (extreme programming compatible) and should be encouraged. If they're already paying tuition, so that your Kata black belt has somewhere to collect, that's different from anonymous over-the-web students who've not signed up for any specific course. Right? I'm sure you've already considered the angles. Kirby
Mind that my opinion is biased since I am the author of web2py. mod_python is now considered deprecated. WSGI is "the standard" for communication between web server and we app. Django was using mod_python and them moved to WSGI for example. mod_wsgi is the WSGI adapter for apache. All major python web frameworks today support WSGI. web2py works on Google App Engine (GAE) better than Django. The reason is that the web2py Database Abstraction Layer works out of the box on GAE so you wrote your application once (with some care) and you can run the same app without modifications on GAE or a PC with relational database (we support 10 different ones). If you use Django you have to use the native GAE database API on GAE and therefore your code has to be different whether you run on GAE or on a relational database. It is possible that there is a database abstraction layer that works on GAE for Django but, if so, it does not come with it. In the case of web2py this is out of the box. GAE does not have joins but has ListProperty. If you want to use this you need some GAE specific code but you can still access this using GAE DAL API. The Django admin (the strength of Django) used not to work on GAE. I do not know if that has changed. The web2py appadmin (loosely equivalent to Django's admin) does work on GAE. Currently web2py has ~1750 registered users and more than 50 contributors. We estimate the total market share to be about 10% of Django's. The book is now free online at http://web2py.com/book I am currently working on two projects using web2py funded by the Department of Energy. The SahanaPy project (disaster management system for Haiti) is also based on web2py. I will be happy to answer more specific questions on the topic but I am in India for a physics conference and have limited connectivity. I have to be concise and canno check emails often until Monday. You may want to consider asking for some user experience on the web2py list http://groups.google.com/group/web2py. Massimo ________________________________________ From: edu-sig-bounces+mdipierro=cs.depaul.edu@python.org [edu-sig-bounces+mdipierro=cs.depaul.edu@python.org] On Behalf Of David MacQuigg [macquigg@ece.arizona.edu] Sent: Thursday, February 25, 2010 2:17 PM To: edu-sig@python.org Subject: [Edu-sig] Django or Web2Py for PyWhip Since we are changing the name of the project from PyWhip to (PyKata, PyPractice, PyJet, ???), now might be a good time to reconsider some other basic choices. App Engine seems to be the right choice for the server foundation. Anyone who has tried to develop a web app with modpython will appreciate not having to worry about details like keeping track of user logins. The one major choice I'm still not comfortable with is the framework Django vs. Web2Py. We are currently using Django, because that was the default providcd by App Engine. Web2Py is also supported by App Engine, but perhaps not yet as well integrated (I don't know). The main issue seems to be versatility vs simplicity. My initial impression is that Django is more versatile and Web2Py is simpler. Django has the bigger community of users, more published books, etc., but Web2Py is still early in its growth. We need a framework which will provide all the features needed for a website like JavaBat.com, but will be simple enough that we have no trouble finding web programmers to take over when our current developers move on. I'll let the folks who are ready to step up and do the work make the decision, but if anyone has any experience, comments or suggestions, now is the time. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
On Thu, Feb 25, 2010 at 6:00 PM, DiPierro, Massimo <MDiPierro@cs.depaul.edu> wrote:
Mind that my opinion is biased since I am the author of web2py.
<< snip >>
I will be happy to answer more specific questions on the topic but I am in India for a physics conference and have limited connectivity. I have to be concise and canno check emails often until Monday. You may want to consider asking for some user experience on the web2py list http://groups.google.com/group/web2py.
Massimo
Hi Massimo -- Thank you for jumping in here. I've seen a web2py demo (by yourself) at a Pycon, impressive. Note that I'm not involved in this particular GAE project, am only commenting from a distance. I don't think the Python community is at a disadvantage just because there's nothing quite as dominant as Rails has been in Ruby world. RUBY ===== I did a quick scan for Ruby web frameworks that are *not* Rails and came up with Sinatra, Ramaze and Merb. I'm sure I missed some. SCHEME ======= In Scheme world we have Flapjax (client side), Lylux (pipeline, controller), Snooze (DBI) http://www.flapjax-lang.org/ http://blog.plt-scheme.org/2007/08/experience-report-scheme-in-commercial.ht... I mentioned Scheme in particular because I've been hanging out with functional programmers on math-thinking-l recently. Some of those folks have been reminding me of their low opinion of anything object oriented, whereas I've been exulting about Python as a math-learning tool, in part because of its strong concept of types (dynamic, but not weak): http://controlroom.blogspot.com/2010/02/new-essays.html (see essay (b) linked from this blog post if keen to read more) Scheme and LISP are famously typeless. Hey, I didn't realize GIMP came with a dialect of Scheme for scripting, called Script-Fu. http://docs.gimp.org/en/gimp-concepts-script-fu.html That's like using LISP to control emacs... ...or like using Ruby to control Google Sketchup. http://sketchup.google.com/download/rubyscripts.html AND SO ON... =========== PHP and J2EE still dominate don't they? I don't have any numbers handy. Then there's .NET, which might include Python again.... On and on it goes, eh? Kirby
participants (3)
-
David MacQuigg
-
DiPierro, Massimo
-
kirby urner