summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralistairadamsqt <alistair.adams@qt.io>2017-03-14 10:26:30 -0700
committerjryannel <juergen@ryannel.org>2017-03-14 18:26:30 +0100
commite200aa185879940bbf6db7ec3fa21a1f011e3fa5 (patch)
tree2568ca5c6a96dcc5e6cfca546c54de86c45a16c3
parentd25b1df91604287e6115c6ea2d86281c82d1eabf (diff)
downloadqtivi-qface-e200aa185879940bbf6db7ec3fa21a1f011e3fa5.tar.gz
Update motivation.rst (#21)
* Update motivation.rst Cleaning up the English and some typos * Update motivation.rst Reword around "none experts" * Update motivation.rst * Update motivation.rst
-rw-r--r--docs/motivation.rst17
1 files changed, 8 insertions, 9 deletions
diff --git a/docs/motivation.rst b/docs/motivation.rst
index 2b27b50..2b54801 100644
--- a/docs/motivation.rst
+++ b/docs/motivation.rst
@@ -2,12 +2,12 @@
Motivation
==========
-QFace is an attempt to establish one interface description language with an easy to use code generator framework. QFace as an interface description language is Qt friendly but not limited to Qt. The hope is that many projects can agree on this interface language and many interesting generators will be created and we all can learn from how other projects generate code from the same IDL.
+QFace is an attempt to establish one interface description language with an easy to use code generator framework. While QFace as an interface description language is Qt friendly, it is not limited to Qt. The hope is that many projects can agree on this interface language and many interesting generators will be created and we all can learn from how other projects generate code from the same IDL.
The IDL
=======
-The IDL uses common API concept such as modules, interfaces, properties, structs and enums/flags. Additional it knows about lists and models. A list is an array of primitive or complex types. A model is an indicator for large data sets which are typical used via a defined interface or via pagination.
+The IDL uses common API concept such as modules, interfaces, properties, structs and enums/flags. Additionally it knows about lists and models. A list is an array of primitive or complex types. A model is an indicator for large data sets which are typical used via a defined interface or via pagination.
.. code-block:: js
@@ -25,7 +25,6 @@ The IDL uses common API concept such as modules, interfaces, properties, structs
}
-
The data types provided by QFace can be divided into primitive and complex types:
Primitive Types
@@ -63,7 +62,7 @@ Even inside on e technolgy there are often discussions about how an interface sh
Large Projects
==============
-In larger projects there is the need to interface a large set of operating services and make them available to QML. It is less about defining new visual items in C++ more about creating an abstraction of a service and make it available to the HMI developer inside QML.
+In larger projects there is the need to make available to QML a large set of operating services. It is less about defining new visual items in C++, more about creating an abstraction of a service and make it available to the HMI developer inside QML.
This can be a challenge when you create many of these plugins and in the middle of the project you figure out you have issues with your current design. Or if the customer in the next project wants to use a different HMI technology. All the knowledge is inside these plugins.
@@ -72,18 +71,18 @@ With QFace these companies can be certain that QFace does not lock them into the
Remote Services
===============
-Some projects use network communication to communicate from the HMI to the services, which might run on a different process or event networked device. QFace was not designed for remote services, as it does not define any storage types (e.g. int32, int16, int64) it knows only an int and does not define how large the int shall be. For this QFace need to rely on the author of the generators to have a defined protocol to exchange data.
+Some projects use network communication to communicate from the HMI to the services, which might run on a different process or event networked device. QFace was not designed for remote services as it does not define any storage types (e.g. int32, int16, int64), it only knows an int and does not define how large the int shall be. For this QFace needs to rely on the author of the generators to have a defined protocol to exchange data.
Complex APIs
============
-QFace is by design limited by its features. QFace shall be easy to use and the syntax easy to remember, so that also none experts can write their interface files.
+QFace is purposely designed to have limited features. The goal is to make QFace easy to use with an easy to remember syntax so that you don't need to be an expert to write interface files.
-QFace does not suppot unions or extending from other interfaces or that a struct extends other structs. If you look for these features than QFace is probably the wring choice.
+QFace does not suppot unions or extending from other interfaces or that a struct extends other structs. If you look for these features than QFace is probably the wrong choice.
Limitations
===========
-As every code generation tool QFace is also limited to how much information you place inside your interface files. So there might be areas where code generation just do not make sense, than QFace will also not help.
+Like other code generation tools, QFace is limited by how much information you can place inside your interface files. In such cases code generation might not make sense and QFace will also help.
-QFace allows you to use annotation which can add meta information to the interface files. But the genertor needs to be designed to understand this meta information. Only the structure of these annotations are defined not the information they carry. Annotations might helpt to add information to an interface document to better control the code generation process.
+QFace allows you to use annotation which can add meta information to the interface files. But the generator needs to be designed to understand this meta information. Only the structure of these annotations are defined not the information they carry. Annotations might help to add information to an interface document to better control the code generation process.