Overview of the C ++ Russia 2019 program. What is the coming day for us?

    The modern world of C ++ is very different from what we were used to during C ++ 98. Someone admires this, someone annoys it, but the fact remains. Here are some topics that excite the minds of developers today:

    • Modern and new features of the C ++ language
    • Functional programming
    • Metaprogramming
    • Multithreading, concurrency, asynchrony and all-all-all
    • How to live with existing tools

    In less than a month, there will be a conference that tries to answer these questions: C ++ Russia 2019. Let's take a quick look at how it works out.

    Modern and new features of the C ++ language

    Here we were very lucky in several directions at once. Firstly, C ++ is actively improving, the set of important and useful tools continues to grow. Not all languages ​​are so lucky - for example, in the recently released Java 12 there was not a single production ready feature of the language or a major change in the libraries.

    On the other hand, does everyone have a clear picture of the general picture of all the improvements in C ++? Are you sure that you are using your tools correctly, and this will not go around in the future?

    And then it turns out that at our conference both keynotes (opening and closing reports) are from people who have been participating in the committee for years. They have such a job - to keep in mind a picture of everything. In addition to excellent reports, you can also talk to them in the discussion area.

    The first is Anton Polukhin with a story about areas where C ++ is considered indispensable , and additional things that would be nice to have in C ++. With him we recently published an interview on Habré . In general, the topic of participation of Russians in the committee has already been widely discussed both on Habré and everywhere (look, Yandex even wrote a post about this in VK ). You can go to stdcpp.ru and see a list of representatives, now it is: Anton Polukhin, Anton Bikineev and Alexander Fokin.

    The second member is Nicolai Josuttis. He is the author of the very books The C ++ Standard Library and C ++ Templates and member of the standardization committee for almost twenty years. His report will probably be one of the most topical on the topic of “future and modern”: “C ++ 17 - the biggest traps” is intended to talk about the problems behind architecture,who's guilty and what to do.

    Functional programming

    The next topic from which part of the community is burning is FP. On Habré this topic is represented quite widely.

    Not everyone in the community believes the game is worth the candle. Bonfires have not yet been burned about the debugging performance of the Ranges and the article by Aras Prankevichius . Many are still wondering what monads are, why they are needed and require articles with vivid pictures . Someone is already sharpening a dagger and grumbling "turned my wonderful C ++ into some kind of Haskell."

    One of the most important problems with AF is that there are not many specialists on it. Everyone loves to study it, but to really apply it, there are problems with this. There is complete unsuitability when a person sincerely believes that he understands AF, but cannot write Hello World with it. There are all sorts of extremes when a person who is familiar with the presence of lambdas immediately considers himself the king of functional programming. Or vice versa - before writing the Halloworld, he is removed to the cave by memorizing “Categories for the Working Mathematician” and all the books and manuals of Okasaki from the beginning of time.

    Please do not follow the links to read these books. First you need to read this post and go to the conference.

    So, the industry needs someone versed in C ++ in PHP, and we have them. At first, you can get acquainted with a good habrointerview with Ivan Chukich and Alexander Granin. And yes, both will be in C ++ Russia.

    Alexander will talk about monadic parsers . Ivan will talk about “Move-only C ++ design” and hold one of three large trainings - “Applied functional programming in C ++” .

    And there’s “Higher-order functions and function_ref” by Vittorio Romeo from Bloomberg and “Postmodern immutable data structures” by Juan Pedro Bolívar Puente. What is postmodern? But come and find out.


    Metaprogramming and FP go hand in hand, but the situation is just the opposite. If in FP we are studying how to apply this in practice, then in meta-programming a huge amount of practical information has been generated that needs to be systematized, realized and hone our skills in relation to our own tasks.

    C ++ Russia has a whole large block dedicated to this topic:

    Each report is interesting in one way or another, and if you start to disclose it, then there will not be enough hubrast. For example, the last report is game engines: gamedev has its own requirements for the entire development stack, from tools to STL performance, and here you come across a live developer of the Encore engine for the game World of Tanks, which will tell you about Boost.Python, parameter reflection materials for 3D models and other specific things. In general, you should carefully read the descriptions and understand where you want to go.

    Multithreading, concurrency, asynchrony and all-all-all

    Despite the fact that there is no dedicated block for ten reports, these topics are covered in one way or another in all other reports. For example, speaking about FP, it is always interesting - how much FP helps or complicates writing multithreading.

    And although the execution model sets a separate coordinate for the depth of all other reports, there will be a couple of specialized things: “Concurrency and parallelism in C ++ 17 and C ++ 20/23” from probably the well-known Grimm Reiner, and “Asynchronous C ++ Development” .

    Why exactly asynchronism? Recently, the world has made great progress in this direction, built-in tools for working with asynchrony appear in all languages ​​from the TIOBE top, and C ++ was no exception, for example TS C ++ Extensions for Concurrency . How to separate the grain from the chaff when some evangelists of asynchrony try to sell us asynchrony as self-worth? At conferences on JavaScript and Java, “asynchronous” reports sometimes occupy a third of the program . It’s nice to have at least one good report on the topic, which is what Pavel Novikov from Align Technologies will do .

    How to live with existing tools

    The remaining reports in the program are not included in the above categories, but in themselves are small pearls. For example, the DevOps theme is now no less hot than the asynchronism described above. As you should know, “devops” is not a person or a profession, but a culture. And this culture is built on tools, with some of which we still have real pain. Despite the fact that C ++ itself is fast and lightning-fast, its assembly is slow as a turtle, and the classic tools that the DevOps culture should rely on are complex and often unreliable. This includes such things as distributed assembly tools, linking methods, unfortunate modules. Viktor Kirilov will make a presentation “The hitchhiker's guide to faster builds” and perhaps help a little to deal with this pain.

    Some kind of such a review turned out. What did I forget? Smart pointers? Yes, and we have them, as many as two reports ( one , two ). What not in C ++ Russia.


    If regular presentations are not enough, we have full-scale trainings. Each of them will last many hours, touch upon one specific topic, and therefore they cannot be held simultaneously with reports. They will take place one day before the main program, that is, April 18th.

    Descriptions are on the links. If you came from the main page of trainings - click on the “Details” buttons - this is where the ticket is selected, and it says what needs to be installed on your laptop.

    Next steps

    The report grid is not yet final. Still, another month remained (the conference will be held as expected, April 19-20). If you are a participant, that is, a request - check the mail, we sent you a survey. There it should be noted reports that I want to go to. This survey is quite interactive, the answers will affect the distribution of reports in the halls.

    I remind you that on the official website you can familiarize yourself with the full program of the conference to figure out what and in what order you would like to go.

    You can buy tickets there . Please note that there are several types of tickets, and by choosing the type that suits you, you can seriously save. If you cannot be at the conference live, that is, the opportunity to participate online - there is a separate category of tickets for this.

    Also popular now: