CppCon 2014 Conference Papers

  • Tutorial
Recently, one of the largest conferences of C ++ developers, CppCon 2014, was held in the city of Bellevue (Washington) . For five days, leading programmers from companies such as Microsoft, Google, Dropbox, Citrix, Embarcadero, Ubisoft, language standard developers, creators of C ++ compilers and members of the open source community presented their reports, shared their opinions on the future of the language, and offered new ideas. Below I will present a selection of the videos I liked the most with a few comments from myself. I would like to note that the whole conference is simply saturated with the spirit of C ++ revival in view of the spread of C ++ 11 \ 14 standards, people tell why the choice of C ++ turned out to be right for them, how they successfully migrated from C # \ Java \ Objective-C to C ++ and did not regret it, etc.

Have a nice view!

Speakers from Dropbox talk about how they develop cross-platform mobile applications in C ++.
Dropbox used to have classic mobile apps: Java code for Android and Objetive-C for iOs. However, over time, the development team was 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 has (MVC, MVVM, or something else), in fact, all the code except the view can be rendered in C ++. Indeed, in C ++ you can implement a data model, controllers, business logic, auxiliary libraries for working with a network, databases, parsing, etc. All that remains for Java and Objective-C is to draw the buttons \ lists \ labels on the views that are native to the platform. And this approach is significantly 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 2008 (not a typo!), Focusing on exactly what the pros and cons of multi-platform gave them.
The general idea of ​​the report is that support for multiple platforms may not be so difficult if you use the right tools. Moreover, the requirement to be compiled by different compilers and work under different OSs (from Linux and FreeBSD to iOs and Windows) makes the developer more disciplined, makes him understand that "indefinite behavior" can be differently indefinite on different platforms and therefore you need to avoid sharp corners. The speaker recommends that all developers write code in C ++ immediately, taking into account the fact that it can be compiled for different platforms, use proven multi-platform libraries (for example, Boost), choose CMake as a build system, etc.

Rachel Cheng and Michael VanLoon talk about the Boost library - its impact on the new C ++ standards, about the "bridge" to new features for people who are stuck due to circumstances on old compilers. 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 up to date. The second part goes over some of the features of Boost - working with enumerations, container initialization, regular expressions, streams, and a network. The result was such-and-such a somewhat idealized ode to the Boost library, but the library is really excellent, so why not.

Gor Nishanov from Microsoft talks about the evolution of the concept of coroutine in C ++, renewable functions in the future C ++ 17 standard, and how Microsoft is going to implement all this in its C ++ compiler. We are talking 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.

The first 5 minutes of the presentation, Jeff Preshing from Ubisoft plays the role of Captain Evidence, talking about how the processors of computers and consoles became multi-core over the past 10 years, but then the presentation goes more energetically and talks about how Ubisoft uses multi-core and multi-threading in its game engines in 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 tries to explain in 15 minutes how the Universe works :) Well, or rather, how scientists are trying to simulate this Universe on supercomputers with the highest possible degree of reliability. He says that most scientific software is still written in Fortran and it is sometimes difficult to take advantage of modern architectures and compilers. The following is a discussion of which features of C ++ can be useful when writing scientific programs. In general, I would not say that the report is useful in terms of gaining knowledge of C ++, but it gives a good understanding of what and how is being done in modern programming in the field of science.

Lenny Maiorani from F5 Networks reminds us that our theoretical ideas about the speed and memory consumption of different types of containers can differ significantly from reality and you need to use tests to get maximum performance.

Alisdair Meredith of the C ++ Standardization Committee talks about the C ++ 14 standard, focusing on how the standard was reviewed and adopted, why decisions were made, what was included in the standard, and why. From the report, in the first 10 minutes the bureaucracy breathes a little, 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 programmer that James McNellis (the leading developer from the Microsoft Visual C ++ team) talks about encodings, Unicode, and how it all works in C ++ in general and in Microsoft's Visual C ++ in particular. It is ironic, of course, that the developer from Microsoft, known in the recent past for her passion for bicycle building in this area, talks about the importance of universal encodings, but as they say, it's better late than never.

Another report from the developer from Ubisoft on how they are customary to write in C ++. Some things are striking in their radicalism (for example, no RTTI, no STL containers, no Boost, the use of Visual Studio, but the rejection of MSBuild, its own implementation of virtual functions), but after a little thought, it becomes clear that the largest game studio in the world, successfully producing AAA games, probably understands what she is doing.

John "JT" Thomas from Embarcadero talks about how using CLANG and LLVM made their product better. Honestly, the whole report did not leave me with a certain sense of incomprehension about what I was talking about: as CLANG and LLVM, no one seemed to doubt it, but what the advantage of Embarcadero products based on them did not become clear. I remember that Delphi and C ++ Builder were popular products about 10 years ago, maybe in some part of the programming world they still steer, but I personally 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 ++. One cannot but agree - it would be cool, but the report did not contain a story about an attempt to create it, or an analysis of other people's projects from this area. In general, a presentation in the style of “let's make NuGet for C ++ and add all-all C ++ libraries to it” without any practical advice and conclusions.

Roland Bock from PPRO Financial Ltd talked about his ideas about expanding the C ++ syntax (parameterizing class field names, expanding the standard type tuple, CRTP , mixins).

A completely non-technical report by Jens Weller about various conferences of C ++ developers. A person visits them about a dozen a year and organizes one himself, so that 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) talks about the history of this site, filling it with content, creating a user community and its plans for the future.

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

To be honest, I didn’t listen to Stefanus DuToit from Thalmic Labs as much as I watched how he gave a presentation with his firm Myo bracelet , which reads electrical impulses from the muscles of the hand for gesture recognition. Honestly, it looks a little strange. On the one hand, the bracelet really recognizes gestures such as “paging” to control the presentation, on the other hand, the presenter has 90% of the time trying to keep his hand motionless to avoid false triggering. As a result, the hand with the bracelet looks like a prosthesis attached to the shoulder, the naturalness of the movements is significantly lost. Sorry for avoiding 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 channel of the conference: www.youtube.com/user/CppCon

Also popular now: