This Week (and Later) In Tech: WASM and Qt Creator
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2023 08:54 AM - edited 08-03-2023 09:16 AM
First, full disclosure: I am a Qt fanboy and have been for decades. Qt is a multi-platform Application framework. It is at the heart of one or more applications you're probably using today. It is at the heart of my favorite Linux desktop, KDE. It has every imaginable feature you'd want for building applications. Have a look for yourself, if you dare (it's overwhelming): https://doc.qt.io/qt-6/classes.html
And let's talk about platforms: There's Qt for Android, Embedded Linux, INTEGRITY, Linux/X11, QNX, Web Assembly (WASM), Windows, iOS, macOS, and webOS. (Anyone remember that one? I think LG still uses it in their smart TVs.) While Qt is built around C++, you can also use Qt with other languages like Python. In fact, I wrote a blog about it roughly a year ago called, Get Ooey GUI with PyQt6 Zeep and AXL. I've also built some apps in Qt with C++.
SaaS and Platform Agnosticism
So what if Qt is multi-platform? As far back as 2000, I was giving keynote speeches predicting software as a service (SaaS) would evolve to the point where platform wouldn't matter anymore. My mistake was that I thought Java was the leading candidate for making that happen. Turns out I was half a language label short. SaaS applications started springing up based on JavaScript, not Java (although Java has had a lot of success in other areas).
Here's the problem. If you'll allow me to be a bit crude here, I find most JavaScript-based web applications to run like crap. She's come a long way, baby, but she's still just a cigarette. Granted, developers have overcome a lot of the limitations. Microsoft Word on the web via Office 365 is damn impressive. But it's still not Word for Windows.
Enter WASM. The promise of WASM is that you'll be able to run applications in your browser that are as full-featured and powerful as native applications. How powerful? Go back and look at those Qt classes: https://doc.qt.io/qt-6/classes.html and imagine having all that at your fingertips for your next web application.
Qt WASM is not there yet, but I'm optimistic it will be, eventually. At least that's the point of WASM. (Here's hoping I won't have to admit I'm wrong in 20 years like with Java. Hell, here's hoping I'm still around in 20 years.)
Where's the Beef?
I had hoped to give you an example of a Qt WASM app today. Most of WASM's issues that prevented me from doing so aren't related to Qt, but to the myriad of build tools you have to install and configure, even to the point of getting the versions exactly right (emsdk, llvm, cmake, for example). It just so happens that the one app I wanted to show you is picky about those things. This is one reason why my WASM demo isn't ready today, and why WASM still has a way to go. But when WASM gets there, I can't imagine a better application framework to exploit it than Qt.
I should have it working today, but I'll be back next week with that and more.
Full disclosure: I have no financial ties to Qt, no investments, no free software I would have had to pay for. They were gracious enough to extend my free trial for Qt Creator to 30 days so I can get this done. So my opinion is untainted by influence.
Resources:
Qt Creator: https://www.qt.io/product/development-tools?utm_term=qt%20creator
A couple of my favorite Qt apps:
Notepad Next (A WIP Qt clone of Notepad++): https://github.com/dail8859/NotepadNext
Shotcut (video editor): https://shotcut.org/
A List of Qt Applications (confession: I do not run Manjaro Linux, I run Kubuntu): https://wiki.manjaro.org/index.php/List_of_Qt_Applications
- Labels:
-
General
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2023 07:02 PM
I got the app working, thanks in large part to help from a Qt engineer. The whole process is not for the feint of heart, but a large part of that is just how much you need to prepare to make any WASM app, not just Qt. I'll give you all the gory details in the coming week along with a link to the app itself.
