C++ in 2013

published at 13.01.2013 14:39 by Jens Weller

As the year is still young, what can we expect from 2013 for C++?

Quite a lot I think, there is some movement in the C++ Scene, C++ has become more dynamic in its developement. C++03 lasted for years, and without a new Standard, without changes to the language, C++ had almost a decade of static development, things like Meta Template Programming evolved and the language was used to its best. But still, the language it self did not move.

With 2013 this will change, it will be the first year, where C++11 is really available to a wide audience of C++ Programmers, with Visual Studio 2012, Clang 3.2 and GCC 4.8 the new Standard is widely adapted, and Frameworks like Qt5 encourage its usage. But the fate of C++11 is not to become the new Standard for this decade, its more or less a transition to a more advanced C++ language, which continues to evolve in 2013 and beyond.

This is one of the reasons why I think that 2013 is special to C++, as not only C++11 will now become the widely used Standard of the common C++ Programmer. 2013 will also be the year, which will shape the next C++ Standard, C++14. With the C++ Committee Meeting in April at Briston, UK, we will see C++14 taking shape. With the October Meeting in Chicago, C++14 should be a clear draft, which will become then in 2014 the new C++ ISO Standard.

So, what will C++14 offer? Maybe we will see a first version of filesystem beeing part of the C++ Standard Library. For sure it will offer some bugfixes to C++11, as for example name lookup should improve with the next Standard. Also std::future might become a then method, so its not only depending on its blocking get method. Threading might have in general has a few minor things to improve. But we'll see the details taking shape this year for sure!

Now, as I wrote in my Islands of C++ Article, the C++ Community is very diverse, so that also on other "Islands" this year will happen a lot. I think that C++ will become more important in the mobile world this year, Microsoft has with WinRT, Windows Phone 8 and C++ a good combination. Also we see BlackBerry 10 from RIM running native C/C++ or using Qt as a higher C++ Framework. Especially Qt has spread in the mobile space, since nokia moved away from it.

So I think, that this year will also be the year of Qt5. Qt5 offers wide C++11 support, it is widely adopted in the industry and will keep spreading to new platforms, due to its open source agility. Qt5 and its QML Technology will spread this year to Android and iOS. Also it will support BlackBerry 10, Jolla, Ubuntu Phone and it might spread to WinRT and Windows 8. And the ecosystem of Qt will keep growing, with companies like Digia, KDAB or ICS backing it.

Talking about Qt and QML, I must mention a development which seems to have started just now in 2013: QML suffers from fragmentation in its UI API, as QML never offered a Widget API for crossplatform, nokia introduced Widget APIs for Harmattan and Symbian. With other platforms using QML, we have now a fragmentation of platform dependent QML Widget APIs, which is against the goal of Qt, to code once, and run everywhere.

But, it is yet unclear, how this will get fixed. I always saw this as a major issue with QML, that I could do a Rectangle element, that would be everywhere a rectangle, but not a Button, that would be a Button everywhere. Currently you have to rewrite the UI for every platform, but the Community has started to work on a unified API which will adress the problem of fragmentation, and hopefully we get a long term solution for UI Widgets in QML.

Another very fast evolving C++ Platform is clang. With the end of 2012 we saw LLVM and clang spread into the industry. Embarcadero has based their new IDE on top of clang, Apple is using it already, and also Nvidia migrated from its own solution to a clang based solution for its GPU compiler. With 3.2 clang has become more stable, and maybe it will soon be the first fully C++11 compatible compiler.

Another event which probably will help C++ and Qt to grow, is the current 0day problem with java. Java once introduced as a 'secure' language, is now beeing exploited in its core. So that organisations like the german BSI or the DHS advice to disable or deinstall java. I'm not saying C++ is better and not also exploitable, but C++ is much more diverse and has an ecosystem of competing compilers and platforms. And no unified, exploitable runtime.

But, back to C++. In 2012 we've seen many successful C++ conferences, which mostly were sold out. I think this will continue. With ADC++ and Meeting C++, Germany has now 2 C++ conferences, there are many more in america, with C++Now in May, C++ and Beyond in December, also QtDevDays will again be in Berlin and California. Before the C++ Committee Meeting there is also ACCU, with a keynote from Bjarne Stroustrup and many interesting C++ talks.

My own plans are to visit C++Now in Aspen, and to plan for Meeting C++ 2013. There is not much to be announced yet, no dates available. But the call for papers should start arround April, and last till C++Now/May, 6-8 weeks. I plan to have a little Jury, which will vote on the talks, to see what should be accepted. But there is not yet a detail to report. Currently I also plan is a 2nd event about Qt5, which will be earlier then Meeting C++. This might get announced soon.

Regarding the user groups, I'd like to see this idea spreading, and maybe I will do a talk about this in Aspen. Next week the 2 active german user groups will have their monthly meeting, and in Febuary the belgian C++ User Group will meet again. I've had discussions on twitter about London, and also in Germany Dresden may be next to become active in a local C++ user group. Still one of my goals is to establish a european C++ network, with local user groups beeing part of it.

So, I wish a happy new year 2013 to all of you!

Join the Meeting C++ patreon community!
This and other posts on Meeting C++ are enabled by my supporters on patreon!