Programming languages and GUI toolkits which work together.

Alain De Vos
I cannot comment on available Qt books. I've been using it since Qt3 so I am very familiar with the API. I'd like to play with Qt-android but I am very fearful about Google's plans to "apple-ize" development on android by making devs register with them. When that happens I will wash my hand completely of the platform except maybe a REST thin web client app here or there.
 
javascript + GTK2/3/4 (and all Gnome components) = GJS (Gnome JavaScript) lang/gjs. There should also be a Qt library, but I haven't researched it enough, it seems like a C++ bootstrap is needed, in that case it's better pure C++ (at least for me).
 
  • Weak Typing and Type Coercion: JavaScript is dynamically and weakly typed, meaning variables can change types unexpectedly, and the language often performs automatic type conversions (coercion) that lead to non-obvious results. For instance, comparing [] + {} gives a different outcome than {} + [], and 0.1 + 0.2 doesn't always equal 0.3 exactly due to the use of floating-point arithmetic for all numbers.
  • Security Risks: As a client-side language, the code is visible to everyone, which can be a security risk if not properly managed. This visibility makes applications vulnerable to attacks like cross-site scripting (XSS) if developers don't implement security measures.
  • Inconsistent Behavior: Certain language features, such as the behavior of the this keyword or how variable hoisting works, can be counterintuitive and lead to unexpected bugs, especially for developers coming from other programming backgrounds.
  • Debugging Challenges: The dynamic nature of JavaScript means errors might only appear during runtime rather than compile time, making them harder to detect and fix, especially in large codebases.
  • Lack of a Robust Standard Library: Historically, JavaScript had a minimal standard library, which led to heavy reliance on third-party packages (via npm). This can result in an over-reliance on a vast number of small, unreviewed dependencies, creating potential security and maintainability issues.
  • Ecosystem Overload: The rapid pace of framework and tool development can lead to developer burnout and a complex, constantly shifting landscape where tools become deprecated quickly, requiring continuous learning and configuration overhead
 
You can write in TypeScript and compile to JavaScript. However you are right, you have to be careful what you write and in any case it is not enough, we are human anyway.
 
Back
Top