Posted inExperience / Information Technology

The Myth of QML

QML crash

I have railed against the incredibly poor design of QML for years. Even wrote about The Death of Commercial Application Frameworks because just like the RAD (Rapid Application Development) tools of the 1990s, they have run their course. If you want to read more about the RAD tool era read this book. Only in a shop using Agile could such a horrible design ever get considered. In a real Software Engineering shop that uses Waterfall SDLC the design of QML would have failed on paper. Keeping all of the plates spinning in a design like this

drunk driving across all 3 lanes

Using it in a medical device is almost guaranteeing patients will have adverse outcomes, possibly die. Why? You cannot control garbage collection. I’m not the only one who has spent days (in some cases months) sweeping up behind someone who thought using QML was a good idea, just read this guy’s post.

Why This Post Today?

Because a dude who used to . . . ah . . . reprimand me for calling QML a hand polished turd in the qt-interest mailing list (where it rightly should be pointed out each and every day) finally had a project failure with QML. I don’t think he had used it prior to that. Here is what was in the mailing list:

 <hot take>
I?d like to chime in with a real world application that we have been
developing. It has a VTK based 3D rendering engine inside a Qt application
that is widget based. It did not start out great. We burnt 10 months with
3~4 engineers trying to develop this application as a QML desktop
application and it was just one thing after another in QML that just would
stop us in our tracks. QML on Desktop just isn?t as mature as Widgets on
the Desktop and suggesting for someone to rewrite a generally well working
desktop application to QML is not just a huge disservice but would be a
huge mistake. We ended up taking the last 2 months of the contract and spun
up a widgets based application and got more features completed for the
client in those 2 months than we did with 10 months of QML development. I
know things change but after that little exercise I am not sure anyone
would ever convince me to try QML on the desktop again. Period. If QWidgets
goes away we would probably just move to another language all together
rather than try QML. QML on Phones and tablets? Sure. Go for it. Desktop,
stay away. Far Far away.
</hot take>

Pay special attention to the time frames. After 10 months with the “more efficient” QML, the project was an abject failure. In 2 months using widgets they completed a 12 month project.

Granted he does scientific software. Rarely any human life at risk, just billions of dollars. Some of us are old enough to remember Faster, Cheaper, Splat! Not the type of software he writes, but you get the drift.

There Can Be Only One

Highlander was very informative for software engineers, there can be only one. Any architecture that introduces multiple lanes of ownership is a failed architecture. Software engineering shops using SDLC would have killed this design on paper. If you need to use an interpreted language, it has to exist in its own process communicating via message queue, database, or mailbox with other processes. The single-thread-y-ness main event loop architecture must go the way of the punched card and paper tape.

Read The Death of Commercial Application Frameworks if you want to know where the industry is headed next. The names of the tools may change over time, but not the type.

It took him a while, but he finally got there. My hat’s off to you sir!

The rest of you consider an infusion pump or surgical robot for a moment.

Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++/Qt touchscreen/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the "Zinc It!" book series for John Gordon Burke Publisher, Inc.

A decade later he released a massive (nearly 800 pages) tome "The Minimum You Need to Know to Be an OpenVMS Application Developer" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there "The Minimum You Need to Know" book series was born.

Three years later he wrote his first novel "Infinite Exposure" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of "The Earth That Was" trilogy:
Infinite Exposure
Lesedi - The Greatest Lie Ever Told
John Smith - Last Known Survivor of the Microsoft Wars

When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.