Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by htfy96 on Monday November 25, 2019 @05:50PM
(#21633680)
One thing to notice is that the open-sourced version of Qt is under GPL/LGPL, which means if you statically linked it into the executable, your application is then infected by (L)GPL.
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by kej on Monday November 25, 2019 @06:03PM
(#21633824)
Your application is "infected" if you use Qt without a commercial license, regardless of how you link it. It's a little harder (but still possible) to comply with the LGPL requirements when you statically link, but you are bound to those requirements either way.
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by groovebits on Tuesday November 26, 2019 @04:47AM
(#21636839)
Pretty sure having it dynamically linked is ok with the open source licence
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by kej on Tuesday November 26, 2019 @10:34AM
(#21639133)
Right, my point is that static linking is also okay with the LGPL, albeit slightly more difficult in terms of what you have to make available to end users.
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by therockhead on Tuesday November 26, 2019 @02:27AM
(#21636266)
I believe the parent post is correct and mechanism used to link effects the licence.
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by nickserv on Tuesday November 26, 2019 @03:08AM
(#21636423)
If you want to ship closed source code based on other people's hard work, then you should pay. In this case by getting a Qt commercial license.
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by jksmith on Tuesday November 26, 2019 @10:02AM
(#21638796)
Maybe, but keep in mind FreePascal/Lazarus has generally been supporting at least three of the platforms natively for several years. Complier, visual design, everything as expected from a delphi-like product. One of my FPC projects includes a desktop client with one window using multiple size controls and everything re-sizes near perfectly (know how to use panel controls). Recompiled on Linux and behavior was almost identical and no compile errors, according to expected behavior of a multi-platform toolchain. Funny enough, the client calls into a Golang rest backend I wrote. Nice, efficient solution that is easy to add additional devs to when needed.
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by MayeulC on Monday November 25, 2019 @06:17PM
(#21633934)
Well, you can do this with C++ and Qt as well, but as a sibling commented, you are subjected to LGPL, so your app has to be under a compatible license, or provide a way to replace the Qt part (not sure if you were to provide one such mechanism while statically linking, like SDL2 does with its dynapi[1]).
[1]: https://hg.libsdl.org/SDL/file/default/docs/README-dynapi.md
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by longstation on Monday November 25, 2019 @07:39PM
(#21634525)
Would you elaborate on the size of QT? I searched and found this link ([1]) that suggests when done right, the QT part is about 20MB.
I am asking this because sometimes people have different idea on what is accounted for being big.
[1]: https://stackoverflow.com/questions/25426895/qt-static-build...
Edit: grammar, link style
Re:Qt Binding for Go with Support Desktop, Mobile and Embedd...
by derefr on Monday November 25, 2019 @08:22PM
(#21634838)
20MB is still large in this case; we're talking about people who frequently use as their download host a phpBB forum with a 5MB download limit, and who usually manage to achieve sizes far less than that (usually ~150KB) because it's literally just CRUD + parsing + filesystem access + some layout XML for the dynamically-linked GUI toolkit to chew on.
Think: "would software pirates write their little keygen GUIs in this?"
There are a lot of people (I'm looking at you, console home-brew community) who build all their little tools to go along with their projects as native GUIs, usually with C# + WinForms—not particularly because they have Windows-specific functionality, but more because they have at least some native functionality (so Electron is out) and C#+WinForms allows them to just make releases as a standalone .exe you can "just" download and run (at least on modern Windows), without needing to first install some external runtime.
This could be a good multiplatform alternative to the C#+WinForms stack, with all the same advantages. (The only con being that statically-linked Qt is pretty dang large.)