- Weak typing makes refactoring difficult. "var" properties and variables can contain objects of any type at runtime. In order to figure out if such a property would be affected by a refactoring, the program itself would have to be run.
- Each component imports its own version of all its dependencies. This makes it hard to centrally upgrade to a new version of some dependency. Furthermore, it's easy to introduce incompatibilities by importing different versions of the same component.
- QML scoping rules can lead to unexpected side effects. Names are implicitly looked up in certain parent scopes (but not all) if not found locally. The rules governing this are rather confusing. It's easy to accidentally use a property of the wrong object.
- Integration with the C++ type system can be cumbersome. You need to manually register all your types via qmlRegister* calls in some initialization routine. Optimally the registration parameters should be derived from the class declaration and the registration done in generated code.
- resulted in
Streamline QML for better toolability and performance
No reviews matched the request. Check your Options in the drop-down menu of this sections header.