I am learning Python and building my first web app. I have been going thru the django tutorials and just beginning to think about how to do the client side. I want it to be web 2.0-ish, and will need some AJAX/javascript functionality for displaying lists from the database, and cool things like date choosers, auto-completion, etc.
It seems html/css/javascript (esp. jquery) is the most popular option. Being a newbie I am intrigued by frameworks like qooxdoo and sproutcore, but don’t understand exactly how they work. For example:
- Can I easily reuse code from one app into another?
- Can you have one page static pages easily also?
- Are they only one page, kind of like gmail? Does it matter?
- Is it really any easier than not using it? I mean is the learning curve for the framework equal to learning html/css/javascript?
- Are these type of apps slower to load because they have a lot of overhead?
Or,
What are the pros/cons of using/not
using one of these?
Any advice for a beginner is welcome!
Here is an answer from the qooxdoo perspective:
Yes, you can. You can organize your code in “libraries” which can be included in multiple apps. But each app will be an individual whole (think of it as a binary with the library code being linked in statically), there is no manual copying around of .js files.
I’m not sure what you mean here.
Yes, you build single-page applications with qooxdoo.
That largely depends on your background. If you have a good grasp on OO, maybe even experience with an OO interface library like Qt or Swing, picking up qooxdoo should be very straight-forward. In such a case I would argue the learning effort is less than compared to html/css/javascript, as you are basically working against an OO class library that shields the underlying technology from you. (Which is a good thing. Getting e.g. cross-browser CSS right is tough).
I would say so. You pay a penalty for the infrastructure. But if a real web GUI is what you want, it’s worth it.
As said elsewhere, it really depends on what you want to achieve. From your question I gather that you don’t just want to “display lists from a database”, but you want an interactive user interface, with high-level widgets (date chooser), cross-browser event handling (auto-completion), maybe other controls, layout management, and such. For such a case I say the pros outweigh the cons.
But it’s an investment, too much for a one-shot project I’d say. And if you just want a few list views, stick with the Django templates, maybe spiced up with a bit of Javascript thrown in.