Islands of C++

published at 23.09.2012 15:08 by Jens Weller
Save to Instapaper Pocket

One thing, I wanted to write about for sometime, is how different the views on C++ are within the C++ community. That even as we have a single standard, still there are parallel worlds using the language very differently. But instead of worlds, I'd like to refer to the term Islands, as we all live in same ocean of C++.

But still, most of the islands are quite unique, and most natives speak their own little (weird?) version of C++. I noticed this, as I was attending a conference this spring in bavaria as a speaker. Most people visiting the conference were writing C++ under Windows with Microsoft tools such as Visual Studio and MFC/ATL etc. It was a little strange to me, that for some of these people for example the word C++ compiler simlpy meant Visual Studio. Talking about C++11, for some of them it was kind of strange, that things existed, which aren't supported by VS for some time, like variadic templates. Talking about C++11 was more about what Visual Studio defined as its for now supported part of the standard, people didn't know a lot about other, not yet supported C++11 features.

A few days later, I visited C++Now. Things changed a bit, as ofcourse people knew about the standard, C++11 was again a big topic, with all kind of different views. After a few days I thought about my days in bavaria, and realised, I was now at a different island: the standard island with its well known boost peninsula. People on this island believe, that their own C++ style is the right one, and with the standard on its back, its hard to argue against it. I enjoyed the days in Aspen, talking to so many great people about C++11 and/or boost. But it also got me thinking, what other islands are out there?

For example there is a huge Qt community, which also was known in Aspen about, also there is wxWidgets, which f.e. offered for a few years the strange advise not to use templates. In each of those islands, or communities, C++ is used in a different way, some (over)use Macros, only a few have actually started to use namespaces, some exist around a toolset and have their own environment for writing code. Such as the archipel of Microsoft C++, but also the Qt community has started their own IDE QtCreator (which is great btw ;)). Also there is a vast "Numbercrunching" scientific community, which has a completly different view on some areas of C++, as they operate on small containers with "just 2 billion items".

With C++11, we have the chance, to connect those parallel islandworlds a bit more, to give them smartpointers without using boost, to guide them to a more uniform, better and standardisized C++. Our keynote "Good C++11 coding style" might be able, to set the right hints for this. With C++11 the C++ community is going to grow, and we might see new islands emerge, especially in regions yet not covered by the standard. For example parallelisation is such a thing, getting code to run on graphiccards requires special libraries or language extensions such as C++ AMP.

Also, for some people its hard to meet someone from another island. They simply can't travel to conferences, and even if, they might go to one, where most people are from the same island too. So, to me, local C++ communities are an important key to reach more people for C++. We've started last year in Düsseldorf, also other user groups just got started, for example in Belgium this year, and soon in Berlin. Its a way to meet many interesting people, and to exchange opinions about C++ on a local base. The world of C++ got much more exciting with C++11, and there are still other new things on the horizon such as Qt5 or WinRT. Also Clang will change the way C++ Programmers are thinking about their language, as tools for refactoring and analysis will be so much more powerful through the Clang APIs. So, maybe you should try to visit an island of C++, you have not yet seen...

If you like to support our conference, please follow us on Twitter or like us on Facebook!

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