📜 ⬆️ ⬇️

C ++ in 2013

2013 is just beginning. What can we expect in it for the C ++ language?

Last year, a significant recovery in the C ++ world became noticeable. The language is becoming more dynamic, it is noticeable. C ++ 03 rules for many years, without a new C ++ standard for almost a decade, we have been watching the development of libraries, static programming, things like meta-programming on templates - and all this has evolved quite well. But the language itself did not move anywhere.

In 2013, this will change. First, starting from this year, the new C ++ 11 standard will finally become available to a wide audience, in view of its full support in Visual Studio 2012, Clang 3.2 and GCC 4.8. The impact of the new standard on libraries and frameworks is already felt, for example, a lot of it has found its application in Qt5. But standard C ++ 11 is not destined to become the foundation of development for the next decade. Rather, it can be perceived as a good intermediate stage, a step towards the evolution of the language, which will continue in the 2013th year and later.
')
This is one of the reasons why I think that 2013 will be a special year for C ++. This year, work will begin on a new standard - C ++ 14. In April, a meeting of the C ++ Standardization Committee will take place in Briston (UK) and we can already imagine the outline of the future standard. In October, a meeting will be held in Chicago, where a more or less clear draft should be formed, which in the beginning of 2014 will become a new ISO standard.

What does C ++ 14 offer us?

Perhaps working with the file system will become part of the standard library. Absolutely exactly the standard will include bugfixes for C ++ 11, such, for example, like this one . Perhaps the changes touch std :: future, since the current implementation with locks raises some censure. A few minor changes can affect multithreading. More precisely, we will know only after the April meeting, so there is no point in asserting anything.

As I already wrote in my article “ Islands C ++ ”, the community of C ++ developers is very divided, so different things will happen on different “islands” this year. C ++ will become a more important part in the mobile development environment. Microsoft introduced WinRT and Windows Phone 8, under which you can easily write in C ++. RIM's BlackBerry 10 involves programming for this platform in both pure C / C ++ and using Qt for higher level development. And although Nokia has moved away from Qt support, on other platforms the influence of this framework is only increasing, so this year will be quite good for Qt. Qt5 is flexible, supports C ++ 11 and is already widely distributed in the industry. Qt5 and QML come to Android, iOS, BlackBerry 10, Jolla, Ubuntu Phone and maybe WinPhone 8. The Qt ecosystem continues to grow, developed by companies like Digia, KDAB and ICS.

Speaking about the merits of Qt and QML, one cannot be silent about their problems: QML suffers from fragmentation in its API, primarily regarding cross-platform. This is what work should begin right now. A Qt programmer should know that by writing the code once, he can rely on compiling it and running under any platform. In my eyes, this is a very big problem - I can make a Rectangle element that will look like a rectangle on all platforms, but I cannot make a Button element that will look and behave like a button on all platforms. To date, you need to write an implementation of the UI for each platform. Fortunately, the community has already begun work on a unified standard that should solve the problem of fragmentation and I hope that as a result we will get a reliable and stable solution for QML widgets on all platforms.

Another important direction in the development of a language is the clang compiler. At the end of 2012, we witnessed how LLVM and clang penetrated the industry. Embarcadero built their new IDE around clang, Apple also decided to use it, and Nvidia even switched from its own solutions to clang for GPU computing. With the release of version 3.2, clang has become more stable, and it is quite possible that he will soon be the first to be able to boast 100% support for the C ++ standard.

Another event that contributes to the development of C ++ and Qt accidentally became problems with vulnerabilities in Java, which were recently found several at once. One of the important factors in the choice of Java before was its "security", in comparison with C ++. Last year showed that this platform does not have such a clear and unconditional security advantage. Some organizations have even decided to completely remove Java from their computers. I’m not saying that C ++ is better or safer in this regard, but due to the separation by platform, library and compiler in the C ++ world there can be no global problem that will affect everyone at once.

In 2012, many good C ++ C ++ conferences took place. I think they will continue. On the approach of ADC ++ and Meeting C ++, several conferences in America (C ++ Now in May and C ++ and Beyond in December) will also be held in QtDevDays in Berlin and California. Right before the C ++ Standardization Committee meeting, ACCU will take place, where Bjorn Straustrup and several other C ++ speakers will speak.

Year promises to be interesting. I wish you all success in it.

Source: https://habr.com/ru/post/165997/


All Articles