views:

520

answers:

2

Let's say I want to use Google GWT on the client side and Google AppEngine Python on the server side. Furthermore, I want to be able to use RPC calls to the server as well as performing COMET based exchanges.

What are my options in term of existing frameworks?

+2  A: 

I found this by googling "gwt python": http://code.google.com/p/python-gwt-rpc/ -- it appears to be unsupported, since App Engine supports Java now.

And this, by googling "gwt comet": http://code.google.com/p/rocket-gwt -- which should work on your client-side to make hanging GETs to the server, which conceivably could be written in Python.

But I have to say, it's going to be a lot easier to do this if you just write the server-side in Java. GWT and Java were made for eachother, they belong together, and unless you've got some strong aversion to writing the server in Java, you should really consider it.

You could hack some solution together to make GWT and Python work together, but it could easily break in upcoming versions of GWT, meaning more work for you in the long run.

Just write the server in Java.

Jason Hall
I've had a lot of success writing client-side in GWT and server-side in Java, mainly because it saved me a lot of code duplication. For my validation-heavy application, writing the code once and getting automatic client-side and server-side validation was invaluable. Personally, I would go with AppEngine Python if using an existing Python framework (and use json or whatever the framework is using). If starting a project from scratch, I would go with AppEngine Java and use RPC.Can you give us more info as to why you want to use server-side Python and RPC?
Philippe Beaudoin
The reason I am interested in server-side Python is because I find I am more productive writing Python code rather than Java.
jldupont
I'd be willing to bet that any productivity gain in using Python will be overshadowed by the hassle of getting it to work well with GWT.
Jason Hall
A: 

App Engine doesn't currently support comet, because it doesn't support hanging-GETs (eg, long-running requests). If you want to do comet, you'll have to use an external service, or wait for Comet support in App Engine.

Nick Johnson