Monday, January 5, 2015

How C++17 and the SG will revolutionalize CPP


It's no secret that in the past few years C++ is undergoing a great deal of changes. From the sleepy static language that existed until 2010 we now have a dynamic and vigour language with steady updates (C++11, 14, 17...), various dedicated conventions each year (CPPCon, Meeting C++, C++ and Beyond and many more) and takes greater part in other conventions like Build.

However, I believe the real revolution is still a head of us. In the last couple of years the C++ Committee realized that it is unable to handle all the requested updated by its own. So it created a few sub-groups called SG (Study Group) with the purpose of handling domain-specific changes.

Structure of C++ Committee (https://isocpp.org/std/the-committee)

These study groups are now able to take a subject and more more quickly provide and TS (Technical Study) document that allows C++ to advance. One of the best ways it advances is by creating a more complete eco-system for programmers. Something that in my opinion was a missing key factor from C++, especially for new developers.

Allow me to explain.

Lets say you need to make a small utility. This utility will need to do some file actions, some networking, calculations, nothing much.
You consider which language should you write this utility in. You can choose C++, but you know you will have to write everything from scratch or access your OS API.
So you choose a language which already has everything in it, like Python, C# or any of the other scripting languages. You choose the language which is quicker to develop in, because this is not a rocket-science application. And it need to be ready yesterday.

And this missing eco-system is exactly what the TS will fix. The FileSystem TS (ISO TS 18822) was already approved by the committee and is highly based on the Boost implementation.
It contains exactly what you'll need to work with file system:  copy file, create directory, get file size, etc'
Everything from the comfort of your code. Quick, easy, portable.

The Networking SG should bring similar capabilities for... well, networking. And there is exciting work for the rest of the SG items as well.

Having all these modules at the tip of your fingers will make C++ a lot more appealing, and together with the general direction of making C++ projects quicker to code and easier to maintain, even "pythonic" as I read here I'm thinking that C++ will become adopted a lot more by new projects and developers than it is today.

The general time line is as appears below, however it flexible and since this is based mostly on volunteer work prone to change. You can read more about it at https://isocpp.org/std/status
Timeline for TS release

If you want to know more about the different roles of the different subgroups and what is expected from each you can view Alisdair Meredith's talk at CppCon2014 What the Committee Did Next!

No comments:

Post a Comment