RingQt is not builtin like other extensions, nevertheless MonoRing Qt package has some advantages compared to standard Ring package:
- It supports native Windows 64-bit development
- Reliable and easy standalone distribution thanks to limited runtime dependencies
- Qt updated to 5.15.2
- RingNotepad has new entry under "Distribute" menu to build Windows UI applications (usefull for LibUI based applications)
This release is in line with the original objective of MonoRing which is making deployment and distribution of Ring based application easier.
The main feedback that I hear around me from people trying Ring language is that they cannot easily figure out which dependencies are requires at runtime when deploying their sample application and they end up copying the while "bin" folder of Ring to make it run. This of course discourages many people from continuing with Ring which is unfortunate.
The other issue that is encountered in Windows with Ring with the fact that the provided libraries used by the extensions are built using different versions of Visual C++ and so they depend on different C++ runtime dlls. For example, here are the runtime version used by popular extensions:
- RingCurl: msvcr100.dll from VC++ 2010
- RingOpenSSL: msvcr120.dll from VC++2012
- RingQt: vcruntime140.dll from VC++ 2019
- RingTileengine: vcruntim140d.dll from DEBUG VC++ 2019
Mixing different VC++ runtime version is known to create stability issues.
Of course, managing such large number of extensions in the standard Ring package is not easy and for me I see them as a showcase of the capabilities of Ring more than officially maintained libraries.
Hopefully, MonoRing approach of handling binary distribution will ease adoption of Ring programming language and possibly give ideas to others to create similar projects dedicated to specific fields (e.g. gaming, database...).