How is something like Sproutcore / Qooxdoo useful?

I am learning Python and building my first web application. I went through django tutorials and was just starting to think about how to do the client side. I want it to be web version 2.0, and you need the AJAX / javascript function to display lists from the database, as well as interesting things like date picker, autocomplete, etc.

It seems that the most popular option is html / css / javascript (esp. Jquery). As a newbie, I'm intrigued by frameworks like qooxdoo and sproutcore, but I don't understand how they work. For instance:

  • Is it easy to reuse code from one application to another?
  • Can you also create single page pages?
  • Is this just one page, like gmail? Does it matter?
  • Is it really easier than not using it? I mean, is the learning curve for the framework equal to learning html / css / javascript?
  • Are these types of applications loading slower because they have a lot of overhead?

Or,

What are the advantages / disadvantages of using / not using one of them?

Welcome any tips for beginners!

+4
source share
2 answers

Here is the answer from the point of view of qooxdoo:

Is it easy to reuse code from one application? to another?

Yes, you can. You can organize your code in "libraries", which can be included in several applications. But each application will be an individual whole (think of it as binary code in which the static code of the library will be linked statically), there is no manual copying of .js files.

Do you have one page static pages also easy?

I'm not sure what you mean here.

Are they just one page, like gmail?

Yes, you are creating single page applications with qooxdoo.

Does it matter? Is it really easier than not using it? I mean the learning curve for a structure equal to learning html / css / javascript?

It depends a lot on your background. If you have a good understanding of OO, perhaps even experience working with an OO interface library such as Qt or Swing, collecting qooxdoo should be very simple. In that case, I would say that the training effort is less than compared to html / css / javascript, since you mainly work with the OO class library, which protects your core technology from you. (Which is good. Getting cross-CSS CSS rights, for example, is tough).

Are these types of applications slower to load because they have a lot of overhead?

I would say so. You pay a penalty for infrastructure. But if the real web interface is what you want, it's worth it.

What are the advantages / disadvantages of using / not using one of them?

As stated elsewhere, it really depends on what you want to achieve. From your question, I understand that you simply do not want to “display lists from the database”, but you need an interactive user interface with high-level widgets (date picker), cross-browser event handling (auto-completion), possibly other controls, layout management etc. In this case, I say that the pros outweigh the cons.

But this is an investment, too much for a one-time project, which I would say. And if you just want to browse through a few lists, stick with Django templates, possibly flavored with some Javascript thrown.

+5
source

You must remember that T in HTML stands for text. HTML is intended for displaying documents. JavaScript added interactivity to these documents. This was “perverted” (in a way) to the point where JavaScript was used to create desktop-like applications that manipulate DOM objects.

Currently, if you are looking at web applications, there are three main categories:

  • Web sites
    These applications are mainly content / document delivery services. You can view, search, edit and post some documents. which is basically it. stackoverflow is a good example for this category.
  • web interfaces
    Such applications provide a web interface for an application that actually runs on the server. They act as an interface to the business logic that runs on the server. Online banking applications are a good example or web interfaces for various types of services. A classic Google page, in a way.
  • RIAs
    These applications run fully on the client. They receive data from the server and provide a user interface that allows you to manage this data directly on the client side and, possibly, transmit results / results.

Of course, there are applications that cannot be classified in only one of these categories.
It is now very important for websites to create semantic, clean, and valid HTML code for a number of reasons. SEO and accessibility are the most important.
For web interfaces and RIA, this is not so. Here, on the client side, the most important thing is ease of use. For web interfaces, it is advisable to avoid whole page updates and make it as easy as possible for user input. For the RIA, this is necessary. Both categories do not use HTML to represent documents, but to create a user interface. For web interfaces, classic forms can do the trick depending on the complexity of user input, so you can think of them as websites or as RIAs for this consideration.

While websites use HTML to represent the actual data, CSS to determine its visual appearance and JavaScript to add interactivity, web interfaces and RIAs use DOM objects to create a user interface, CSS to protect this interface and JavaScript to implement business -logics on the client side.

So, although the platform you use is the same, you are really doing something completely different. Think of it as in text mode. The characters on the screen can represent text or GUI elements . (I believe that web interfaces would be commands in this analogy: D).

Frames such as qooxdoo and sproutcore are designed to facilitate the creation of RIAs. Because the DOM is in some ways misused in this approach, they provide the necessary abstraction for the transition between UI logic and DOM-based manipulation. They negate the need for HTML and CSS because they are not tools designed to create interactive user interfaces.

Depending on what you intend to do, you will need to select the appropriate tool.

+4
source

Source: https://habr.com/ru/post/1314213/


All Articles