I have used both of these (Python and HTML5) seperately, however I’m keen to use the full power of Python over the web using HTML5 to draw things and handle the client side of things. I guess I’m looking for avenues to go down in terms of implementation. Here are some things I’d like to do if possible:
- Have very interactive data, which will need to processed server-side by Python but displayed and locally manipulated by HTML5 Canvas.
- Clickable components on the HTML5 Canvas which will communicate with the server side.
Is there an implementation that people can recommend? I.e. would Google App Engine be any good. Django? Pyjamas?
Thanks – apologies if this seems a little vague. I’m asking before trying one path to see if there is a heads-up to save time and effort.
The server side is much more developed than the client side in this case. (Rich JS libraries are a newer phenomenon, is all.) Django is an acceptable choice on the server, although I would at least consider Twisted.
My recommendation on the client side:
First choice is paper.js which is a library for manipulating canvas. Excellent performance, allows event binding, rich graphics operations, tutorials are fantastic. Seems to have a very gentle learning curve as well, compared to similar software.
Second choice would be raphael or a similar SVG library. Performance not quite as good as paper.js although it depends a lot on what will be onscreen.
Can you elaborate on what kind of things you will be doing on the client? Number of visible objects, what events will be bound to what objects, types of graphics filters you need, and so on, all inform this choice heavily.
You will probably find yourself fighting to get good graphics performance on the client, so expect to spend a lot of time on that.
Edit: Based on your comments, I think you would find either solution workable, so I would lean toward paper.js only because it’s a little more fun, and if you do go somewhere unexpected it will be able to go there with you.
Since your application sounds like it has to do with a lot of charting, I would suggest you check out HighCharts or another charting library, of which there are several, both commercial and non-. HighCharts itself is free for everything except production use in a for-profit application, and reasonably priced otherwise.