Relatório do ecossistema JVM 2018: sobre suas ferramentas
Andrew Binstock
17 de outubro de 2018
0 minutos de leituraBoas-vindas à maior pesquisa já realizada com desenvolvedores Java. Os dados apresentados neste relatório foram coletados em mais de 10.200 questionários. Se você respondeu à pesquisa, muito obrigado por dedicar seu tempo a compartilhar sua experiência e ajudar outras pessoas.Este relatório está dividido em quatro artigos:
Relatório do ecossistema JVM 2018: sobre suas ferramentas
Relatório do ecossistema JVM 2018: sobre sua plataforma e aplicação
Relatório do ecossistema JVM 2018: sobre seus processos e você
Também preparamos um belo relatório em PDF, feito artesanalmente, que reúne todas essas informações em um único arquivo para baixar.
BAIXE O RELATÓRIO DO ECOSSISTEMA JVM 2018!
Sobre suas ferramentas
6. Com qual IDE você desenvolve?
O gráfico está de acordo com outras pesquisas recentes: o IntelliJ ultrapassou o Eclipse nos últimos um ou dois anos, e o Apache NetBeans mantém cerca de 10% do mercado. Do total de 45% de votos do IntelliJ, 32% são do IntelliJ IDEA Ultimate Edition (a versão paga), 11% do IntelliJ Community Edition (a versão gratuita) e 2% de usuários do Android Studio. A categoria Eclipse inclui Eclipse STS, JBoss Tools, Rational Application Developer e outras ferramentas baseadas no Eclipse. O número de usuários do Apache NetBeans não mudou muito, o que sugere que a migração da Oracle para a Apache Software Foundation não afetou sua base de usuários. Também vale mencionar que o Visual Studio Code apareceu na pesquisa. Embora represente apenas 1%, isso mostra que está começando a marcar presença na comunidade Java. E uma saudação ao grupo ‘vi/vim/emacs/etc’, que provavelmente está lendo este relatório em um tablet (talhado em pedra).

7. Qual ferramenta de build você usa no seu projeto principal?
Ao analisar os números, é importante observar que perguntamos qual era a ferramenta de build _principal_ usada. Queremos saber de qual ferramenta de build você depende no seu projeto principal. Também pode ser interessante saber quais ferramentas as equipes usam em todos os seus projetos, mas a grande variedade de respostas tende a reduzir a utilidade dos resultados. Como vemos aqui, o Maven domina claramente, com uma proporção de 3 para 1 em relação ao seu concorrente mais próximo, o Gradle. Um em cada dez desenvolvedores ainda usa Ant, enquanto um em cada 20 não usa ferramenta alguma!Em uma versão de 2016 de uma pesquisa semelhante da RebelLabs (com 2.000 participantes), o Maven tinha 68% e o Gradle, 16%. A maior adoção do Gradle talvez se deva à inclusão de suporte ao Kotlin como linguagem de script. O Gradle também é o mecanismo de build padrão para projetos Android. Ainda assim, seu avanço em relação ao Maven tem sido lento.

8. Quais ferramentas de análise estática de qualidade você usa?
Antes de enviar aquele e-mail ou publicar um tuíte tentando consertar a internet, vale lembrar: esta é uma pergunta de múltipla escolha, então os números não somam 100%. Uma conclusão desses dados é que há apenas um pequeno número de ferramentas de análise estática de qualidade amplamente usadas. No topo, não há grandes surpresas: SonarQube, Findbugs e Checkstyle dominam. Talvez o dado mais surpreendente seja que 36% dos participantes não usam nenhuma ferramenta de análise estática de qualidade. Isso chama a atenção porque esperamos que essas ferramentas sejam a norma.

9. Você usa ferramentas de segurança estática nos testes?
Os testes de segurança estão ganhando destaque, impulsionados por grandes violações que afetam diversas empresas. Ainda assim, até hoje, a maioria dos sites não usa nenhuma ferramenta de segurança estática. Na verdade, 72% dos participantes — quase três quartos — não usam nenhuma ferramenta estática em nenhum ponto do pipeline, o que pode deixá-los expostos a vulnerabilidades conhecidas. Esperamos que pesquisas futuras mostrem uma adoção mais ampla de ferramentas de segurança.

10. Qual servidor de CI você usa?
Como a maioria dos desenvolvedores esperaria, o Jenkins vence a disputa entre servidores de CI, com impressionantes 57% de participação. Seu concorrente mais próximo é “nenhum”, com 21% dos votos — quase o mesmo que todos os demais concorrentes somados (22%). Cada um dos outros servidores de CI tem menos de 5% de participação, e o Hudson, parente mais velho do Jenkins, segue em frente com dificuldade, com 2%. Vale mencionar o VSTS, da Microsoft (Visual Studio Team Server), que não costuma ser associado ao universo Java/JVM, mas também aparece com 2%.Acreditamos que a maioria dos desenvolvedores espera que quase todos os sites usem integração contínua hoje. Por isso, é surpreendente ver que um em cada cinco aplicativos não usa nenhuma. Até projetos pessoais usam CI (como Travis CI e CircleCI), disponíveis em sites públicos de hospedagem de projetos, como Bitbucket e GitHub. Se você faz parte dos 21% que não usam CI nos projetos, gostaríamos de saber por quê.

11. Qual plataforma de gerenciamento de código-fonte sua equipe usa no projeto principal?
Como esperado, o Git venceu com folga a disputa pelo gerenciamento de código-fonte. Se você tinha alguma dúvida sobre o tamanho de seu domínio, quase três em cada quatro participantes trabalham em equipes que usam Git para gerenciar suas bases de código. O Subversion atende à maioria dos demais participantes; e, de alguma forma, em 2018, 3% das pessoas ainda não usam nenhum sistema de gerenciamento de código-fonte. Às vezes, faltam palavras.

12. Qual repositório de código você usa no projeto principal?
No caso dos repositórios de código, o cenário é bem diferente do gerenciamento de código-fonte: o mercado é muito mais dividido, com GitHub e Bitbucket empatados em 25% cada, e o GitLab logo atrás, com 20%. Podemos chamar esses três de “os três grandes” da hospedagem de projetos. Esta pergunta não se refere apenas a projetos públicos (nos quais esperamos que o GitHub tenha uma vantagem mais significativa), mas também à hospedagem de projetos públicos e privados. A recente aquisição do GitHub pela Microsoft pode afetar sua adoção no futuro; saberemos mais em pesquisas futuras. Dos 25% de participação do GitHub, pouco mais da metade dos participantes (52%) usa a versão pública, enquanto os demais (48%) usam o GitHub Enterprise privado, hospedado localmente. O VSTS representa 2% da categoria “outros”.

13. Qual repositório privado de binários/artefatos você usa?
A maioria dos sites não usa um repositório de artefatos empacotados — em teoria, porque não precisa. Quem prefere a conveniência que ele oferece opta pelo já consolidado Nexus, voltado principalmente ao ecossistema JVM, seguido pelo Artifactory, da JFrog, um pouco mais popular em ecossistemas com várias linguagens.

14. Quais tecnologias de teste você usa?
Com quase quatro em cada cinco pessoas usando JUnit e outras 10% usando TestNG, fica claro que o teste de unidade é, de longe, a prática de teste predominante no ecossistema JVM. (Os participantes podiam escolher várias respostas, por isso os totais passam de 100%.) Quanto a mocks, está claro que o Mockito se tornou o framework preferido.Com o JMeter usado por quase um em cada quatro participantes e o Gatling por 5%, vemos que a importância dos testes de desempenho está sendo cada vez mais reconhecida. O Selenium impressiona, com 29%. Ao contrário dos resultados sobre ferramentas de análise estática de qualidade, apenas 10% dos participantes dizem não usar nenhuma ferramenta de teste. Espere aí… uma em cada dez pessoas não usa ferramenta de teste?! Melhor seguir em frente antes de perdermos a fé na humanidade.

Resumo das ferramentas
9 em cada 20 desenvolvedores já usam o IntelliJ IDEA
6 em cada 10 desenvolvedores usam o Maven para fazer o build do projeto principal
Mais de 7 em cada 10 desenvolvedores ainda não usam ferramentas de segurança estática
Quase 6 em cada 10 desenvolvedores usam Jenkins para CI
Quase 3 em cada 4 desenvolvedores usam Git como SCM
GitHub, Bitbucket e GitLab dividem quase igualmente o mercado de repositórios de código
Quase 8 em cada 10 desenvolvedores usam JUnit
Este relatório tem mais! Qual seção você quer ler em seguida?
Relatório do ecossistema JVM 2018: sobre suas ferramentas
Relatório do ecossistema JVM 2018: sobre sua plataforma e aplicação
Relatório do ecossistema JVM 2018: sobre seus processos e você



