C++

Compartilhar:

Essas perguntas foram mostradas apenas aos desenvolvedores que escolheram o C++ como uma de suas três principais linguagens de programação.

Compartilhar:

Quais padrões do C++ você utiliza regularmente?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

Nenhuma surpresa no nível de adoção do C++23 e padrões anteriores. Os padrões de adoção são praticamente os mesmos que nos últimos anos, como se fossem uma janela de tempo deslizante. O C++ mostra 10% de adoção em 2023, um pouco menos que a taxa de adoção do C++20 em 2020 (12%). Isso provavelmente está relacionado à quantidade de novos recursos que o C++20 trouxe, em comparação com o C++23.

Inbal Levi

Engenheiro-chefe de Software da MPGC Services Ltd (Millennium) e membro do comitê WG21

É bom ver uma parcela tão significativa dos setores de sistemas embarcados e de jogos já trabalhando com o C++20. Esta versão amplia as possibilidades em tempo de compilação, o que traz muitos benefícios para esses setores, com muita ênfase no desempenho do runtime. Espero ver taxas de adoção semelhantes para o C++23 nos próximos anos.

Bryce Adelstein Lelbach

Arquiteto Principal da NVIDIA

Faz sentido um grande salto na adoção do C++20, porque as implementações ficaram muito mais maduras e cheias de recursos. Acho que veremos uma grande mudança do C++17 para o C++20 como o "dialeto-base" de grande parte da comunidade nos próximos anos.

Migração de padrões C++

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

57% dos usuários de C++98/03 não têm planos de migrar para outro padrão? Talvez isso seja uma decepção, mas considerando que geralmente só 8% dos que responderam ainda estão no C++98/03, isso significa que apenas algo como 4% do código em C++ no mundo vai continuar nesse padrão antigo, o que não é ruim e é semelhante ao que acontece com outras linguagens de programação.

Você planeja usar algum destes recursos do C++20 no seu projeto atual nos próximos 12 meses?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

Embora tenha havido um grande progresso nos sistemas de build e no ecossistema para dar suporte aos módulos do C++20, o dado de que metade dos participantes da pesquisa planeja usar módulos do C++ no próximo ano (presumo que em produção) me parece otimista demais. Não creio que cheguemos lá nos próximos 12 meses.

Inbal Levi

Engenheiro-chefe de Software da MPGC Services Ltd (Millennium) e membro do comitê WG21

Estou realmente satisfeito de ver a rápida taxa de adoção de recursos no mundo dos sistemas embarcados, que tradicionalmente era conhecido por adotar as coisas lentamente. Acredito que isto também esteja relacionado aos grandes benefícios que o C++20 pode proporcionar a esse setor.

Bryce Adelstein Lelbach

Arquiteto Principal da NVIDIA

Fico imaginando quantas pessoas realmente experimentaram usar módulos. Há muito interesse, mas nem tanta adoção.

Qual IDE ou editor você usa com mais frequência para desenvolvimento em C++?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

O mercado é claramente dominado pela Microsoft e pela JetBrains. Parece que o rápido crescimento do VS Code está finalmente desacelerando (pelo menos no público do C++) e começou a estabilizar, com participações iguais dos três principais produtos: CLion, VS e VS Code.

Quais frameworks de teste de unidade você costuma utilizar, se aplicável?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

29% ainda não escrevem testes de unidade para seu código em C++ e isso é triste. Embora essa cifra venha diminuindo ao longo dos anos, isso está acontecendo muito devagar. O futuro da linguagem também depende de corrigir coisas como esta.

Inbal Levi

Engenheiro-chefe de Software da MPGC Services Ltd (Millennium) e membro do comitê WG21

Estou surpreso de ver o número de desenvolvedores escrevendo testes de unidades sem frameworks. Há um esforço no comitê para promover o tópico dos gerenciadores de pacotes, que eu espero que promovam uma redução nesses números nos próximos anos — tanto no número daqueles que não escrevem testes de unidades quanto no dos que escrevem esses testes sem frameworks.

Como você gerencia as suas bibliotecas de terceiros no C++?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

É bom constatar que há menos desenvolvedores compilando bibliotecas manualmente usando suas instruções. Há esperança de que o uso de soluções automatizadas reduza ainda mais essa prática, que é exclusiva dos ecossistemas do C e do C++.

Inbal Levi

Engenheiro-chefe de Software da MPGC Services Ltd (Millennium) e membro do comitê WG21

Acho que esta é uma grande indicação de que é necessário um amplo suporte a gerenciadores de pacotes em toda a comunidade do C++.

Bryce Adelstein Lelbach

Arquiteto Principal da NVIDIA

Mais cedo ou mais tarde, talvez possamos atingir um ponto de inflexão no qual esses gerenciadores de pacotes (vcpkg, Conan, etc.) estejam suficientemente maduros e usados amplamente o bastante para se tornarem um padrão de fato. Mas ainda não chegamos lá.

Quais modelos de projeto ou sistemas de build você usa regularmente?

Bryce Adelstein Lelbach

Arquiteto Principal da NVIDIA

É muito interessante ver a queda na participação de mercado do CMake e o aumento na participação do Ninja. Eu não estava a par dessa tendência. Talvez isso seja apenas ruído, mas considerando o rápido crescimento do CMake até agora, este dado sugere que ele atingiu sua saturação máxima.

Quais compiladores você usa regularmente?

Quais outras linguagens de programação você usa nos seus projetos, além do C++?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

O Python é outra ferramenta muito útil no cinto de utilidades dos desenvolvedores em C++.

Bryce Adelstein Lelbach

Arquiteto Principal da NVIDIA

Aqui a tendência parece ser um maior uso do JavaScript e do Rust em combinação com o C++. Considerando a crescente popularidade do Rust, é surpreendente que não haja um crescimento mais rápido da combinação Rust + C++. Isso sugere que talvez seja mais difícil usar o Rust em projetos existentes (em comparação com projetos novos).

Quais das seguintes ferramentas você ou sua equipe utiliza para aplicação de diretrizes ou outros processos de análise/qualidade de código?

Bryce Adelstein Lelbach

Arquiteto Principal da NVIDIA

Acho que esta diminuição nas ferramentas de análise fornecidas pelos IDEs é uma indicação de as pessoas estarem incorporando a análise estática à sua CI, como, por exemplo, ao executarem o analisador estático Clang-tidy/ClangFormat/Clang no GitHub Actions.

Como você ou sua equipe executa análises de código?

Quais ferramentas ou técnicas você utiliza para otimizar os tempos de build do seu projeto C++?

Diego Rodríguez-Losada González

Arquiteto-chefe da JFrog

Cinco ou dez anos atrás, o mercado de IDEs para C++ era essencialmente dominado por um único produto, o Visual Studio, que era específico para o Windows. As pessoas costumavam desenvolver em Windows só para terem acesso a um bom IDE. Hoje temos dois grandes fornecedores nesse espaço — a JetBrains e a Microsoft — e isso é ótimo para os usuários. Com o Visual Studio Code e o CLion, agora os IDEs estão muito mais acessíveis a desenvolvedores não Windows.

Obrigado pelo seu tempo!

Esperamos que você tenha achado nosso relatório útil. Compartilhe este relatório com seus amigos e colegas.

Se tiver dúvidas ou sugestões, entre em contato conosco em surveys@jetbrains.com.