
¿Qué tienen en común estas personas, además del hecho de que todas son conocidas en el mundo C ++?
- Sean padre
- Eric Niebler
- Marshalllow
- Bryce adelstein lelbach
- Anton Polukhin
- Andrey Davydov
Respuesta: todos ellos vendrán a C ++ Rusia. Ahora que terminó el verano y todos volvieron de sus vacaciones, es hora de esperar la próxima gran conferencia de C ++ : C ++ Russia 2019 Piter . Será abordado no solo por personas de esta lista, sino también por muchos otros oradores internacionales. 30 informes, 2 días completos de 10 a.m. a 7 p.m., sin historias introductorias y documentación de lectura sobre sílabas, inmediatamente sólido.
Resultó ser una de las conferencias nuestras más rápidas y cualitativamente organizadas, la mitad del programa se dio a conocer en el verano: los oradores saben claramente qué quieren decir en C ++ Rusia. Ahora el programa casi se ha estabilizado, y es hora de abrir el velo del secreto.
Dividimos todos los informes en "categorías de planificación", que luego llenamos con temas interesantes. Aquí están:
- Capacidades de nuevos estándares
- Práctico C ++
- La infraestructura
- Multithreading
- Metaprogramación
- Programación funcional
Las categorías se presentan en orden decreciente según el número de informes: comenzando desde nueve informes sobre nuevas características estándar y terminando con el único informe sobre funcionalismo en este momento: "Etiquetado de tipo en tiempo de compilación" por Ivan Chukich. Todavía hay algunos puntos blancos en el programa que se llenarán literalmente en las próximas dos semanas. Veamos qué sucedió como resultado.
Cabezas de cartel
Todos los oradores son figuras conocidas en la comunidad; escribir sobre ellos podría ser interminable. Hablemos en detalle al menos sobre los que enumeramos antes del kat.
Sean Parent es uno de los principales investigadores y arquitectos de la división móvil de Adobe. Ha desarrollado una brillante carrera en empresas de fama mundial. En el período 1988-1993, ayudó a Apple a escribir sus famosos sistemas operativos para PowerPC, desde 1993 comenzó a desarrollar Photoshop, pasó 2009 en Google, desarrolló ChromeOS y regresó a Adobe. ¿Qué nos puede decir una persona con una historia tan rica? Ahora mismo puedes encontrar en YouTube muchos videos con su participación, por ejemplo, una serie de informes Better Code , que habla por sí mismo. Esta no es la primera vez que hemos estado en C ++ Rusia: en los albores de la historia de la conferencia, en 2015, fue él quien hizo el primer informe de apertura , y en 2017 hicimos una entrevista de media hora con él. Todo lo que Sean Parent dice es diferente en profundidad y elaboración, no es material de "mirar y olvidar", sino algo que vale la pena recordar y volver una y otra vez.
Ahora nos vuela con un nuevo informe de la serie BetterCode: Relationships , y definitivamente no quiere perderse esto. Es por eso que el informe fue elegido por la conferencia magistral: todos los participantes podrán verlo antes de dispersarse en salas separadas.
La segunda nota clave está dirigida por Eric Niebler . Aquí sería para terminar la historia, porque recientemente su nombre ha sido más que conocido públicamente gracias a Standard Ranges , y los nibloides que se han convertido en el término (ver marcado en CppReference ) llevan su nombre. Pero, en términos generales, todo esto es solo exageración, e hizo mucho por C ++.
Eric es un miembro activo del Comité de Normalización de C ++, un desarrollador senior en Facebook, y fue en este momento cuando comenzó a participar en el rango. En tiempos anteriores a Facebook, fue consultor, trabajando tanto individualmente como con BoostPro Computing . En el impulso, no solo escribió varias de sus bibliotecas y desempeñó el papel de un administrador de versiones, sino que también se convirtió en miembro del Comité Directivo de Boost, que (según el nombre) se ocupa de cuestiones de desarrollo estratégico. La moda de Eric está escribiendo código poderoso y al mismo tiempo elegante, desarrollando hermosas abstracciones (que, en general, puedes ver en rangos ... o no, dependiendo de las preferencias). Igualmente importante, puede transmitir pensamientos no solo con código, sino también en forma de informes inteligibles inteligibles.
Eric llega con la charla "Una abstracción unificadora para asíncrono en C ++" . Brevemente sobre el problema: la asincronía en C ++ ahora está en la parte inferior, debe repararse. Herramientas estándar como promesas, futuros, subprocesos, bloqueos, incluso std::async
: todas funcionan de manera ineficiente, o simplemente rotas, o ambas al mismo tiempo. Horror Peor aún, no hay una forma estándar de saber exactamente dónde se debe hacer el trabajo. Sin embargo, tenemos un montón de tareas específicas de C ++ que lo necesitan: algoritmos paralelos, computación heterogénea, red y E / S, flujos reactivos ... todas las tecnologías centrales críticas que han estado esperando una abstracción estándar durante años para reflejar la idea de la computación asincrónica. En este informe, Eric investigará con nosotros la investigación del Comité, en la que determinaron las operaciones básicas detrás de cualquier cálculo asincrónico. Veremos por qué los futuros y las promesas se ralentizan tanto, qué ejecutor es, qué devoluciones de llamada y corutinas tienen en común, y cómo la abstracción "Tarea" (que ahora se está estudiando activamente en Facebook por I + D) puede hacer la misma revolución en la asincronización que sucedió con la llegada de los iteradores en código síncrono regular
Si Eric es un ingeniero e investigador genial que rara vez habla bien, Marshall Clow es la estrella de las conferencias internacionales. Si va a YouTube e ingresa su nombre en la búsqueda , YouTube se convierte en su página de inicio personal. CppCon, C ++ Now, ACCU, EuroLLVM: todo lo que puedas imaginar. Y ahora aquí está C ++ Rusia. Curiosamente, con todo esto, no es solo otro evangelista habitual, sino C ++: un desarrollador con 35 años de experiencia, el autor original de Boost.Algorithm
. Boost.Algorithm
(y, en general, el contribuyente de impulso durante más de 15 años), el jefe del grupo de trabajo sobre bibliotecas en el Comité Estandarización de C ++ y desarrollador principal de libc ++ (biblioteca estándar para LLVM). Una leyenda viva y una persona que escribió magistralmente en C ++ cuando la mitad de los que leen este texto aún no han nacido.
Marshall vendrá con el informe "Fortalecimiento de la biblioteca de plantillas estándar de C ++" , la esencia es esta: dado que la biblioteca estándar es utilizada por todos en una fila, debe estar muy bien escrita y no romperse en ningún lado. El informe está dedicado a una discusión de técnicas y herramientas que hacen que libc ++ de LLVM satisfaga estos requisitos: depuración, conjuntos de pruebas y cobertura, análisis estático y dinámico, fuzzing. Por supuesto, este informe no es solo para desarrolladores de LLVM, sino que todos pueden extraer sus propias ideas y sacar sus propias conclusiones.
Bryce Adelstein Lelbach estudió C ++ un poco menos que Marshall, pero tiene algo que sorprender. Es uno de los líderes mundiales en la comunidad C ++. Su actividad social es que Bryce es ahora el director del programa de las principales conferencias de C ++: CppCon y C ++ Now, el jefe del Grupo de usuarios de C ++ en San Francisco y Silicon Valley. En el Comité de Normalización, participa en JTC1 / SC22 / WG21, es el presidente del Tooling Study Group (SG15) y el Library Evolution Incubator (SG18), y en C ++ 17 trabajó en una larga lista de cosas (algoritmos paralelos, ejecutores, futuros, emisores / receptores, multidimensional matrices, módulos). Entre otras cosas, Bryce lidera el equipo de desarrollo de CUDA en NVIDIA, a veces ayuda a LLVMLinux y se compromete con Boost.
Bryce llega con una conferencia sobre "La biblioteca de sincronización C ++ 20" . Desde que salió C ++ 11, han pasado más de una docena de años, ¡el mundo ha cambiado! En los días de C ++ 11, los procesadores multinúcleo ya estaban firmemente establecidos, pero el número normal de núcleos era de dos o cuatro. Todo lo que es más de diez, como los pueblos antiguos, fue indicado por la palabra "muchos". "Dos", "cuatro" y "muchos". Ahora es normal tener docenas de objetivos y soportar retrasos de sincronización de un milisegundo completo. Se ha vuelto común tener decenas y cientos de hilos, y la palabra "muchos" ahora significa "cientos de miles". Hace diez años, era poco probable que alguien pudiera imaginar claramente los problemas actuales de los subprocesos múltiples. Al usar las herramientas tradicionales de hoy, nos enfrentamos con una latencia inaceptablemente alta o con contenido inaceptable para sincronizar hilos. La biblioteca C ++ 20 ofrece nuevas soluciones: primitivas livianas que pueden funcionar con cientos de miles de subprocesos. std::atomic::wait
, std::atomic::notify_*
, std::atomic_ref
, std::counting_semaphore
, std::latch
, std::barrier
... Este informe está construido como una secuencia de ejemplos en los que aprenderemos cómo usar todas estas herramientas para construir una aplicación moderna que se pueda ejecutar en paralelo en casi cualquier hardware, desde CPU integradas y de servidor hasta nuevas GPU.
El próximo orador es el famoso desarrollador ruso Anton Polukhin . Conocido por informes sobre áreas donde C ++ se considera indispensable y cosas adicionales que sería bueno tener en C ++. Representante de Rusia en ISO en reuniones internacionales del grupo de trabajo sobre estandarización C ++, autor de varias propuestas aceptadas para el estándar del lenguaje C ++. En preparación para la conferencia anterior, publicamos una entrevista con él sobre Habré . En general, el tema de la participación rusa en el Comité ya ha sido ampliamente discutido tanto en Habré como en todas partes (mira, Yandex incluso escribió una publicación sobre esto en VK), y ahora no abramos este tema. Puede ir a stdcpp.ru y ver una lista de representantes, ahora es: Anton Polukhin, Anton Bikineev y Alexander Fokin. Anton también es autor de varias bibliotecas de Boost: TypeIndex, DLL, Stacktrace, participa activamente en el soporte de Any, Conversion, LexicalCast, Variant. Ha escrito el libro de cocina de desarrollo de aplicaciones Boost C ++ y la segunda edición.
Esta vez, Anton llega con el informe "C ++ Taxi Tricks" (el informe se llama así, obviamente, porque Anton trabaja en Yandex.Taxi). La esencia de los trucos es cómo escribir soluciones aparentemente conocidas de una manera hermosa y más efectiva; por ejemplo, desde Pimpl puede tirar la asignación dinámica y ajustar el caché.
Diluyamos nuestra lista con alguien que no trabaja en el Comité. Salude a Andrei Davydov de JetBrains: ha estado trabajando en el equipo ReSharper C ++ durante tres años y muchos de nosotros usamos los resultados de su trabajo todos los días. En el informe, Andrei hablará sobre cómo la apariencia de los módulos afectará el núcleo del lenguaje C ++: si antes el compilador trabajó con las unidades de traducción de una en una, entonces con la llegada de los módulos las reglas del juego cambiaron. Se discutirán los siguientes temas:
- qué es una entidad accesible y cómo difiere de la visible;
- cómo los módulos afectan a ADL;
- si las entidades con enlace interno pueden filtrarse a otro módulo;
- puede importar una clase al mismo tiempo que completa e incompleta;
- qué pasará con las funciones en línea en un mundo modular.
Tenga en cuenta que este no es un informe introductorio a los módulos para principiantes. Se espera que los estudiantes se familiaricen con los principios de los módulos y comprendan por qué se necesitan módulos. La buena noticia es que, en primer lugar, resolverlo es bastante simple (solo googlea un buen artículo), y en segundo lugar, esta C ++ Rusia tendrá otro informe de introducción emparejado sobre módulos de Dmitry Kozhevnikov (también funciona en JetBrains).
El resto del programa
Es bastante obvio que es imposible contar unas 30 personas y sus 30 informes en un breve anuncio posterior sobre Habré. Por lo tanto, todo esto se describe con más detalle en el sitio web oficial de la conferencia . Es importante tener en cuenta que el programa continúa cambiando: por ejemplo, a medida que los presentadores, con la ayuda del Comité del Programa, continúan mejorando sus informes, sus descripciones también se actualizan. Así que más cerca del 31 de octubre, todo se verá un poco diferente, pero el significado general seguirá siendo el mismo.
¡Los informes no lo son todo!
Por supuesto, una conferencia no es solo informes, sino también un mar de comunicación. Aquí es donde la presencia en vivo difiere de la transmisión en línea, que también planeamos hacer. Eche un vistazo a la lista anterior: con la mayoría de estas personas me gustaría conocer y discutir algo importante. Tenemos esa oportunidad: después del final del informe, todos van al área de discusión y hablan allí durante el tiempo suficiente. Al final del día, se organizan las llamadas sesiones BOF (algo así como una mesa redonda, pero solo todos participan).
Puedes conocer gente interesante de la comunidad que también vino, pero sin un informe. Puede encontrar empresas de interés, aprender algo de sus representantes y participar en concursos. Habrá diferentes actividades paralelas en las que ahora estamos pensando. En resumen, todo lo que se puede imaginar sobre una gran conferencia.
Clases magistrales
Además del programa principal de la conferencia, también habrá clases magistrales (la participación en ellas se elabora y se paga por separado). Se llevarán a cabo el día antes de la conferencia y, a diferencia de los informes, tomarán al menos varias horas cada uno. Las descripciones detalladas y los términos de participación en las clases magistrales se pueden encontrar en el sitio web oficial .
Anton Polukhin - "C ++ ágil y moderno"
Anton es un conocido desarrollador ruso, del que hablamos un poco más en este artículo. Su experiencia como autor de las bibliotecas Boost, participante y el Comité de Normalización, así como su extensa práctica, le permiten escribir código C ++ inteligente competente y enseñar a otros a hacerlo.
En cualquier base de código grande, puede encontrar piezas de código absolutamente incomprensible. Como regla, dicho código está escrito para ganar un poco en el rendimiento de la aplicación ... y, como regla, dicho código no es necesario en principio, ya que optimiza no lo que se necesita, no en el lugar donde se necesita, y no como debería .
La clase magistral comenzará con un pequeño ejemplo, donde encontrará todos los errores comunes de optimización prematura. Luego pasará de lo básico y considerará cosas como algoritmos y contenedores de la biblioteca estándar (y no solo la estándar), la semántica de movimiento y su comportamiento inesperado, subprocesamiento múltiple. Este es un taller completamente práctico que utiliza Google Benchmark y tareas que parecen tareas para optimizar código específico.
Rainer Grimm - "Programación integrada con C ++ moderno"
Rainer Grimm es un experimentado desarrollador de software y desarrollador de software C ++, Python de Alemania. Embedded es una de las principales áreas de aplicación de C ++ moderno. C ++ le permite comunicarse directamente con el hardware y proporciona abstracciones para construir sistemas complejos. En C ++ moderno, hay muchas cosas que ayudan con incrustado. Estas son cosas como semántica de movimiento y funciones constexpr (para mejorar el rendimiento), literales definidos por el usuario y rasgos de tipo (para sistemas para los que la seguridad máxima es crítica), punteros inteligentes y std::array
(para menos desorden con los recursos )
Esta clase magistral le enseña cómo utilizar mejor las características de C ++ en relación con incrustado. En particular, proporciona respuestas a una amplia gama de preguntas sobre las limitaciones únicas de tales sistemas. Este taller se imparte en inglés.
Pavel Filonov - "Integración continua para C ++ - Desarrollador"
Pavel Filonov cree que el proceso de desarrollo no debe terminar después de un compromiso, por lo tanto, presentará una clase magistral sobre Integración Continua. El objetivo de la clase maestra es dar el siguiente paso hacia la integración continua (CI, Ing. Continuous Integration) y automatizar la resolución de dependencia, el ensamblaje y las pruebas unitarias para todas las plataformas de destino. Como resultado, los participantes podrán implementar de forma totalmente independiente toda la infraestructura necesaria para CI y preparar un proyecto C ++ para el ensamblaje automático y las pruebas unitarias.
Que sigue
¡Y luego debes venir a C ++ Russia 2019 Piter! La conferencia se llevará a cabo del 31 de octubre al 1 de noviembre en San Petersburgo. Las entradas se pueden comprar en el sitio web oficial . También puede familiarizarse en detalle con la versión actual del programa (recuerdo que continúa cambiando).
Una nota importante sobre precios y descuentos. El sistema de tickets puede emitir tickets de cuatro tipos: académico, personal, estándar y en línea. Por qué es importante: si compra boletos usted mismo, entonces le costará mucho más barato que un boleto para la compañía. Y si usted es un estudiante, un estudiante graduado o un maestro (y hay un documento apropiado para su confirmación), entonces el descuento es especialmente impresionante. Las condiciones detalladas, por supuesto, deben leerse en el sitio ; todo lo escrito anteriormente fue solo para información.
En previsión de C ++ Russia 2019 Piter, puede ver grabaciones de dos conferencias anteriores que tuvieron lugar esta primavera en Moscú y Novosibirsk. En general, todos los registros de los últimos años están perfectamente en nuestro canal de YouTube . Por lo tanto, puede evaluar visualmente la calidad de los informes.
¡Nos vemos en C ++ Russia 2019 Piter!