True but if you want to work with GUI and Graphics APIs its C++ all the way. Mainly because Graphics are extremely complex data that benefits from the workflow of OOP and the performance of C. Combine the two and you have C++. The language we all love to hate.

I have not tried myself , but I think C++ compilers have an option for disabling name mangling that is the reasons UFFI cannot use C++ libraries. But there is of course always the option of making a wrapper DLL in C++ that has no name mangling with EXTERN C keyword.


On Tue, Mar 14, 2017 at 4:23 PM Esteban Lorenzano <estebanlm@gmail.com> wrote:
you cannot use QT out of the box because is C++

I have some experiments with GTK3 that were working but event loop was kinda failing (no time to go back to it soon).��
It would be very interesting to have native windows support, I may take a look eventually :)

Esteban

On 14 Mar 2017, at 13:37, Dimitris Chloupis <kilon.alios@gmail.com> wrote:



There are other cross platform APIs e.g. wxWidgets and Gtk

There used to be a version of squeak with wx bindings wxSqueak but the
code seems not to be on line now.


GTK is not a very good choice, it works well on Linux but on MacOS and Windows has many issues and a lot less developers bug fixing.

wxWidgets is a nice GUI API but again it does not come remotely close to the feature set and stability of QT. Some of its areas also are abandoned or very much lagging behind. In my case a big turn off was the outdated python wrappers which sent me directly back to QT.

When it comes to guis No1 is Native GUIs , No2 is QT.

But QT needs a commercial license for developing pro applications. Its free license is GLP which limits the usage on commercial projects.

It does however offer a free LGPL version with more limited features. LGPL allows to close code as long as the code is distributed via dynamically linked libraries.

Still it may be tricky to balance on the LGPL without falling down. Which is why many like us prefer MIT over LGPL.

There are a ton of open source GUI APIs out there, but most of them are immature, limited or plain abandoned. So you have plenty of choice, but I think you will have little reason to prefer something that is not QT, especially if we are talking about commercial projects that need to run on many platforms. ��