Hi,
I think answering the question about the kind of airplane to build is closely
tied to another question that may be worthwhile
asking. I think it's worthwhile because I'm convinced that answers diverge
greatly depending on who you ask.
Why are we trying to build an airplane?
Or differently put: What is our mission?
Is our mission to transport people from A to B? Is the mission to transport
goods from A to B? Is our mission to get people from
A to B in the quickest way? Or is it about safety? The answer greatly
influences the type of airplane to build (in the event that
the airplane is the right method of transportation).
I'm of the opinion that our mission should be to make life easier for
programmers.
That includes also novice programmers and especially people who's first
language is not English.
Who else agrees with me?
Ways to achieve that include tooling to increase work flow productivity,
intuitive and consistent APIs that are easy to remember
and easy to use, especially for non-native english speakers. These are
considerations that greatly affect the naming of functions
(which may or may not justify diverging from the STL for example).
Simon
________________________________________
From: Development <[email protected]> on behalf of Bubke Marco
<[email protected]>
Sent: Wednesday, January 20, 2016 11:48
To: [email protected]
Subject: [Development] What kind of airplane we want to build?
Hello
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
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development