An alternative to Qt

271 views
Skip to first unread message

Mansour Ayouni

unread,
Nov 4, 2023, 8:33:16 PM11/4/23
to The Ring Programming Language
Hello Mahmoud and all,

I came across this project called CropperSpice C++, derived from Qt, but solving some of its weaknesses, regarding dependencies, use of modern C++, and licensing.


Since Qt is strategic to us, and that we are a truly open source language, and since some voices are being raised in the Qt community against its licensing model, I wanted to ask if the inclusion in Ring of such an alternative (say RingCropperSpiceLib) is worth considering in our future plans?

Best,
Mansour

Mahmoud Fayed

unread,
Nov 5, 2023, 10:52:00 AM11/5/23
to The Ring Programming Language
Hello Mansour

Thanks for sharing the link about copperspice, I will check it :D

Personally, I don't have any problem with Qt license (Since I am using it for desktop development & I don't have a problem with respect to distributing Qt dlls instead of static building)

If you will develop an open-source project using Qt - You have the freedom to using dynamic/static building.
If you will develop a commercial project using Qt 
--- Use dynamic building (based on Qt dlls) if you don't want to pay for Qt license
--- If you pay for Qt license - You can use static building.

So, I don't see a serious problem here.

Greetings,
Mahmoud

Mansour Ayouni

unread,
Nov 6, 2023, 10:22:12 AM11/6/23
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

Thank you for your clarification!
Your rules are simple and understandable.
Are they applicable to 6+ versions of Qt also?

Best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ring-lang/70baf70c-f4e5-4a96-8b92-b4356e9b3202n%40googlegroups.com.

Mahmoud Fayed

unread,
Nov 6, 2023, 10:51:09 AM11/6/23
to The Ring Programming Language
Hello Mansour

>> "Are they applicable to 6+ versions of Qt also?"

Yes, The difference comes when we talk about patches
For example, Qt 5 (open source) have 5.15.2 
While Qt 5 (commercial) have 5.15.15 (until today)

When we use Qt 6 through open-source version we have to use the latest version of Qt 6 to get security fixes and updates
Because the patches are available for the commercial version.

And I don't see a problem in this since Qt is stable and mature framework and the Qt GUI/Widgets is very stable from many years ago.

Note: I have access to Qt 5.15.15 and Ring 1.19 binary release will use it.

Greetings,
Mahmoud

Mansour Ayouni

unread,
Nov 6, 2023, 11:46:18 AM11/6/23
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

I rarely found someone on the internet talking with this clarity of the Qt licensing model. You muster it and this is wonderful!

At the same time, there are actually a number of details and cases one should be aware of, which leads to confusions and Qt company seems to intentionally do that. I understand they deserve money for their great work, but my concern is one the company would one day become another Oracle... Please tell me your opinion about that.

As I understand it, we at Ring, will always rely on the 5. series and we are not going to include the 6 versions because it forces us to get updates only in the commercial edition. Is that the case? And if so, what are our options for the long future, maybe 5 or 10 years later?

All the best,
Mansour

Mahmoud Fayed

unread,
Nov 6, 2023, 11:54:58 AM11/6/23
to The Ring Programming Language
Hello Mansour

>> "I rarely found someone on the internet talking with this clarity of the Qt licensing model. You muster it and this is wonderful!"

Thanks for your kind words

>> "I understand they deserve money for their great work"

The Qt company get income from usage of Qt Framework on devices & embedded systems.
They have large customers (Big Companies) and this is their focus when they think about revenue. 

>> "As I understand it, we at Ring, will always rely on the 5. series and we are not going to include the 6 versions because it forces us to get updates only in the commercial edition. Is that the case?"

No, we will update RingQt from Qt 5 to Qt6 at some point in the future.
We just will use the latest Qt release once it's released to get the latest security fixes and updates.
We will not stick with a version for long time (Because getting updates will be for commercial license)

On the other hand, I have access to Qt commercial license and I can get these updates too, and If we want, we can continue using some old version (Of Qt5 or Qt6 later) while getting the updates too.

You are using Ring, RingQt which are open-source projects, These projects will use Qt and provide everything you need from them, So you don't have to worry about Qt license.

The problem is related to using Qt for Embedded Systems (And installing Qt on many devices/hardware)
Also, the license problem is related to Static-Linking (Of commercial products) - And we are using dynamic linking (So we don't have any issues).

Greetings,
Mahmoud

Mansour Ayouni

unread,
Nov 6, 2023, 2:21:58 PM11/6/23
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

I see! And it's reassuring.

Hance, please dare with this final point...

Am I right when I say that that Ring, with RingQt, totally abstracts the issues of Qt licencing, and provides us with a complete freedom on using Qt (as a backend of our apps) and distribute them, as Ring executables for desktop or web or mobile apps, freely, without any fees to pay to Qt company, except embedded apps running on microcontroller devices ?

Thank you in advance.

Best,
Mansour

Mahmoud Fayed

unread,
Nov 7, 2023, 11:18:26 AM11/7/23
to The Ring Programming Language
Hello Mansour

>> "Am I right when I say that that Ring, with RingQt, totally abstracts the issues of Qt licencing, and provides us with a complete freedom on using Qt (as a backend of our apps) and distribute them, as Ring executables for desktop or web or mobile apps, freely, without any fees to pay to Qt company, except embedded apps running on microcontroller devices ?"

Yes, this is true for (Desktop Development) & (Qt for Android) too.
But for (WebAssembly) and (Mobile Development) the situation is different

Qt for WebAssembly is GPL (not LGPL) and commercial.
Which means ---> Using it requires distributing the source code of your project OR you have to buy a commercial license. 


Greetings,
Mahmoud

Mansour Ayouni

unread,
Nov 7, 2023, 2:59:43 PM11/7/23
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

Thank you for your answer. Things become more clear now!

Still, the case of web development (using RingQt in the background) and the case of mobile development other than Qt Android are not covered by your answer...

Best regards,
Mansour

Mahmoud Fayed

unread,
Nov 7, 2023, 3:20:17 PM11/7/23
to The Ring Programming Language
Hello Mansour

In the next links you will find the license of different components in the Qt project
Summary from the first link:

"""The general Qt toolkit, consisting of Qt Essential code libraries, the Qt add-on APIs, and the Qt Creator IDE are available dual-licensed for commercial and GPL licenses. Most of the Qt APIs are available also under LGPLv3 license but not all of the Qt Add-on modules.

In addition, the commercial Qt license includes additional tools and solutions for embedded development."""


Greetings,

Mahmoud

Ilir Liburn

unread,
Nov 7, 2023, 3:41:12 PM11/7/23
to The Ring Programming Language

Hello Mahmoud,

>>Qt for WebAssembly is GPL (not LGPL) and commercial.
>>Which means ---> Using it requires distributing the source code of your project OR you have to buy a commercial license.

That made me thinking: if someone makes a player using Ring VM under GPL license (including source code of the player) statically linked to the QT, uses that player so that loads bytecode, is the Ring source code used to generate bytecode under GPL?

Note: GPL license is talking about linking source code statically or dynamically, but doesn't say anything about interpreted code (to my knowledge).

Greetings,
Ilir

Mansour Ayouni

unread,
Nov 7, 2023, 3:55:55 PM11/7/23
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

Thanks for the links :)

Frankly speaking, the Qt documentation on licensing and the whole logic they are proposing is a headache for me! I'm sorry for that.

I was impressed by your capacity to distill that and say it in clear terms. I hope, if you can of course, to just tell me if we should be concerned, as Ring developers, in those two cases:
  • using RingQt as a backend in a web application (written with Ring WebLib for example)
  • using RingQt to generate mobile apps other than Android (for iOs for example)
Your answer will complete the picture for me and I'll stop asking ;)

All the best,
Mansour


Ilir Liburn

unread,
Nov 7, 2023, 4:04:23 PM11/7/23
to The Ring Programming Language
Hello Mansour,

  • using RingQt to generate mobile apps other than Android (for iOs for example)
Apple forbids using VM on on the iOS, therefore Ring VM can't be used there. That's why I'm working on Ring2C (Ring code to C or C++ code).

Greetings,
Ilir

Mansour Ayouni

unread,
Nov 8, 2023, 12:28:41 AM11/8/23
to Ilir Liburn, The Ring Programming Language
Hello Ilir,

A strong use case for Ring2C! Thanks for the precision.

Best,
Mansour

Mahmoud Fayed

unread,
Nov 8, 2023, 8:14:06 AM11/8/23
to The Ring Programming Language
Hello Ilir

>> "That made me thinking: if someone makes a player using Ring VM under GPL license (including source code of the player) statically linked to the QT, uses that player so that loads bytecode, is the Ring source code used to generate bytecode under GPL?"

I think YES, in this case the Ring source code that generate the bytecode must be distributed.

A related discussion in Python group exists here: GPL and Python modules. (google.com)

Greetings,
Mahmoud

Ilir Liburn

unread,
Nov 8, 2023, 9:15:20 AM11/8/23
to The Ring Programming Language
Hello Mahmoud,

I think this part is relevant for discussion:

" Depends. If you pull in and use a specific GPL module, then yes, it is GPL'd. If you don't distribute said GPL module, then you can show reasonable doubt"

That said: if someone else made GPL'd player based on Ring statically linked against the Qt, then I can have reasonable doubt about requirement of the Ring external code to be under GPL as long Ring code is not using import of the GPL'd module.

Greetings,
Ilir
Reply all
Reply to author
Forward
0 new messages