📜 ⬆️ ⬇️

CppCon 2014 conference reports

Recently, in the city of Bellevue (Washington), one of the largest conferences of C ++ developers took place - CppCon 2014 . For five days, leading programmers of such companies as Microsoft, Google, Dropbox, Citrix, Embarcadero, Ubisoft, developers of the language standard, creators of C ++ compilers, and members of the opensource-products presented their reports, shared their views on the future of the language, suggested new ideas. Below I will present a sample of the videos I liked most with some comments from myself. I would like to note that the entire conference is simply imbued with the revival of C ++ in view of the proliferation of C ++ standards 11 \ 14, people tell why C ++ choice was right for them, how they successfully migrated from C # \ Java \ Objective-C to C ++ and did not regret it, etc.

Happy viewing!

Speakers from Dropbox talk about how they develop cross-platform mobile apps in C ++.
Dropbox once had classic mobile apps: Java code for Android and Objetive-C for iOs. However, over time, the development team got tired of writing the same thing 2 times in different languages ​​and they came to the conclusion that it was necessary to create a common code base in C ++. Over time, it turned out that no matter what architecture the application had (MVC, MVVM, or anything else), virtually all code except views can be rendered in C ++. Indeed, in C ++ you can implement a data model, controllers, business logic, auxiliary libraries for working with the network, databases, parsing, etc. All that remains for Java and Objective-C is to draw the buttons \ lists \ links on views for this platform. And this approach is much more pragmatic than writing everything twice.
')
The first video is more overview, the second is more practical:





Edouard Alligand talks about how their team began developing a large multi-platform product in C ++ 11 in the 2008th year (not a typo!), Focusing on exactly what advantages and disadvantages gave them multiplatform.
The general idea of ​​the report is that supporting multiple platforms may not be so difficult if you use the right tools. Moreover, the requirement to compile with different compilers and work under different operating systems (from Linux and FreeBSD to iOs and Windows) makes the developer more disciplined, makes him understand that “undefined behavior” can be differently undefined on different platforms and therefore you should avoid sharp corners. The speaker recommends that all developers immediately write C ++ code taking into account the fact that it can be compiled for different platforms, use proven multiplatform libraries (for example, Boost), choose CMake as the build system, etc.



Rachel Cheng and Michael VanLoon talk about the Boost library - its impact on new C ++ standards, about the “bridge” to new features for people stuck on older compilers due to circumstances. The first half of the report is devoted to smart pointers and RAII in C ++ 11 and Boost - a good opportunity to understand the topic for those who are not yet in the know. The second part goes over some of the features of Boost - working with enumerations, container initialization, regular expressions, streams, and the network. It turned out so-so a slightly idealized ode to the Boost library, but the library is really excellent, so why not.



Microsoft's Gor Nishanov talks about the evolution of the coroutine concept in C ++, the renewable functions in the future C ++ standard 17, and how Microsoft is going to implement all this in its C ++ compiler. The conversation is about how coroutines differ from threads, how they save system resources, how it all fits into C ++, how coroutines will communicate with external code, and external code - with them.



Jeff Preshing from Ubisoft the first 5 minutes of the presentation plays the role of Captain Obviousness, telling how over the past 10 years the processors of computers and consoles have become multi-core, but further the presentation goes more vigorously and tells how Ubisoft uses multi-core and multi-threading in its game engines games like Watch Dogs, Far Cry and Assassin's Creed. Jeff talks about what components the game engine consists of, how these components can work in parallel, exchange messages, share the same data from different streams and how it all looks in C ++.



The astrophysicist Vincent Reverdy from the Paris Observatory in the first half of the report is trying to explain in 15 minutes how the Universe is arranged :) Well, or rather, how scientists try to simulate this Universe on supercomputers with the highest possible degree of confidence. He says that most of the scientific software is still written in Fortran and it is sometimes difficult to use the advantages of modern architectures and compilers. Further it is said about which C ++ features can be useful when writing scientific programs. In general, I would not say that the report is useful in terms of obtaining knowledge of C ++, but it gives a good understanding of what is being done in modern science programming.



Lenny Maiorani from the company F5 Networks recalls that our theoretical understanding of the speed and memory consumption of different types of containers may differ significantly from reality and for maximum performance you need to use tests.



Alisdair Meredith from the C ++ Standardization Committee talks about the C ++ 14 standard, focusing on how the standard was reviewed and adopted, why certain decisions were made, why it was included and not included in the standard. From the report in the first 10 minutes, it blows a little bureaucracy, but then it becomes more interesting.



As you know, all programmers are divided into those who understand what Unicode is and those who , Unicode. It is for the second type of programmers James McNellis (the lead developer on the Microsoft Visual C ++ team) talks about encodings, Unicode, and how it all works in C ++ in general and in Visual C ++ from Microsoft in particular. Ironically, of course, that the importance of universal encodings is told by the developer from Microsoft, known in the recent past for its passion for bicycle construction in this area, but as they say, better late than never.



Another report from the developer from Ubisoft about how they have to write in C ++. Some things are striking in their radicalism (for example, no RTTI, no STL containers, no Boost, use of Visual Studio, but rejection of MSBuild, its own implementation of virtual functions), but after a little thinking, it becomes clear that the biggest game studio in the world, A successful AAA game probably understands what it does.



Embarcadero's John "JT" Thomas talks about how using CLANG and LLVM made their product better. Honestly, the whole report did not leave me a certain sense of misunderstanding about what it was all about: no one seemed to doubt the quality of CLANG and LLVM, but what the advantage of Embarcadero products on their base was so clear and did not become. I remember that Delphi and C ++ Builder were popular products about 10 years ago, perhaps in some part of the programming universe they still rule, but personally I am somehow very far from them.



Boris Kolpakov from Code Synthesis reflected on how cool it would be to have a package manager for C ++. It is impossible not to agree - it would be cool, but the report did not contain a story about an attempt to create it, nor an analysis of foreign projects from this area. In general, the presentation in the style of “let's make NuGet for C ++ and add all C ++ libraries to it” without any practical advice and conclusions.



Roland Bock from PPRO Financial Ltd spoke about his ideas about C ++ syntax extension (parameterization of class field names, standard tuple type extensions, CRTP , mixins).



This is not a technical report from Jens Weller on various C ++ developer conferences. A person visits them about a dozen a year and organizes one himself, so he understands the topic. If you choose where to go - you can listen.



Nate Kohl - the creator of cppreference.com (one of the most popular sites with C ++ documentation) tells the story of the creation of this site, filling it with content, creating a user community and plans for this site for the future.



James McNellis and Kate Gregory from Microsoft talk about beautiful and ugly C ++ code. Basically they say quite well-known things about macros, comments, type conversion, code decomposition, and bicycle building, but in principle it can be useful to look and remind yourself that C ++ code can really be simple and elegant.



Frankly speaking, I didn’t listen so much to Stefanus DuToit's report from Thalmic Labs, but I watched him conduct a presentation with his company Myo bracelet , which reads electrical impulses from arm muscles for gesture recognition. Honestly, it looks a bit strange. On the one hand, the bracelet really recognizes gestures of the “paging” type to control the presentation, on the other hand, the speaker has to try to keep his hand still for 90% of the time to avoid false triggering. As a result, the arm with the bracelet looks like a prosthesis attached to the shoulder, the naturalness of the movements is essentially lost. Sorry for leaving the topic of the report to the impressions of the bracelet, but in this report it seemed to me more interesting than the report.



Other reports can be viewed on the official conference channel: www.youtube.com/user/CppCon

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


All Articles