📜 ⬆️ ⬇️

Top 10 reports of the C ++ Russia 2018 conference: full videos, slides, comments

In this article, you will find the ten best reports from Andrei Alexandrescu, David Vandervourd, John Kalb and many others.


C ++ compiler features, asynchrony, multithreading, parallelism, memory model, algorithms and STL, metaprogramming and reflection, a huge variety of topics.



All this - the records from the conference C ++ Russia, the largest in history. Eight hundred participants, a rather big hall, world-famous speakers. A year has passed, but most reports have not lost their relevance. However, it is not surprising - it is such reports that get into the top according to the participants.


The format is:



Plus you have Habr's comments to discuss what you see. Advertising on YouTube is disabled, no one will interfere. There is everything to start looking right now.


10. Memory Management Tips & Tricks


Alexey Salmin



In 2017, the issue of choosing an allocator in C ++ does not lose its relevance. A new method has been added to the standard to select a local allocator for containers ( std::pmr ), global tcmalloc and jemalloc continue to evolve, as do the kernel interfaces on which they rely. This report is devoted to the “lower floor” of the structure: the features of mmap and madvise in the Linux kernel and the influence of these features on the performance of the allocators.


About speaker


Alexey Salmin graduated from the MMF of the NSU, was engaged in symbolic calculations and static analysis, worked at Intel in Novosibirsk. Since 2016 she has been working in the Moscow office of Yandex, developing the backend of realtime search.




9. Best Practices for Concurrency in Modern C ++


Rainer grimm



Slides


Standardizing C ++ 11 gave us a memory model and multithreading. The library has such standard things like atomics, threads, tasks, locks, condition variables. The memory model guarantees multi-threaded use of these basic blocks.


Seven years have passed, practices of safe use of multithreading and a memory model have appeared. In this report, we will learn in detail about these practices: general rules of multithreading and special rules for both library primitives and the memory model. The issues addressed cover topics broader than just the C ++ language.


About speaker


Rainer Grimm worked as an architect, team leader and instructor for over 20 years. In his free time, he enjoys writing articles about C ++, Python, and Haskell, and speaking at conferences. He maintains the blog "Modern C ++". Now he is a speaker on the topics of modern C ++ and Python. O'Reilly and Leanpub publish several of his books: “C ++ 11 für Programmierer”, “C ++”, “C ++ - Standardbiliothek”, “The C ++ Standard Library”.




8. 2020: A void_t odyssey


Ivan Čukić



Slides


In C ++, there has always been a powerful subset of the language for metaprogramming, allowing developers to perform magic tricks like static introspection to ensure polymorphic execution without inheritance. The problem is that the syntax is very perverted and overly verbose - all this makes metaprogramming a rather daunting task.


Recent improvements in the standard, combined with new features of C ++ 20, make metaprogramming more simple, and the metaprograms themselves are more readable and understandable.


In this report, we look at modern metaprogramming techniques, focusing on the void_t magic metafunction.


By the way, in C ++ Russia 2019 in Moscow, Ivan will give a talk on “Move-only C ++ design” , and also conduct a training session on “Applied functional programming in C ++” : is STL far from functional programming, what are functional objects, std :: invoke and monads , monads, monads. And some more monads. Ivan's training is not for the beginner level, it will suit the middle ones who want to open wide the doors of perception.


About speaker


Ivan works in the PhD Computer Science department of the Faculty of Mathematics at the University of Belgrade, specializing in the design of programming languages. A longtime contributor to KDE, working on Plasma and low-level frameworks to analyze and manage user actions. Maintainer KActivities, Contour and Lancelot.




7. Modern C ++ Parallelism from CPU to GPU


Simon brand



Slides


Parallel programming can be used to benefit from multi-core and heterogeneous architectures, significantly increasing software performance. Modern C ++ has come a long way in simplifying the process of parallel programming by introducing both high-level and low-level abstractions. C ++ 17 advanced even further and gave us new high-level parallel algorithms, and even more is expected from C ++ 20. In this report, we will take part in a review of existing utilities for organizing parallelism and look into the future, where GPUs and heterogeneous systems will receive support from new features of the standard library, look at new standards like SYCL.


About speaker


Simon is a GPGPU toolchain developer focusing on C ++. Unhealthily loves patterned metaprogramming and the darkest side of the language. You can easily find him in comments on StackOverflow, C ++ channel in Slack or at the meetings of the C ++ community of Edinburgh, where he is one of the organizers. He likes to discuss issues of formalism in language, khaki on patterns, beer, whiskey, experimental cinema and the work of Carly Rae Jepsen.




6. Memory is a perfect abstraction.


Fedor the Short



Slides


 int* ptr = new int; *ptr = 42; delete ptr; 

What actually happens when these 3 lines of code are executed? We will look inside the allocator of memory, operating system and modern hardware to give an exhaustive answer to this question.


About speaker


Fedor, a graduate of the Physics and Technology Institute, was engaged in High Frequency Trading on the Moscow Stock Exchange. Works in Yandex, develops a system for storing and processing YT data. She teaches C ++ in her first year of data analysis.




5. 105 STL Algorithms in Less Than an Hour


Jonathan boccara


Slides



We all know that it would be nice to know the STL algorithms. Using them in building architecture, you can make it more expressive and reliable. Sometimes - very significantly and effectively.


Have you come to understand your algorithms?


In this report you will see all 105 algorithms, including those added in 11 and 17 standards. But this is not just an enumeration - the essence of the report is to show the presence in these algorithms of the system, groups and patterns into which they are organized, and how they relate to each other.


This big picture is the best way to remember them all and to comprehend as a complete set of tools and ways to make the code more expressive and more reliable.


About speaker


Jonathan Boccara loves C ++, and especially the writing of clear, expressive code. In particular, this is why he maintains the “Fluent C ++” blog. He also works as a senior developer at Murex, where he rolls huge C ++ code bases designed for use in finance. They have an interesting practice in the company to give short reports every day in the “dailies” format, which he leads.




4. Asynchrony in programming


Ivan Puzyrevsky



In the development of high-load multi-threaded or distributed applications, one can increasingly hear conversations about asynchronous code, including speculation about the need (no need) to take into account asynchrony in the code, about clarity (incomprehensibility) of asynchronous code, about its effectiveness (inefficiency). In this report, we will try to dive deeper into the subject area: analyze what asynchrony is; when it arises; how does it affect the code we write and the programming language we use. We will try to figure out what the futures & promises are about, let's talk a little about the corutines and actors. Let's touch on JavaScript and operating systems. The purpose of the report is to make more obvious the trade-offs that arise with a particular approach to developing multi-threaded or distributed software.


About speaker


Ivan began working in Yandex in 2009 in the department of linguistic technologies in the Search. Now he is developing a system for distributed storage and data processing. A graduate of the Department of Mathematical Logic and Theory of Algorithms of the Faculty of Mechanics and Mathematics of Moscow State University. ShAD teacher.




3. C ++ Today: The Beast is Back


Jon kalb



Slides


This is a report, partly based on the book C ++ Today: The Beast is Back, published by O'Reilly. In this report, we will speculate a little about why engineers who want to write productive code choose C ++. John will present a historical perspective on focusing on C ++, tell you how the C ++ community lives right now and where the language and its audience are going. Recently, everyone has become interested in effective code, from mobile phone manufacturers to large data centers, so C ++ with its open source libraries has again become a hot topic. This report clearly explains why most engineers choose C ++ for all of this. There is a general sketch of C ++ in the scale of the story with explanations of the points of growth and falling popularity.


About speaker


John has been working on C ++ for over 20 years. During this time, he managed to participate in C ++ projects of the companies Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, Yahoo! and in a couple of companies that no one has heard of anyway. He is the chairman of the Boost Steering Committee, and he also runs the C ++ track program at Silicon Valley Code Camp and is one of the managers of C ++ Now (aka BoostCon). In 2014, he received Microsoft Most Valuable Professional.




2. Reflective Metaprogramming in C ++


Daveed Vandevoorde



Slides


Once, the C ++ Standardization Committee organized a subgroup “SG-7”, which is studying the possibilities of implementing reflexion. Recently, this group also took up metaprogramming and made several important decisions about what the possible solution would look like. In this report we will look into the past that brought us to such a life, and we will discuss the possibilities of native support of “reflective metaprogramming” in the C ++ language.


About speaker


David is a Belgian scientist living next to Princeton in the United States. He is vice president of engineering at the Edison Design Group, where he contributes mainly to their own front end for the C ++ compiler. He actively participates in the C ++ Standardization Committee, where he is engaged in the evolution of the core language.




1. Unexpected expected


Andrei Alexandrescu



Writing error-resistant code - pain, pain in any language. Exceptions are a politically correct way to signal errors in C ++, but many applications have to use return codes for reasons related to ease of understanding, ease of local processing, efficiency of the generated code, and so on.


In this report, we will look at how theory and practice can be combined to solve problems with error handling. The Expected type can be used both locally (in the style of return codes) and centrally (in the style of exceptions), combining the advantages of both approaches.


About speaker


Romanian developer Andrei Alexandrescu is an expert on a wide range of issues, including the architecture and implementation of software systems, programming language design, library architecture, all aspects of C ++ and D languages, machine learning and natural language analysis. His creative approach to solving problems, his wide knowledge and charisma make Andrei one of the most popular speakers in the world.


Books and articles by Andrew influenced the whole industry. He is the author of best-selling books such as Modern C ++ Design, C ++ Coding Standards (along with Herb Sutter), The D Programming Language, as well as articles like Simplify Your Exception-Safe Code - Forever (written together with Petru Marginean) and Mojo: Move of Joint Objects. Full list of his works can be found here .


The next C ++ Russia conference will be held April 19-20 in Moscow, that is, very soon. New program, new speakers, and a whole day of training . The program can be viewed on the official website , there you can buy tickets .

')

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


All Articles