Speaker
Description
The use of Python in CERN's particle accelerator domain has grown steadily over the last decade. For non-software developers, it integrates well into the reality of a physics laboratory, where people who develop hardware or design operational workflows often author associated software, including Graphical User Interfaces (GUIs). While the general strategy is to standardise GUIs using no-/low-code solutions, complex use cases require more customised GUIs. For this, Python and Qt are combined through PyQt bindings. Qt5 has been used for several years but with its end-of-life already reached, migration to Qt6 is a priority. At the same time, GUI applications in the CERN Controls ecosystem require long-term stability that exceeds the software industry average. Therefore, the migration requires a lot of care, taking into account both maintenance costs and long-term risks associated with reliance on a 3rd-party technology. To plan the upgrades, alternatives to the current PyQt approach have been reviewed. In the past, PyQt5 was an obvious choice, but investment into the PySide library by the Qt Company now presents more options. We outline the criteria considered in our comparison of PyQt, PySide, and QML, and present the resulting decisions and rationale behind them. Finally, we discuss long-term risks associated with Qt bindings for Python and describe how we will manage the migration to future versions of the Qt framework, such as Qt7.