O mundo moderno do C ++ é muito diferente do que estávamos acostumados no C ++ 98. Alguém admira isso, alguém o incomoda, mas o fato permanece. Aqui estão alguns tópicos que excitam as mentes dos desenvolvedores hoje:
- Recursos novos e modernos da linguagem C ++
- Programação funcional
- Metaprogramação
- Multithreading, simultaneidade, assincronia e tudo-tudo-tudo
- Como viver com as ferramentas existentes
Em menos de um mês, haverá uma conferência que tenta responder a estas perguntas: C ++ Rússia 2019. Vamos dar uma rápida olhada em como isso funciona.

Recursos novos e modernos da linguagem C ++
Aqui tivemos muita sorte em várias direções ao mesmo tempo. Em primeiro lugar, o C ++ está melhorando ativamente, o conjunto de ferramentas importantes e úteis continua a crescer. Nem todas as linguagens têm a mesma sorte - por exemplo, no Java 12 lançado recentemente, não havia um único recurso pronto para produção da linguagem ou uma grande mudança nas bibliotecas.
Por outro lado, todos têm uma imagem clara da imagem geral de todas as melhorias em C ++? Tem certeza de que está usando suas ferramentas corretamente e isso não ocorrerá no futuro?
E então, na nossa conferência, as duas palestras (relatórios de abertura e encerramento) são de pessoas que participam do comitê há anos. Eles têm esse trabalho - ter em mente uma imagem de tudo. Além de excelentes relatórios, você também pode conversar com eles na área de discussão.
O primeiro é Anton Polukhin, com uma história sobre áreas em que o C ++ é considerado indispensável e outras coisas que seria bom ter em C ++. Com ele, publicamos recentemente uma entrevista sobre Habré . Em geral, o tópico da participação dos russos no comitê já foi amplamente discutido tanto em Habré quanto em todos os lugares (veja, Yandex chegou a escrever um post sobre isso em VK). Você pode acessar o stdcpp.ru e ver uma lista de representantes, agora é: Anton Polukhin, Anton Bikineev e Alexander Fokin.
O segundo membro é Nicolai Josuttis. Ele é o autor dos livros The C ++ Standard Library e C ++ Templates e membro do comitê de padronização por quase vinte anos. Seu relatório provavelmente será um dos mais tópicos sobre o "futuro e o moderno": "C ++ 17 - as maiores armadilhas" tem como objetivo falar sobre os problemas por trás da arquitetura, quem é o culpado e o que fazer
Programação funcional
O próximo tópico do qual parte da comunidade está queimando é FP. Em Habré, esse tópico é representado amplamente.
Nem todos na comunidade acreditam que o jogo vale a pena. Ainda não foram queimadas fogueiras sobre o desempenho de depuração dos intervalos e o artigo de Aras Prankevichius . Muitos ainda estão se perguntando o que são mônadas, por que são necessárias e exigem artigos com imagens vívidas . Alguém já está afiando uma adaga e resmungando "transformou meu maravilhoso C ++ em algum tipo de Haskell".
Um dos problemas mais importantes com a FA é que não há muitos especialistas nela. Todo mundo gosta de estudá-lo, mas para realmente aplicá-lo, há problemas com isso. Existe inadequação total quando uma pessoa acredita sinceramente que entende AF, mas não pode escrever Hello World com ela. Existem todos os tipos de extremos quando uma pessoa familiarizada com a presença de lambdas imediatamente se considera o rei da programação funcional. Ou vice-versa - antes de escrever o Halloworld, ele é removido para a caverna memorizando “Categorias para o matemático que trabalha” e todos os livros e manuais de Okasaki desde o início dos tempos.
Por favor, não siga os links para ler estes livros. Primeiro você precisa ler este post e ir para a conferência.
Portanto, a indústria precisa de alguém versado em C ++ em PHP, e nós os temos. A princípio, você pode se familiarizar com uma boa entrevista com Ivan Chukich e Alexander Granin. E sim, ambos estarão em C ++ na Rússia.
Alexander falará sobre analisadores monádicos . Ivan falará sobre “Design C ++ somente para movimentação” e realizará um dos três treinamentos grandes - “Programação funcional aplicada em C ++” .
E há "Funções de ordem superior e function_ref" de Vittorio Romeo da Bloomberg e "Estruturas de dados imutáveis pós-modernas" de Juan Pedro Bolívar Puente. O que é pós-moderno? Mas venha e descubra.
Metaprogramação e FP andam de mãos dadas, mas a situação é exatamente o oposto. Se no FP estamos estudando como aplicar isso na prática, na metaprogramação foi gerada uma enorme quantidade de informações práticas que precisam ser sistematizadas, realizadas e aprimorar nossas habilidades em relação às nossas próprias tarefas.
O C ++ Russia tem um bloco inteiro dedicado a este tópico:
Cada relatório é interessante de uma maneira ou de outra e, se você começar a divulgá-lo, não haverá hubrast suficiente. Por exemplo, o último relatório é sobre mecanismos de jogos: gamedev possui seus próprios requisitos para toda a pilha de desenvolvimento, de ferramentas a desempenho do STL, e aqui você encontra um desenvolvedor ao vivo do mecanismo Encore para o jogo World of Tanks, que fala sobre o Boost.Python, reflexão de parâmetros materiais para modelos 3D e outras coisas específicas. Em geral, você deve ler atentamente as descrições e entender para onde deseja ir.
Multithreading, simultaneidade, assincronia e tudo-tudo-tudo
Apesar de não haver bloco dedicado para dez relatórios, esses tópicos são abordados de uma maneira ou de outra em todos os outros relatórios. Por exemplo, falando sobre FP, é sempre interessante - quanto FP ajuda ou complica a gravação de multithreading.
E embora o modelo de execução defina uma coordenada separada para a profundidade de todos os outros relatórios, haverá algumas coisas especializadas: "Simultaneidade e paralelismo em C ++ 17 e C ++ 20/23", provavelmente do conhecido Grimm Reiner e "Desenvolvimento assíncrono de C ++" .
Por que exatamente o assincronismo? Recentemente, o mundo avançou bastante nessa direção, as ferramentas integradas para trabalhar com assincronia aparecem em todos os idiomas da parte superior do TIOBE, e o C ++ não foi exceção, por exemplo, TS C ++ Extensions for Concurrency . Como separar a palha do joio quando alguns evangelistas da assincronia tentam nos vender a assincronia como valor próprio? Em conferências sobre JavaScript e Java, os relatórios "assíncronos" às vezes ocupam um terço do programa . É bom ter pelo menos um bom relatório sobre o assunto, que é o que Pavel Novikov, da Align Technologies, fará .
Como viver com as ferramentas existentes
Os demais relatórios do programa não estão incluídos nas categorias acima, mas em si são pequenas pérolas. Por exemplo, o tema do DevOps agora não é menos quente que o assincronismo descrito acima. Como você deve saber, “devops” não é uma pessoa ou uma profissão, mas uma cultura. E essa cultura é construída sobre ferramentas, com algumas das quais ainda temos dores reais. Embora o próprio C ++ seja rápido e extremamente rápido, sua montagem é lenta como uma tartaruga, e as ferramentas clássicas nas quais a cultura DevOps deve se basear são complexas e geralmente não são confiáveis. Isso inclui ferramentas de montagem distribuídas, métodos de vinculação, módulos infelizes. Viktor Kirilov fará uma apresentação “O guia do mochileiro para construções mais rápidas” e talvez ajude um pouco a lidar com essa dor.
Algum tipo de revisão acabou. O que eu esqueci? Ponteiros inteligentes? Sim, e nós os temos, até dois relatórios ( um , dois ). O que não em C ++ Rússia.
Treinamentos
Se apresentações regulares não forem suficientes, temos treinamentos em grande escala. Cada um deles durará muitas horas, abordará um tópico específico e, portanto, não poderá ser mantido simultaneamente com os relatórios. Eles ocorrerão um dia antes do programa principal, ou seja, 18 de abril.
As descrições estão nos links. Se você veio da página principal de treinamentos - clique nos botões "Detalhes" - é aqui que o ticket é selecionado e diz o que precisa ser instalado no seu laptop.
Próximas etapas
A grade do relatório ainda não está finalizada. Ainda, outro mês permaneceu (a conferência será realizada como esperado, de 19 a 20 de abril). Se você é um participante, ou seja, uma solicitação - verifique o e-mail, enviamos uma pesquisa. Lá devem ser notados os relatórios que eu quero ir. Esta pesquisa é bastante interativa, as respostas afetarão a distribuição dos relatórios nos corredores.
Lembro que, no site oficial, você pode se familiarizar com o programa completo da conferência para descobrir o que e em que ordem você gostaria de ir.
Você pode comprar ingressos lá . Observe que existem vários tipos de tíquetes e, escolhendo o tipo mais adequado para você, você pode economizar seriamente. Se você não puder participar da conferência ao vivo, ou seja, a oportunidade de participar on-line - existe uma categoria separada de ingressos para isso.