briskml / brisk

✨Cross-platform set of tools for building native UIs with Reason/OCaml
MIT License
554 stars 9 forks source link

QML #118

Closed ShalokShalom closed 5 years ago

ShalokShalom commented 5 years ago

Hi there :)

Do you plan to use QML for Linux?

What do you criticize about it?

naartjie commented 5 years ago

@ShalokShalom do you know much about QML? Do you think it's a good choice for cross-platform targets?

I see there is an OCaml library for it.

ShalokShalom commented 5 years ago

It is built for it. Nokia has bought Qt with the purpose to build a cross-platform toolkit, so the documentation, the implementation, the community, all is built around it. Nokia has then sold it to Digia because they nearly went bankrupt.

It is also the widest used open source toolkit in that perspective and has lots of cool stuff. It is also used for the complete Plasma Shell on KDE and provides hardware acceleration.

Yes, Kakadu has a nice library for it. :hugs:

wokalski commented 5 years ago

I was wondering about licensing. We'd like to use QT or GTK only for linux (MacOS and Windows have their own libraries.) I know that both are widely in use today. Are you able to provide some more background why one is better than another?

ShalokShalom commented 5 years ago

Yes, MacOS and Windows have their own libraries. They do not look more or less native as Qt Quick, nor do they offer more performance. There are some benefits here and there, while under the line, you can`t tell the difference apart between native libraries and Qt, you simply pay multitudes of development costs more or less. This is why a cross-platform toolkit with native integration makes sense.

You can look into this talk, in which you can see the port of an app from GTK to Qt. This has actually happened in a lot of popular cases, like VLC and Wireshark. They all are happy with this decision, despite the fact that this means tearing your whole app apart and rewriting half of it basically from scratch. The application in this talk is called Subsurface and gets developed from Linus Torvalds, plus the guy in the talk who was back then employed at Intel and some others. This developer experience shows both the benefits of Qt over GTK, as well as Qt`s look and feel at different platforms. Also worth mentioning is this demo reel.

Realise that this app is using Qt Widgets, which is not hardware accelerated and has zero capabilities to run on mobile hardware, like Qt Quick (the library) alias QML (the language) can do. Also interesting is, that with Qt Quick and QML your interface code is always separated from your logic code and you can use Qmlweb in order to render on homepages.

wokalski commented 5 years ago

They look, perform, and most importantly feel better than QT. I think we might have miscommunicated the purpose of Brisk somewhere but its goal is indeed providing the cross platform toolkit which communicates with system UI libraries behind the scenes.

That said, there is a place for Qt in Brisk - for Linux development.

To clarify a bit; we are striving to create a unified API for UI development on various platforms similarly to React Native. It means that on the mac we're binding to AppKit, on iOS to UIKit, on Windows to Windows 10 SDK, Android Views on Android etc.

ShalokShalom commented 5 years ago

You reimplimenting what is already there and that in multiple views. And you are tying to do that with a very small team, where a group of professional developers spend years over years.

Qt6 will actually be very similar as your proposal also.

https://blog.qt.io/blog/2017/02/06/native-look-feel/

wokalski commented 5 years ago

Point taken @ShalokShalom. It's unclear to me what's the purpose of this issue? Please clarify what's the actionable here. If this was just a question feel free to close it. Thanks!

ShalokShalom commented 5 years ago

It's unclear to me what's the point of this project?

As initially asked, I was wondering if you use QML/Qt for Linux. Which includes Android for me.

In my personal view - and this is covered by observations of individuals when looking at the different implementations - is the work that Qt has done undisguisable integration of interface elements, compared to their native implementation.

wokalski commented 5 years ago

The point of this project is to provide a uniform, cross platform library for developing user interfaces which use native widgets behind the scenes. Regarding Linux (but not Android), yes, I believe Qt might be the best choice there.

ShalokShalom commented 5 years ago

And I simply think working together with a company, that also happens to be a huge open source community, makes sense.