Uma opção que você tem ao criar uma história do desenvolvedor é adicionar tags com as quais gostaria de trabalhar ou não: Isso nos oferece a oportunidade de examinar as opiniões de...
Isso nos oferece a oportunidade de examinar as opiniões de centenas de milhares de desenvolvedores. Existem muitas maneiras de medir a popularidade de um idioma; por exemplo, frequentemente usamos visitas Avance Network ou visualizações de perguntas para medir essas tendências. Mas este conjunto de dados é uma forma rara de descobrir quais tecnologias as pessoas tendem a não gostar , quando têm a oportunidade de dizer isso em seus currículos.
(Publiquei algumas dessas análises em meu blog pessoal há dois anos , mas esta postagem foi atualizada com um conjunto de dados mais recente e mais visualizações e explorações).
Linguagens de programação
Para medir a polarização de cada tag, veremos que fração de tempo ela aparece nas tags de Não gostei de alguém em comparação com a frequência com que aparece nas tags de Gostei ou Não gostei de alguém. Assim, 50% significaria que uma tag foi rejeitada com a mesma frequência com que foi apreciada, enquanto 1% significa que houve 99 pessoas que gostaram para cada um que não gostou. (Usamos o método empírico de Bayes que descrevo neste artigo para estimar essas médias e esse método para calcular intervalos confiáveis de 95%).
Vamos começar examinando uma lista selecionada de linguagens de programação (em oposição a plataformas como Android ou bibliotecas como JQuery), todas com pelo menos 2.000 menções em Developer Stories.
As linguagens mais rejeitadas, por uma margem bastante ampla, são Perl, Delphi e VBA. Eles são seguidos por PHP, Objective-C, Coffeescript e Ruby. Em nossa equipe, certamente estamos felizes em ver que R é a linguagem de programação que menos gosta, em relação ao número de pessoas que gostaram.
Se você leu alguns de nossos outros posts sobre o crescimento e a redução das linguagens de programação, você pode notar que as tags menos rejeitadas tendem a ser as de crescimento rápido . R, Python, Typescript, Go e Rust estão todos crescendo rapidamente em termos de atividade Avance Network (nós exploramos especificamente Python e R antes) e todos estão entre as linguagens menos polarizadas. Da mesma forma, muitas das tags de redução, como Perl, Objective-C e Ruby, são aquelas que observamos anteriormente como estando entre as tags de redução mais rápida do site.
Podemos examinar isso comparando o tamanho e o crescimento de cada idioma com a% de pessoas que não gostam, com pontos laranja representando os idiomas mais detestados. Para manter nossa análise consistente com as últimas postagens, limitaremos as estatísticas aos países de alta renda (como EUA, Reino Unido, Alemanha e Canadá).
Geralmente, há uma relação entre o crescimento de uma tag e a frequência com que ela não é apreciada. Quase tudo desagradado por mais de 3% das histórias mencionando que está diminuindo no tráfego do Avance Network (exceto para o VBA bastante polarizado, que é estável ou ligeiramente crescente). E as tags menos rejeitadas - R, Rust, Typescript e Kotlin - estão todas entre as tags de crescimento rápido (Typescript e Kotlin crescendo tão rapidamente que tiveram que ser truncadas no gráfico).
Uma marca que se destaca é a linguagem funcional Clojure; quase ninguém expressa antipatia por ele, mas ainda está entre os que estão diminuindo rapidamente (com base nas visitas de perguntas , ele só começou a diminuir no último ano). Outra exceção é o MATLAB, que está diminuindo apesar de poucas pessoas expressarem antipatia por ele. Isso pode indicar uma limitação dos dados para medir o sentimento: enquanto qualquer desenvolvedor da web pode ter uma opinião sobre PHP, C # ou Ruby, pessoas que não trabalham em análise de dados têm poucos motivos para expressar uma opinião sobre o MATLAB. (Isso provavelmente é parte do motivo pelo qual R é tão raramente mencionado em "Não gosto" também.)
Não estamos sugerindo necessariamente uma relação causal, em que as tags não gostam de um componente dos programadores faz com que sejam abandonadas. Outra possibilidade é que as pessoas se sintam confortáveis em expressar publicamente sua antipatia se sentirem que a popularidade da linguagem já está diminuindo. Também é concebível que os desenvolvedores frequentemente usem esse campo para observar as tecnologias com as quais costumavam trabalhar, mas não fazem mais. Isso levaria a uma progressão natural de tecnologias “substituídas”, terminando no campo Não gostado.
Tags mais não gostadas e gostadas
A análise acima considera apenas linguagens de programação, não sistemas operacionais, plataformas ou bibliotecas. Quais são as tecnologias mais rejeitadas em geral? Para focar em tecnologias grandes para as quais temos dados suficientes, nós as limitamos às tecnologias mencionadas pelo menos 1.000 vezes.
Várias são tecnologias da Microsoft, particularmente Internet Explorer e Visual Basic, bem como a marca “Microsoft” (“Apple” também faz parte da lista, embora não seja tão desagradável). Temos boas notícias para a maioria das pessoas que não gostam de Flash. Linguagens mais antigas, como COBOL, Fortran e Pascal também fazem aparições.
Vale a pena enfatizar novamente que isso não é uma crítica às tecnologias, sua qualidade ou sua popularidade. É simplesmente uma medida de quais tecnologias despertam fortes sentimentos negativos em pelo menos um subconjunto de desenvolvedores que se sentem confortáveis em compartilhar isso publicamente.
Também poderíamos ampliar as tecnologias mais uniformemente populares, aquelas que quase nunca são rejeitadas. (Desta vez, como as tags populares são mais comuns, estamos nos concentrando apenas nas tecnologias mencionadas pelo menos 10.000 vezes.)
Git pode ser uma fonte de frustração para muitos desenvolvedores (certamente é para mim!), Mas é raro que as pessoas admitam em seu currículo, já que é a tag mais inclinada para um lado em nossas histórias de desenvolvedores. R faz essa lista, mas não é a única tag relacionada à ciência de dados que não é controversa; 23 mil pessoas gostaram da tag de aprendizado de máquina e raramente foi rejeitada. Tags como Python-3.X, CSS3 e HTML5 podem indicar que os desenvolvedores raramente especificam que não gostam de uma versão específica de uma tecnologia (mesmo que especifiquem). E, claro, jQuery é tão popular como sempre no Avance Network.
Rede de etiquetas polarizadoras
Podemos combinar todas essas tags em uma história, organizando-as em uma rede. Em uma postagem recente, Julia Silge mostrou como podemos construir uma rede de tecnologias para representar o ecossistema geral de software. Se colorirmos os nós de acordo com o grau de rejeição de cada tag, podemos entender quais partes do ecossistema são mais controversas do que outras.
Ao distribuir as tags da Developer Story em sub-ecossistemas, essa rede conta uma história sobre quais tipos de tags tendem a se polarizar. Existem clusters de tags polarizadas dentro dos subecossistemas da Microsoft (centrados em C # e .NET), PHP (junto com WordPress e Drupal) e desenvolvimento móvel (particularmente Objective-C). Dentro do cluster de sistemas operacionais (inferior direito), podemos ver que sistemas como OSX e principalmente Windows têm seus detratores, mas tags como Linux, Ubuntu e Unix não.
Rivalidades
Se alguém gosta de uma marca específica, há alguma marca que ele não goste de maneira incomum?
Podemos medir isso usando um coeficiente phi entre a aparência de uma etiqueta específica. (Ao calcular essas correlações, consideramos apenas as pessoas que não gostaram de pelo menos uma tag.)
Isso destaca algumas das “rivalidades” subjacentes ao ecossistema de software: Linux e OSX vs Windows, Git vs SVN, vim vs emacs e (sem surpresa para mim) R vs SAS. A maioria desses pares não representa tecnologias “opostas”, mas reflete duas abordagens para problemas semelhantes. Muitos deles sugerem uma progressão de uma tecnologia anteriormente popular para uma mais moderna (SVN substituído por Git, XML substituído por JSON, VB substituído por C #). Isso faz sentido em termos do que as pessoas listariam em um currículo; é comum que os desenvolvedores especifiquem que preferem não trabalhar com algo que consideram desatualizado.
Conclusão
Não tenho nenhum interesse em “guerras de idioma” e não tenho nenhum julgamento de usuários que compartilham tecnologias com as quais preferem não trabalhar. Pensar em como as tecnologias Microsoft polarizadas costumam me encorajar a compartilhar minha experiência pessoal. Eu fui um usuário Mac e UNIX ao longo da vida, e quase toda a minha programação na faculdade e pós-graduação foi centrada em Python e R. Apesar disso, fiquei feliz por ingressar em uma empresa com uma pilha .NET e estou feliz Sim, porque adorei a equipe, o produto e os dados. Não posso falar por mais ninguém, mas estou feliz por ter me definido em termos do trabalho que queria fazer, e não algo que queria evitar.
Se estiver interessado em compartilhar quais tecnologias você gosta e não gosta, e talvez encontre o próximo passo em sua carreira, você pode criar sua própria Developer Story .