From fc1ea10243ee421efc695648d7f7c741ff9adef4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Mon, 29 Apr 2019 09:28:35 +0200 Subject: [PATCH] [DOC] readme: add explanation on why OWL is different --- README.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1c458f91..5d13fce6 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,25 @@ The Odoo Web Library (OWL) is a small UI framework intended to be the basis for the [Odoo](https://www.odoo.com/) Web Client, and hopefully many -other Odoo related projects. OWL's two key features are: - -- a _declarative component system_, with QWeb as a template engine, asynchronous rendering, and an underlying virtual dom, -- and a _store_, which is a state management solution, loosely inspired by VueX and React/Redux. +other Odoo related projects. OWL's main feature is a _declarative component system_, with QWeb as a template engine, asynchronous rendering, and an underlying virtual dom. If you are interested, you can find a discussion on what makes OWL different from React and Vue [here](doc/comparison.md) +## What makes OWL different + +- **XML based**: templates are based on the XML format, which allows interesting + applications. For example, they could be stored in a database and modified + dynamically with `xpaths`. +- **templates compilation in the browser**: this may not be a good fit for all + applications, but if you need to generate dynamically user interfaces in the + browser, this is very powerful. For example, a generic form view component + could generate a specific form user interface for each various models, from a XML view. +- **no toolchain required**: this is extremely useful for some applications, if, + for various reasons (security/deployment/dynamic modules/specific assets tools), + it is not ok to use standard web tools based on `npm`. + + ## Try it online! An online playground is available at [https://odoo.github.io/owl/playground](https://odoo.github.io/owl/playground) to let you experiment with the OWL framework.