📜 ⬆️ ⬇️

C ++ Russia 2019. A small report from the scene and the announcement of the next conference in St. Petersburg

The C ++ Russia Conference is by far the toughest and at the same time lamp conference lately. It took place in the Congress Park of the Ukraine Hotel in Moscow and gathered an audience of more than six hundred people.


As one of the afterparty comrades said: “I’m trying to learn C ++ from school, but constantly stumble upon something new.” Here, almost every report spoke about something new. Sometimes - about something completely brainwashing that will stay with you forever.


C ++ Russia has always been distinguished by the presence of special speakers and special reports, and this time was no exception. Let's look back at what happened during these two busy days.



Videos and photos


Many people go into such articles in order to ask two classic questions: “When will there be videotapes?” And “When will there be photos?”


Records of reports become available to all participants immediately after filling in the feedback form. In about a month, all videos will be overloaded via the same link, but in a better quality. The quality that is now is good, but it can be even better.


The opportunity to complete the feedback will close this Saturday at 23:59 . Need to have time!


But those who have not attended the conference will wait for the recording of reports much longer. Most likely, we will publish them closer to the date of the next C ++ Russia.


Photos of participants are already in VKontakte . The list of photos will also be updated, so it's best to subscribe to the whole group at once.


Domain


As we once expected, all the reports can be divided into categories:




Making up your way through the conference, everyone has to arrange a certain number of shredders and figure out what you want to participate in live, and what to see in the recordings.


There are several approaches to travel the program. In one you choose between interesting topics. In the other - you go to specific speakers familiar to you, who are guaranteed to tell interesting topics. Less often it happens that people go to listen to representatives of some specific companies.


I had a very simple strategy: choose themes about compilers, metaprogramming and games, and inside them we go to well-known speakers. It was easy to choose inside such a strategy.


For reviewers in the recording, the whole program not only remained on the site , but was also supplemented with slides. You can again go through the program, now choosing the reports on some other principle, and arrange yourself as a second conference.


Pluralism of opinions and BOF


It is clear that not everyone is interested in everything at the same time. Sometimes it is seen especially brightly. For example, at a BOF session on the topic “C ++ against all,” one of the participants suggested discussing C ++ Enterprise Edition, and part of the audience did not understand it immediately. On the contrary, it was very strange for me to hear dreams about how in other technologies (Golang, JS and Java, in which I understand something for a minute), everything is rosy - this is not quite so!



Interestingly, we arrive at the reports in the morning (obviously), but until the end we can only understand the position of the accomplices in the late afternoon.


By the way, about the BOF-sessions: they turned out to be especially good. For those who have suddenly forgotten, BOF is something like an evening round table, but without a table and speakers there are only moderators and participants. Despite the initially holivorno theme “C ++ against all”, we managed not only not to get into a fight with each other, but continued to communicate for a long time after the official completion. To be more precise, right up to the site closure, when the administration came for us and asked us to move the discussion to another place (some did, continuing in the next bar).


On the second BOF, I, of course, was not - but judging by the way the audience united, everything turned out well there too. Somehow, unorthodox or something, just look at this photo.



A reservation about speakers, sponsors and all the rest


The problem in writing about the conference was a lot of things. If you start listing all the speakers, all the sponsors, bring a photo of each cool thing on each of the stands - this post will never end. Everyone who is mentioned here got here by accident, and not on the basis of some fair principle.


Opening


As a leading online broadcast, I have never been able to watch the entire report, from beginning to end. However, this also made it possible to visit more than one report inside the slot, which is rather specific. The same is with everyone who makes you a holiday - for example, at the stand holders at the stands of companies.


But there are several moments when all participants meet at the same time, and there is no choice - keyout, opening and closing.


At the opening, I was pleased that both Sergey Platonov sermp and Andrey Dmitriev real_ales from the JUG.ru Group were on the same stage. Now the conference is in the hands of many people, and Sergey has taken upon himself in this process the proud and essential role of the program director. The king is alive, long live the king! :-)



Opening keyout


Another point that we all saw and about which you can speculate. It was conducted by Nicolai Josuttis - the author of the books The C ++ Standard Library and C ++ Templates.



For some, such books are perceived as a sacred text and knowledge given from above. Someone on the contrary skeptically suggests that the good old days, when books were written and there was no cppreference, were not so old, not so good, and their authors in 2019 should be treated with suspicion.


And here in front of us is Nikolay with a regular webcam about “modern C ++” - and it seems that this is one of the most intelligent reports on the topic. Probably, it somehow affects that he has been a member of the standardization committee for almost twenty years. During the year, we sometimes do text summaries and transcripts of reports for Habr, and it seems that this is the first candidate for detailed analysis.


Oleg Fathiyev, “The Evolution of Metaprogramming”


This is a report that left me with (pleasant?) Emptiness in the soul. The fact is that if I see some C ++ code, then usually this is something on C ++ 98 in the style of “C with classes”, and it is written, though extremely disgusting in appearance, but as simple and clumsy as possible. Oleg's report is not like that. In this report, Oleg addresses the question of how to write code to work with type lists, similar to Boost.Hana.



How far are you willing to go to write good code — good through metaprogramming? And what will happen to this code in the future, do the creators of the standard really think and care about your uses? So many questions.


Anton Dunchev, "Metaprogramming for the game engine"


I looked at this report simply because it is about the game engine and Wargaming. I think many developers went into programming precisely because they played games in childhood and wanted to do the same. And here we have a living developer of the client side of World of Tanks - that is, just the part where all the most interesting things are like geometry. This is another report on metaprogramming, this time about the reflection of native functions in Python and why Boost.Python is not needed.



In general, writing a program in several languages ​​at once is a very interesting theoretical and practical question, which can be viewed from completely different angles. Every time you realize more and more perverted methods that allow you to do more and more sophisticated things. For example, my last love is GraalVM, such a polyglot virtual machine that allows you to write in C ++ with inserts in Python or in Python with inserts in C ++, and it’s not surprising that I was stuck on this report with a liter of Moment glue.


The main question for the developer is not the end user software, but the library “why.” Why should users use what you came up with. In this case, Anton gives a good explanation: almost any game engine is built on the interpretation of game content and the reflection of internal structures in order to organize feedback for game objects and game logic, and we need Python, and here you can turn to full height!



Mikhail Matrosov, Alexander Voronkov, “How we upgraded the compiler and supported cross-platform”


The report’s competitors had reactivity and initialization. One comrade said that he had no choice in this slot - he had to go to reactivity. I just did not have a choice - you need to go to the compilers.


Remember the previous remark about the question "why?" For example, here you saw the coolest system of compatibility with upgrades of the tulchein, and then the authorities ask - why? Of course, that's why!



Justification of the value of the work for the management, the use of Conan (we found out at BOF that someone does not know about its existence at all!), Visual Studio upgrades and reproducibility, an update in C ++ 17 - a lot of life hacking on the path of implementing cool features .



And yet, in general, it is interesting - how two people can simultaneously make a good report. This is a very unpopular format, because it makes it extremely difficult for rapporteurs to prepare - protocol and synchronization costs. Great at.


Ivan Čukić, “Move-only C ++ design”



All my life I used KDE (except in rare cases when I had to skip Xfce over freeNX). I remember how Plasma fell, and then ceased. Sometimes in the long evenings you have a conversation with imaginary KDE developers, trying to do something non-standard. I do not complain about KDE, on the contrary - it took me so much energy precisely because I love him very much. And here comes a man who put even more energy into it than you . Basically, because he is not a user, but a developer of Plasma and Activities.



Oh yeah, about the report. This is another report from the category "you need to know everything", like Nicolai Josuttis. He changed his name at the last moment. Initially, there was just “Move-only C ++ design”, and it became “Move-only C ++ design - Part I”. This is because the topic in question is very large and continues to grow. Ivan stressed that it is bad to call the reports "Part I", because "Part II" usually never happens. But here it is obvious that the information is easily typed for a couple of parts. Ivan didn’t confine himself to describing language features (like concepts, etc. - well, you understand), but at some point he rolled up his sleeves, delved into performance issues, and the rest of the report was held in Godbol with assembly listings for half screen. The fifteen minutes after the report was spent on questions were completely spent. In general, it seems to be a very hot topic.


Alexander Granin, “Monadic Parsers”


In general, with functional programming somehow sad. Recently I thought what article to translate to Habr, read random blogs from Hackernews, wept. There is a group of actors who do not understand anything at all in the FP, but they are desperately trying to pretend that they understand, combining rare buzz words in a different order, in the hope that someone will buy it. They sometimes find themselves when they copy Wikipedia words in the wrong order. There is a group that, on the contrary, understands, but has already been burned by the previous experience of the attempts at explanation, and therefore is finished with common words and draws beautiful presentations. Separate one from the other difficult, especially when you do not understand. Both in form of presentation resembles a rare garbage, from which it is not clear whether the author can write at least a Todo-List with a web interface.


Against this background, Alexander's Monadic Parsers is a breath of air. First, the speaker can program in Haskell and does it professionally. Secondly, it is a slender story with clean, beautiful slides, filled with not code from the Internet, but code. Thirdly, everything is clear there, which is worth a lot.



The report considered monadic parsers: how does this approach differ from other types of parsing (combinatorial parsers Ă  la Boost :: Spirit, parser-generators, ad hoc solutions like parsing finite automata, etc.), what advantages and disadvantages does it have and in which such important concepts of functional programming as the functor, applicative functor and monad appear here. In general, everything you wanted (and did not want) to know about the topic is there.


Viktor Kirilov, "The hitchhiker's guide to faster builds"


When you come (or even look out of the corner of your eye) in C ++ after experiencing other technologies, it becomes a bit creepy because of the build speed. Once I wrote an article on Habr, as I debugged the Chromium browser, and my main problem was not the complexity of the task (the task is quite simple), but the fact that Chromium can be set up for hours. If you are used to JavaScript or Java, after changing a couple of letters in the code, immediately restart the tests - then for the Chromium code I have some unpleasant news, maybe you will see the results only in the morning. It hurts, it hurts so much.


In this report, Victor decided to alleviate our suffering by talking about the main ways to optimize the assembly. More precisely, surely all this is known to many experienced developers, but for a beginner - invaluable.



The report left an uneasy impression on the soul. Well, that is, at first you study a lot of ways to save on trifles, and then they explain to you that all this is not necessary, because soon there will be modules. But right now there are no modules, and you still need to use all these old tricks, and then you have to throw away all this work!


And also, modules (and cortices) are partially only available in Clang, and concepts only in GCC. And now what i can do? It hurts like it hurts. But after the report was a little better.


Discussion areas


A distinctive feature of JUG.ru Group conferences is the presence of mandatory discussion zones. The speaker does not run away from the unknown immediately after the report, but continues to communicate on a dedicated site. Unfortunately or fortunately, no one records the discussion in the discussion areas on video. Fortunately - because it is a way to discuss very sensitive things and finally admit that you don’t understand something :-)



Remaining reports


Reports were much more. Now I stopped somewhere in the middle of the second day. You can talk about them endlessly, so you should move this discussion to our future posts on Habré. Release decryption text, make a detailed analysis of theses and so on. Subscribe to the blog of the JUG.ru Group and wait for the news!


Conference participants (including those who watched the live broadcast) will be able to see all the reports in the recording. You should already have entries if you have completed feedback - check your email. All the rest will have to wait quite a decent time.


To complete the description of the reports, here is a photo of the irreplaceable Anton Polukhin from the closing keyout! Anton is very cool. There is, however, some fear that he is so often asked about the work on the Standard and Boost that he will someday just stop responding ... but for now we have a chance to learn everything that is needed!





Exhibition


In the center of the site was a large exhibition. Many companies came from all over Russia to arrange a real holiday for us. It was possible to drive table football, to take part in sweepstakes and so on. All that you can expect from the exhibition area of ​​the conference.



We came not only from Russia - for example, there was a stand of the CoreHard community from Belarus, who also make their conference in Minsk .



In the meantime, it was possible to buy a book in an improvised bookstore.



In addition, now we always have the so-called Demo Stage. This is a venue where either live reports are being broadcast, or video footage from the stage of one of the halls is broadcast.



At times there are all sorts of prizes. For example, Denis Kalanov told why sports tournaments have long been much more than “just corporate leisure” and summed up the two-day kicker tournament.



Aftepati and “What? Where? When?"


At the end of the first day, it was possible not only to go to the bofs, but also to participate in the sports session “What? Where? When? ”(Won, as you remember, friendship) and perfectly finish the day with fiery afterparty.




What's next? Next C ++ Russia 2019 Piter


As you might guess, after such a success, C ++ Russia cannot stop at what has been achieved. The next conference will be held this fall - from October 31 to November 1 in St. Petersburg. The venue is still being clarified - you need to find the most correct platform for so many people.


If you are ready to make your own report - then it's time to do it. You need to follow the link and carefully do everything written there.


Now several speakers are already known.


Firstly, it is Eric Niebler himself - a man who is now known to almost everyone thanks to his work in the Ranges development field in C ++ 20 and the ranges-v3 library. He is also a Senior Developer on Facebook, an active member of the standardization committee, the author of several libraries in Boost, and a member of the Boost Steering Committee. In fact, one of the most sought-after speakers at a C ++ conference.


The second well-known developer is Sean Parent, a principal scientist and an architect at Adobe, who has worked on Photoshop since 1993, and before that at Apple on switching to PowerPC. He also worked for a year at Google on ChromeOS, but went back to Adobe. Apple, Google, Adobe - at different times these companies called "dream companies", and he visited them all. You can also chat with him in the discussion area and ask some interesting and inconvenient questions (such as questions about the need to integrate the JavaScript engine into the C ++ Photoshop framework, or what else you would like to know from one of the best Adobe developers).


Of course, Anton Polukhin from Yandex.Taxi continues to be with us. Anton is the representative of Russia at ISO at international meetings of the C ++ Standardization Working Group. Author of several accepted proposals for the standard language C ++. Author Boost-libraries TypeIndex, DLL, Stacktrace and active maintainer Any, Conversion, LexicalCast, Variant. He is the author of Boost C ++ Application Development Cookbook and Boost C ++ Application Development Cookbook, Second Edition.


And finally, Alexander Bychuk from Kaspersky Lab. Since 2007, Alexander has been developing middleware and electronic document management systems. All this was written in C and C ++, so C ++ Enterprise Edition for Alexander is not an invention, but a daily work. One of the important components of any corporate system is transport, to be more precise - message brokers, Alexander will tell about them. He will talk about the current situation in the world of MQ-Brokers and, of course, about his own broker and the peculiarities of his writing.


We will continue to publish details about St. Petersburg C ++ Russia 2019 on Habré, but you can also read the information on the official website yourself.


Attention buy tickets! As usual, at the start of sales you can buy them at a special early price (the so-called Early Bird tickets). For the autumn conference, the duration of this special discount extended until the first of June . Have a nice May holidays and see you on the next C ++ Russia 2019 in St. Petersburg!

')

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


All Articles