
Qt 5.13 Released - jcelerier
https://blog.qt.io/blog/2019/06/19/qt-5-13-released/
======
sdegutis
I've looked into Qt several times in the past two decades as a cross platform
SDK for some app ideas I had, but one thing that kept stopping me is the
confusing multiple offerings they had. It reminded me of Windows programming:
do I choose Windows Forms, WPF, or UWP? Same thing with Java, should I learn
Swing or JavaFX? Qt has a similar story lately, I think there's an "old
fashioned" API, and a JavaScript API, and a XML-like thing too, and I just
don't know where to get started with 100% confidence that I'm not learning the
wrong thing.

[Edit] None of this is meant to be a criticism, but constructive feedback as
to how to win over users like me who just wanted a stable, high quality SDK to
use. If I'm not the target audience then that's fine too.

~~~
svnpenn
This is one thing that C# finally fixed. If you go to the downloads:

[https://dotnet.microsoft.com/download/dotnet-
core/2.2](https://dotnet.microsoft.com/download/dotnet-core/2.2)

you get "Build apps - SDK" and "Run apps - Runtime". So you know what to
download depending on your situation. for years it would just say "SDK" and
"Runtime", which to a new user means pretty much nothing.

I think Java still uses the confusing style, they should stop it as well.

~~~
pjmlp
Java has stopped doing that with Java 9, with introduction of modules and
linker.

You are now supposed to bundle an application specific runtime tailored to
your application.

Which is also the path that .NET is taking forward with .NET Core.

~~~
sdegutis
I don't see how Java modules have anything to do with the UI framework. Swing
is still part of JRE and JDK, and JavaX is now a third party framework, but
that's as far as I can tell how that concept is related here.

~~~
pjmlp
Because modules and the linker work together, reducing the needless fat when
creating an application specific runtime.

~~~
sdegutis
Oh I understand. You're talking about stripping down the final Java output to
not include more than what's needed, for a better end-user-experience. I was
talking about which UI module to include and target from a developer's stand-
point. They're both related to modules though, just from different sides of
the same coin.

------
dman
Qt is $5508 per developer for the commercial version. It appears they are only
targeting larger enterprises at this point in time.

~~~
pjmlp
Well I guess because the multiple attempts to have regular devs sponsor their
work failed, so they turned to the only market that is willing to pay for
their tooling.

Just like most companies selling software development tools.

~~~
dman
I hope developers allocate some money of their annual salary and use it to buy
tools. We need to create financial incentives for people to build good tools.

~~~
sdegutis
Pretty sure that's not how the laws of supply and demand work. If people need
it, someone will fill that need at an affordable price. If we don't need it,
we'll survive without it.

------
rgovostes
To this newcomer to Qt, distributing standalone apps seems like a disaster.
Binaries built for macOS link against Qt libraries in /usr/local; on Windows,
you need to copy a dozen .dll files until your executable launches, or
otherwise rebuild all of Qt (!) to support static linking.

~~~
maccard
QT is distributed under LGPl so by statically linking you must also distribute
your program as LGPL. My understanding is that allowing a user to link their
own version of QT (ie shared/dynamic libraries are acceptable) fulfils the
criteria to avoid licensing your project under LGPL.

>on Windows, you need to copy a dozen .dll files until your executable
launches

Presumably you're new to Windows development? as long as you place the
libraries in the same folder as the executable, add the QT install directory
to your path, or add the install direvtoey to your debigging Environment
variable, you're laughing - it's as straightforward as DLLs on Windows come.

~~~
rgovostes
> as long as you place the libraries in the same folder as the executable

The problem is that I don't know which libraries I need. For a very small
project I just kept launching the .exe and reading error messages until I had
gathered all the DLLs. It's not a sound way to do it, in case a library is
loaded dynamically.

~~~
longnguyen
For Qt dlls, use windeployqt. For third-party libs you will still need to copy
manually though

~~~
geezerjay
> For Qt dlls, use windeployqt.

This, and there are also applications which state which DLLs are missing from
a deployment.

------
h1d
If QT is the best cross platform GUI framework that could come out in the last
20 years, then maybe it's time Electron would be the leading framework for
that role.

~~~
Data_Junkie
Well that's stupid.

