Essas perguntas foram apresentadas apenas para os desenvolvedores que escolheram o C++ como uma das três principais linguagens de programação.

C++

Quais padrões C++ você costuma utilizar?

12%40%30%42%18%11%C++98 / C++03C++11C++14C++17C++20Não tenho certeza
Matt GodboltCriador do Compiler Explorer

“É bom ver a adoção do C++ moderno. Um de cada cinco entrevistados está no padrão mais recente, o que é ótimo, e muitos outros estão planejando mudar pelo menos para o C++17 no próximo ano. Os módulos e os conceitos parecem ser fortes motivadores.”

Migração de padrões C++

41%17% 9%17%17%Não, não está nos meus planospara C++11para C++14para C++17para C++20
Andreas KlingCriador do SerenityOS e do respectivo canal do YouTube

“Faz sentido que muitas pessoas que já estavam no C++17 estejam ansiosas para adotar o C++20.”

Seu projeto atual planeja usar algum desses recursos do C++20 nos próximos 12 meses?

48%46%33% 5%31%MódulosConceitosCorrotinasOutrosNenhum
Andreas KlingCriador do SerenityOS e do respectivo canal do YouTube

“Os módulos estão no topo das paradas, conforme o esperado. Com o tempo de construção C++ piorando a cada ano, será muito interessante ver como as pessoas usam módulos para resistir a essa tendência.”

Qual IDE/editor você utiliza com mais frequência para desenvolvimento em C++?

28%26%24% 6% 3% 2% 2% 2%Visual Studio CodeCLionVisual StudioVi/VimQtCreatorEmacsSublimeXcode
Todos os resultados

Quais dos seguintes frameworks de teste unitário você costuma utilizar?

32%11% 9% 5% 4% 2%30%16% 4%Google TestCatchCppUnitBoost.TestdoctestCppUTestNão escrevo testes de unidade para C++Eu escrevo testes de unidade, mas não uso nenhum frameworkOutros

Matt GodboltCriador do Compiler Explorer

“Ainda é decepcionante ver um terço dos desenvolvedores não escrevendo nenhum teste de unidade.”

Como você gerencia suas bibliotecas de terceiros em C++?

26%23%21%21% 9% 7% 5% 1%14% 5%O código-fonte da biblioteca faz parte da minha compilaçãoCompilo as bibliotecas separadamente usando suas instruçõesFaço download de bibliotecas pré-compiladas da InternetDependo de um gerenciador de pacotes do sistemavcpkgNugetConanbuild2Nenhuma das opções acima, não tenho dependênciasOutros
Matt GodboltCriador do Compiler Explorer

“Quase três quartos dos entrevistados não têm uma boa solução de empacotamento. Ter que compilar bibliotecas separadamente, pré-compilar ou usar o gerenciamento de pacotes do sistema significa muita mão-de-obra para os desenvolvedores e também dependência por terceiros para criá-los. Isso pode resultar em atrasos na adoção de novas versões, além de adicionar complexidade à atualização ou alteração de compilers.”

Andreas KlingCriador do SerenityOS e do respectivo canal do YouTube

“Não seria o C++ se não tivéssemos muitas soluções concorrentes para este problema, mas não posso deixar de me perguntar se estaríamos todos melhor se apenas escolhêssemos uma e a seguíssemos.”

Que métodos de relatório de erros são permitidos em seu projeto atual (trabalho ou escola)?

80%
Exceções
54%
Códigos de erro numéricos
20%
Tipos de classe de resultado de sucesso/falha

Quais modelos de projeto ou sistemas de compilação você costuma utilizar?

55%36%31%10% 9% 9% 6% 6%CMakeMakefileProjeto Visual StudioGradleNinjaProjeto XcodeSistema de compliação personalizadoQmake
Todos os resultados

Quais compiladores você costuma utilizar?

GCCClangMSVCIntelCompilador paramicrocontroladoresPersonalizadoOutrosGCC78%Clang43%MSVC30%Intel9%Compilador para microcontroladores7%Personalizado2%Outros1%
Matt GodboltCriador do Compiler Explorer

“É interessante ver os compiladores de open source no topo da lista de compilers usados regularmente. No meu mundo, o trabalho no Linux torna os compiladores MSVC indisponíveis, mas sempre imaginei que o número de programadores no Windows fosse nos superar e, portanto, o uso do MSVC seria maior.”

Andreas KlingCriador do SerenityOS e do respectivo canal do YouTube

“É muito interessante ver o GCC crescendo mais que o Clang. Curiosamente, parece que o GCC tem feito um progresso melhor com o C++20.”

Que outras linguagens de programação você usa em seus projetos junto com o C++?

45%31%21%15%15%12%11%11%PythonCLinguagens de scripts Shell (bash/shell/powershell)JavaJavaScriptSQL (PL/SQL, T-SQL e outras extensões de programação do SQL)C#HTML/CSS
Todos os resultados

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

38%23%21%17%11% 7% 4% 3% 2% 1%Ferramenta fornecida por meu IDEClang-tidyClangFormatClang-analyzer/Clang Static AnalyzerCppcheckCpplintCoverityStackPVS-StudioParasoft C/C++test
Todos os resultados

Andreas KlingCriador do SerenityOS e do respectivo canal do YouTube

“A formatação automática de código ainda é gravemente subestimada. Pode parecer bobo, mas usando uma ferramenta como o ClangFormat, você nunca mais precisará ter outra discussão sobre estilo de codificação!”

Obrigado pelo seu tempo!

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

Participe do Laboratório de Insights de Tecnologia da JetBrains

Participe de pesquisas e estudos de experiência do usuário para tornar os produtos da JetBrains mais fáceis de usar, porém ainda mais poderosos. Você também terá a oportunidade de ganhar recompensas por participar das nossas pesquisas.

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