Qt Target for Monkey?

Monkey Archive Forums/Digital Discussion/Qt Target for Monkey?

AndroidAndy(Posted 2013) [#1]
I have seen some mention over the years about developers working on a Qt target for Monkey. Also, TED uses Qt 5. Qt 5.1 was just released in July 2013 and included preliminary support for Android and iOS. Also, Qt Quick seems to be making some progress and could be yet another target possibility.

I could see a Qt target offering a Monkey developer an easy way to take advantage of the Qt Widgets as the big bonus, but to start, there would have to be a base Qt target that covered core Monkey.

I know others have been looking at Xamarin, would that address the same needs?

Of course there is the cost factor as well. With LGPL and Qt it seems there is no cost involved, commercial license is about $2000 per year per platform. Xamarin indie license is $299 per platform and goes up to $1899 per platform for Enterprise license.

Personally for me Qt 5.1 is attractive for access to the GUI widgets capped off with good support for multiple platforms. Combined with LGPL and the development tools they provide it seems like a solid choice. The fact that Mark chose it for TED carries some weight, and with that choice, there is already some history between Monkey and Qt.

Certainly if Tony at Playniax with the upcoming Ignition UI Module or Chris' MyGui, or Ziggy and Sasch's junglegui had a widget set as complete as Qt or Xamarin, there would be no need to look for UI outside of the "Monkeyverse". Bananas (food) for thought :)...

Armitage1982(Posted 2013) [#2]
Monkey definitely need a GUI !
Qt is a good choice.

If only that was officially supported...

AdamRedwoods(Posted 2013) [#3]
Qt is huge, and to support each target would be a nightmare. Just for desktop would be ok. I personally don't like Qt (too large, limited license, wacom incompatibilities), so that's why I stuck with wxWidgets.

Also, in my humble opinion, GUI for mobile is vastly different than desktop, so I'd be happier seeing two solutions. Someone was working on a webview native module, which I thought was a smart way to get a common GUI.

AndroidAndy(Posted 2013) [#4]
@AdamRedwoods - Good point on the drawbacks of Qt, I was thinking that Qt 5.1 was moving in the direction of a common GUI with its support of Android and iOS. I understand Qt is huge, but I would think that core Monkey would just support the Qt Canvas and stop there, then the UI Widgets could be progressively cherry picked into a separate Qt UI target.

I do agree with you that mobile and desktop are vastly different, but the trend is moving towards unified gui frameworks. This seems to be driven by the convergence of desktop and mobile with the sweet spot being tablets. You are starting to see larger tablets from Dell, HP, Lenovo, and others that are coming down to the consumer level.

Ideally some Monkeycoder steps up to create a full GUI framework and robust set of widgets in Monkey. We already see the starting of that with the aforementioned projects/products, but to create a full GUI framework with the range of widgets the likes of Qt, wxWidgets, ExtJS, Xamarin, Cocoa UI, Flex, XAML, and others is a tall order. You could certainly argue that Monkey doesn’t need a full rich set of GUI widgets for game development (and I agree with that), but why limit Monkey to just game development? Monkey could (not saying it should) be used as a general purpose language to develop any sort of app.

Armitage1982(Posted 2013) [#5]
Monkey could (not saying it should) be used as a general purpose language to develop any sort of app.

I guess this will not happen anytime soon.
By choosing the agnostic platform voice at all cost, Monkey just limit itself to the common ground.
There's something missing between BlitzMax and Monkey.
Why not updating BlitzMax with the Monkey language, modern libraries and keep Monkey for mobile ?

I remember that huge post about ARM support for BlitzMax. If only I had known then that mobile & Monkey would kill BlitzMax, I would rather forget about it and keep the updates coming with great pleasure.
It's sad but in fact if you really want to use Qt or any others GUI to create applications then it's way more practical to directly use C# or Java. Setup and use is a bit more complex but not that much.

Making a GUI from Monkey and keep in mind you won't probably have text selection, clipboard, skin support or stable and good rendering speed before a few years...

AdamRedwoods(Posted 2013) [#6]
Qt wouldn't be drastically difficult to add to Monkey, especially with the new CCOPTS i managed to get into the latest monkey... (might not even need a target compile!)

AndroidAndy(Posted 2013) [#7]
@AdamRedwoods - Would be interested in what you could come up with. The interesting thing about Qt 5.1 and higher is the move into Android and iOS support.

Again, it would be really cool if TED was written in Monkey, that alone might be worth something?

@Armitage1982 - You are absolutely right about using the native language and frameworks to write full blown GUI apps. However, it would be a lot more fun writing in in Monkey.

It is true that Monkey is best served by targeting the common ground amongst the platforms it supports. Monkey should be able to leverage that concept by piggybacking off another framework that attempts to do the same thing with something like a GUI.

Armitage1982(Posted 2013) [#8]
However, it would be a lot more fun writing in in Monkey.

Exactly, cause the language is really nice and don't need any extra level of complexity like you can have with formal renowned languages.


AndroidAndy(Posted 2013) [#9]
@Armitage1982 - Just FYI here is what Adam was talking about:

I recently forced a Pull on Monkey to allow this in the cpp target. (#CCOPTS="")
I expect it may appear at some point in GLFW.

and a link to the forum post: