[Development] What kind of airplane we want to build?
Marco.Bubke at theqtcompany.com
Wed Jan 20 11:48:20 CET 2016
After the exciting discussions in the last time with all the energy spend on them I want to try to make a short summary. Maybe we can transform the heat on some steam to progress further. ;-)
I think many feel that C++ is rapidly changing. With C++ 17 on the horizon there is some excitement but also fear that Qt will not stay relevant if we not adapt. But there are arguments too about existing users who would be left in the cold we we change to much.
So let use an airplane as metaphor. We built a fine piston engine airplane on that little bit cumbersome piston engine called C++. But now we see Jet engines coming up but all our technology is built the old piston engine technology so the adaption of jet engines is not that cheap. The jet engines are different but we are not sure about their advantages but we are sure it would be a big investment to change to them. So people propose different designs. Some say we should minimize investments and only apapt slowly other proposed to build a hyper mach airplane.
The metaphor is not perfect but I hope it is productive enough.
I think the big elephant is the massive move of the processing technology to multi cores, massive multi cores formerly known as GPUs and the new parallel mechanism which are proposed to utilize them. Resumable functions, ranges, parallel stl and how they all are called. This will change how C++ looks but how can we change Qt in that picture to utilize this new technologies.
I think it would be productive for the discussion to build story of what we want to do. A story of the big picture. Maybe as a first step we can show how we tackle problems with Qt 5 and what are the proposed technologies in the future C++ standard.
Maybewe see that we don't have to change so much. Maybe we find out the change would be so massive that we cannot call it Qt 6 anymore. There are many maybes because the future is uncertain but we handled uncertainty in the past so why we should not do it in the future?
I really believe that before we make little changes like the containers etc. we have to find a story. A story how the future Qt should look, a story for the long run. In my opinion we have to build the story TOGETHER and this story should be build on actual experience and measured facts. We should be careful about emotions like doubt, fear or excitement. I think we should be stay calm.
So we can try now this new C++ prototypes, find out how they fit with our technology like signal/slots, CoW etc.. And later if they are getting momentum we can provide our magic sauce on top to make our users more productive.
And if we want change Qt much we have to provide a technology to make the adaptation of our users easy and reliable. So the gain should be bigger than the cost. I think Clang based technologies provide us some possible tools but we have to find out. It is not only about providing the tool kit for new shine projects but for existing ones too. Some maybe they don't want to change and that is a respectable decision but for the user who want and need to adapt we should make it easy.
I know this sounds like common sense but after all the discussions in last time I think we should step back and get a bigger picture before starting detailed discussions again.
So lets go out, start prototypes, gain experience and come back to fruitful discussions. ;-)
Sent from cellphone, sorry for the typos
More information about the Development