
QT 5 launched by new owner, Digia - easytiger
http://digia.com/en/Home/Company/News/Digia-launches-Qt-5-cross-platform-application-development-and-UI-framework/
======
nodata
"Qt 5 delivers a step function increase in performance, functionality and ease
of use and will be the platform on _which full Android and iOS support will be
delivered during the coming year_."

~~~
bergie
I've heard people mentioning they already have Qt applications in both App
Store and Google Play, but I don't know any specifics. So I suppose the
support is there with some tweaking already.

And of course Qt will be the main SDK for both Blackberry 10 and Jolla's
Sailfish.

~~~
DennisP
Didn't know about Sailfish. Interesting that they're focusing on multitasking.

It made me wonder whether BeOS might not make a great mobile OS. Designed for
limited hardware, excellent multitasking, and an opensource version in alpha
status now.

~~~
Scramblejams
Having experienced BeOS, I've always been bummed it didn't see wider success.
Its UI responsiveness under heavy load has never been equaled.

~~~
vidarh
Achieving UI responsiveness under heavy load is not particularly challenging -
the Amiga did it well too, without much effort:

Put UI handling in separate threads/processes (Amiga "Tasks" would've been
processes in a memory protected OS, but since AmigaOS isn't, for all intents
and purposes a Task behaves like a thread in modern OS"s), and prioritise
input and UI control handling threads higher than others.

Lack of UI responsiveness under load in modern OS's is down to laziness - this
was largely a solved problem 20 years ago, on hardware magnitudes slower.

~~~
beagle3
It's not particularly challenging theoretically, and yet it is so seldom
achieved that it is very sad.

My old iphone 3G stalls for seconds at a time due to memory pressure; Windows
stalls for seconds at a time due to CPU pressure. So does Linux with X; I have
no experience with Android, but I'd be surprised if it is different.

So apparently, it IS a challenge, even though there is no rational explanation
why it should be.

~~~
marshray
* Garbage collection

* APIs blocking on network operations (e.g., gethostbyname())

How does BeOS avoid/avoid lagging with these things?

~~~
timv
The achieved the latter by making "the right way" also be "the commonly-used
way"

Be Inc did 2 things well in this regard

* They designed their API/App Framework so that launching threads was easy, and passing messages between threads was safe & easy

* They developed a culture (both within the organisation and also within their developer community) of using those features everywhere.

Those two things are more closely linked than they may appear. The framework
was explicitly message-based. You interacted with different components by
sending and receiving messages. And it was heavily threaded (Be called it
"pervasive multi-threading"), to the extent that every window had its own
thread, separate to the main app thread.

By having those features, and not having any particularly good way to write
apps except by using the official framework, the developer community was
forced to learn how to develop multi-threaded, message-passing apps.

And once developers started to think in terms of messages and threads, it was
natural for them to use those elements to solve all sorts of problems, so that
no self-respecting BeOS developer would ever think to do significant
processing inside any of the UI handling threads.

------
smogzer
People from hacker news, check out qtquick or QML, it's like html but without
the legacy and the bad parts, just powerful syntax for developing apps, and
thanks to network transparency QML can be downloaded from the web also.

QT5 is a dream come true, and when it becomes omni-deployable (android, ios,
raspberry pi) it will be even better.

~~~
joezydeco
QML is nice, but make sure you have the processor overhead for it. It's all
javascript and the interpreter will suck up your processor time.

For people doing lower-end embedded stuff Qt5 isn't going to give you much, if
you can run it at all.

~~~
lfranchi
Qt5's QML2 is using V8 as the JS engine and an opengl es2 scenegraph, so it's
actually quite fast. Depending on your embedded platform, you should still be
able to achieve pretty impressive performance.

~~~
joezydeco
Um, okay. Can you point me to a MIPS implementation of V8 that runs well on a
360 MHz R1 architecture? Oh and my CPU doesn't have any hardware OpenGLES
acceleration. How should I work on that?

~~~
rat87
fortunately or unfortunately the future will require all gui capable computers
to have hardware accelerated graphics. To compensate for bad drivers there
will be fallbacks to somewhat fast software rasterizers like llvmpipe.

------
DocSavage
There is a recent presentation on the Qt 5 Roadmap available online:

<http://www.youtube.com/watch?v=3QgG9oYhH-c>

Slides for this and other Qt talks are available here:

<http://qtconference.kdab.com/node/25>

------
DigitalJack
So I see that there is the open source project Qt-Jambi, which provides java
bindings into Qt, and apparently has a "generator" for working with future
versions of Qt.

Assuming it comes up to speed with Qt5, I'd like to try this with clojure.

Anyone have any experience with Qt and Java/Clojure?

<http://en.wikipedia.org/wiki/Qt_Jambi>

~~~
jamii
I tried it out a few years back. Using it from clojure was a bit painful at
the time but you might have more luck today. Qt-Jambi relies pretty heavily on
Java introspection eg scanning the fields of a class to find things of type
Slot. I also had to write my own repl because UI actions are only allowed to
happen inside the event loop thread. Check out github.com/jamii/inkling for
some examples which may still be relevant.

------
pkorzeniewski
Great news, QT is such an amazing platform, I'm happy to see it's being
actively developed by their new owner :)

------
mtgx
They are also going to expand support for OpenGL in Qt 5.1, it seems:

[http://www.phoronix.com/scan.php?page=news_item&px=MTI1N...](http://www.phoronix.com/scan.php?page=news_item&px=MTI1NjI)

------
figital
I've really wanted to dive into this for a side project. On the limited time
I've had, I notice the Creator IDE UI and tutorials take an extra step I'm not
used which is probably from translating the experience from Finnish to my own
language (American English). Just a random guess but the commercial version
could increase uptake by doing a round or two of "visual/workflow qa" for a
wider-range of global users (especially the folks looking to speed through to
working QML/JS demos). Will keep digging ... the "deploy local windowing" to
Lin/Win/Mac looks truthy. (I think I should just start simple with a text
editor and the compiler next go round)

~~~
zem
if you want to play with it and learn your way around the api, it's easier to
get up and running with python+pyqt than with c++. the python bindings are
very well supported and there're lots of blog posts and tutorials out there.

~~~
super_mario
Does pyqt work with the just announced version 5.0?

~~~
zem
yep. see <http://www.riverbankcomputing.com/news/pyqt-496>. the pyqt bindings
are supported by riverbank, which offers commercial licenses, so they have
every incentive to keep it up to date.

------
kombine
Qt's "Write once, deploy everywhere" has been able for many years on the
desktop, until mobile revolution came with incompatible interfaces and now we
have to start again. Good news they are working on a solution to this
challenging problem!

------
smegel
Now gimme PyQt5 and ill have a very merry Christmas indeed :)

~~~
przemoc
You meant PySide 5, right? ;)

~~~
smegel
After i migrate from Solaris to Linux i suspect yes. Oh the things I'll be
able to do once Solaris is merely a bad memory...

------
stewie2
Qt is the best. Without it, I will not use c++ anymore.

~~~
jeroen94704
Hah, that's pretty much what I said:
[http://weblog.jeroen.ws/blog/2012/11/19/how-relevant-is-c-
pl...](http://weblog.jeroen.ws/blog/2012/11/19/how-relevant-is-c-plus-plus-
today/)

~~~
skrebbel
Wtf! We work together for months and you never tell me that you have a blog?

~~~
buu700
Seriously dude, I'm pretty upset about this. Please see me in my office first
thing tomorrow morning.

------
jensbw
Why link to the press release and not the epic video?
<http://www.youtube.com/watch?v=vhWS_bN-T3k>

~~~
easytiger
beacause... reading! Really should have linked to the changelog

------
shawn-butler
The new signal-slot syntax for Qt5.0 [0] really makes a lot of sense when
combined with new c++11 lambdas. But I guess I don't understand what they mean
regarding support for c++11 generally.

Are we talking about significant rewrites and with what compiler? I don't see
vendors reaching compliance for at least a year.

[0]: <http://qt-project.org/wiki/New_Signal_Slot_Syntax>

~~~
marshray
Will it still require a custom preprocessing step?

~~~
shawn-butler
The new syntax would not as type safety is being enforced at compile time.
However the old syntax using strings is also available so if it is, then yes
used the same preprocessor macro step will apply.

Was reading to find answers to some of my own questions and found this link
helpful regarding use of c++11 in Qt5 [0]. Use of c++11 features seems limited
in the first release which makes sense.

[0]: <http://woboq.com/blog/cpp11-in-qt5.html>

------
therockhead
If you already know C++ what would be a good book to learn QT?

~~~
gdy
C++ GUI Programming with Qt 4 (2nd Edition) seemed ok.

------
VMG
Is there a dance? (see <http://www.youtube.com/watch?v=NbTEVbQLC8s>)

------
wojtczyk
I really hope, Qt5 will become the same native cross-platform solution for
mobile platforms which it became for desktop applications.

------
mildweed
Here, I thought that Apple had sold Quick Time.

~~~
haakon
People will never learn to spell Qt correctly. _Never_. Same with
pronunciation.

~~~
rvkennedy
You know why this is? Because there is no correct pronunciation in English for
two consecutive consonants. Similarly, SQL is not pronounced "sequel", because
it contains no vowels. TeX is not pronounced "teck" because there no letter
chi in the Roman alphabet.

All these cutesy insider pronunciations only serve to confuse and alienate the
uninitiated, it's elitist nonsense.

~~~
untog
I pronounced SQL by saying each letter for a long time, as I'd learnt all
about it online and never spoken to anyone about it. It didn't help that I
often worked with MSSQL, or... Messequel?

~~~
pooriaazimi
"Sequel Server", maybe? It's more pleasing to the ears.

~~~
rjknight
I tend to say "Sequel Server" but also "My S Q L". Am I weird?

~~~
krapp
Not as weird as me because I've been calling it "Mysquirrel."

~~~
Thrall
It can't be that weird, as I too call it this. I had assumed that I was the
only one!

------
linpythio
QT5's success will lead to sailfish,BB10 and other qt based project's
success.And it's contest between C++ and objective-c.

------
dserodio
Does anyone know if Python bindings are on their way?

~~~
toyg
PyQt 4.9.6 already supported Qt 5.0-rc1, so I guess it's a matter of days (or
you could try compiling that against 5.0 GA , it might work just fine).

------
wildranter
Does anyone has an idea of how much it costs to license Qt?

~~~
nuclear_eclipse
It's licensed under LGPL 2.1 (or GPL3 if you prefer), so it's free for
proprietary/closed-source usage as long as you don't modify Qt itself, or if
you at least distribute the source code of the modified Qt binaries. There is
also a commercial license if you want support or to be able to modify Qt for a
closed-source project, but that requires direct contact with their sales folks
afaik.

~~~
easytiger
i would assume the more interesting information is how much does it cost to
license in a commercial project.

