QML: General purpose language or frontend for QtQuick: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Created page with "I often encounter a sentiment to dismiss QML as simply some hack to make QtQuick happen. The proponents of such sentiment often transfer all the love or hate they may have towards QtQuick into QML. This has wide ranging implications, for example when trying to establish support API in QtCore or similar foundational libraries. Why do we have to expose metatypes.json files for libraries that don't tie into QtQuick after all? Why should we annotate our value types with Q_GA...")
 
m (wikified markup)
 
Line 1: Line 1:
I often encounter a sentiment to dismiss QML as simply some hack to make QtQuick happen. The proponents of such sentiment often transfer all the love or hate they may have towards QtQuick into QML. This has wide ranging implications, for example when trying to establish support API in QtCore or similar foundational libraries. Why do we have to expose metatypes.json files for libraries that don't tie into QtQuick after all? Why should we annotate our value types with Q_GADGET? Etc.  
I often encounter a sentiment to dismiss QML as simply some hack to make QtQuick happen. The proponents of such sentiment often transfer all the love or hate they may have towards QtQuick into QML. This has wide ranging implications, for example when trying to establish support API in QtCore or similar foundational libraries. Why do we have to expose metatypes.json files for libraries that don't tie into QtQuick after all? Why should we annotate our value types with Q_GADGET? Etc.  


- Maybe create widget UIs with QML? Native Android? ...
* Maybe create widget UIs with QML? Native Android? ...
- Why not use C++?
* Why not use C++?
  - QML is easy to learn
** QML is easy to learn
  - Is compilation good or bad?
** Is compilation good or bad?
  - Easy scriptable
** Easy scriptable
- Why not Lua, Python, bf, ...
* Why not Lua, Python, bf, ...
- Applications that successfully use QML
* Applications that successfully use QML
- People love JS. Ulf hates it
* People love JS. Ulf hates it


- constructor arguments exposed to QML?
* constructor arguments exposed to QML?
  - use required properties for that?
** use required properties for that?
- continuation functions
* continuation functions
- better solution to Component.onCompleted
* better solution to Component.onCompleted
  - common pattern: flag for "completed"
** common pattern: flag for "completed"


How do we get 10M more developers for QML
How do we get 10M more developers for QML
- By making it fast (compiled) and flexible (JS-like)
* By making it fast (compiled) and flexible (JS-like)
- has to work without Qt
* has to work without Qt


Where is QML better than competitors? Why should I use it?
Where is QML better than competitors? Why should I use it?
- easy way to create object hierarchies
* easy way to create object hierarchies
- bindings
* bindings


All of JS or only subset?
All of JS or only subset?
- make full JS optional, separate library
* make full JS optional, separate library
- decouple declarative syntax from scripting
* decouple declarative syntax from scripting


Ecosystem, tooling, package management?
Ecosystem, tooling, package management?

Latest revision as of 14:42, 1 December 2023

I often encounter a sentiment to dismiss QML as simply some hack to make QtQuick happen. The proponents of such sentiment often transfer all the love or hate they may have towards QtQuick into QML. This has wide ranging implications, for example when trying to establish support API in QtCore or similar foundational libraries. Why do we have to expose metatypes.json files for libraries that don't tie into QtQuick after all? Why should we annotate our value types with Q_GADGET? Etc.

  • Maybe create widget UIs with QML? Native Android? ...
  • Why not use C++?
    • QML is easy to learn
    • Is compilation good or bad?
    • Easy scriptable
  • Why not Lua, Python, bf, ...
  • Applications that successfully use QML
  • People love JS. Ulf hates it
  • constructor arguments exposed to QML?
    • use required properties for that?
  • continuation functions
  • better solution to Component.onCompleted
    • common pattern: flag for "completed"

How do we get 10M more developers for QML

  • By making it fast (compiled) and flexible (JS-like)
  • has to work without Qt

Where is QML better than competitors? Why should I use it?

  • easy way to create object hierarchies
  • bindings

All of JS or only subset?

  • make full JS optional, separate library
  • decouple declarative syntax from scripting

Ecosystem, tooling, package management?