main2 (1)

 

Desenvolvedores Java: Takipi te informa quando código novo entra em produção – Saiba mais

Um dos maiores dilemas que o desenvolvedores encaram todo dia é quais bibliotecas usar. Escolher o framework mais novo e famoso ou o framework “chato” já testado que está por aí há 10 anos? Uma das principais coisas que podem tornar um framework bem sucedido é as suas comunidades de usuários e colaboradores. Enquanto é bem fácil de saber quantas pessoas contribuem em um projeto (especialmente se for de código aberto), é bem difícil saber quantas pessoas estão de fato usando ele. Decidimos adotar uma abordagem direcionada por dados para responder a estas perguntas.

O GitHub hospeda mais de um milhão de projetos atualmente. Os projetos vão de pequenas utilidades e aplicativos de testes até projetos com infraestrutura gigantesca com centenas de colaboradores. Sendo assim, ele fornece uma base de dados vasta e atualizada pra ser explorada, o que também é um indicativo das tendências em softwares empresariais e de código fechado.

Escolhemos as 3 maiores linguagens no GitHub – Java, Ruby e JavaScript. Para cada uma analisamos 10.000 projetos (isto é, repositórios do GitHub) tendendo àqueles que foram mais favoritados por desenvolvedores.

Analisamos o que são os 100 componentes mais usados, agrupando-os em categorias (por exemplo, Teste, BD, UI, etc..). É bastante interessante ver como eles se diferem entre as diferentes Linguagens.

Aqui estão algumas descobertas notáveis e o top 10 de bibliotecas para cada linguagem (você encontra a lista completa no fim desse post):

Java

Clique Aqui para obter o relatório de Java completo

Java1

É tempo de Guava – o Google code virou mainstream. Bibliotecas Spring e Apache são tão predominantes que já são praticamente uma parte da linguagem, com mais de 25% do top 100 de bibliotecas divididas igualmente entre as duas. Uma coisa um pouco surpreendente é a forte presença de bibliotecas feitas pelo Google, como GWT e Guava, em Java, com 7% do top 100. Parece que essa é mais uma área da nossa vida em que o Google tem uma grande participação.

BigData – Hadoop está liderando nos gráficos. Processamento de dados é uma parte grande de Java com 16 bibliotecas do top 100 focando em gerenciamento de banco de dados, comparado a 12 em Ruby e 5 em JavaScript (uma linguagem reconhecidamente muito mais voltada ao lado do cliente).

É interessante ver que o Hadoop está cumprindo sua promessa de ser o líder em tecnologia em Big Data com 168 registros. Colocando em perspectiva, MySql, um dos mais conhecidos e comuns SQL BDs, tem 255 registros. Postgre SQL, ou BD relacional bem conhecido, tem 121.

ElasticSearch, uma nova tecnologia para busca em grandes bancos de dados, também está se dando bem no GitHub sendo usado em mais de 100 projetos.

Desenvolvimento orientado a testes (TDD) é grande em Java e Ruby (ainda não em JS) – vemos que nas 3 linguagens o processo de testes tem um papel muito importante.

Mocking, um método para simular objetos do mundo real em testes e desenvolvimento, ganhou muita importância com seu uso em 10% dos projetos em Java e 7% em Ruby. Mocar em JavaScript ainda é quase inexistente.

Find the Crap in Your Java App

Show me how >>

Fred

Ruby

Ruby

SQL ainda domina. Enquanto banco de dados NoSQL estão a todo vapor atualmente, bancos de dados relacionais (SQL) ainda dominam o mundo do Ruby – Sqlite, postgreeSQL, MySql são usados em 25% dos projetos, enquanto Redis e mongo só aparecem em 3% dos projetos.

MongoDB, entretanto, ainda é popular em Ruby com 185 registros, o que é o dobro dos projetos em Java.

Em desenvolvimento web vemos que enquanto novos frameworks foram impulsionados nos últimos anos (como Sinatra com 570 registros), Ruby ainda está centrado em Rails, com mais de 7.000 projetos. Para servidores web, Thin (com 487 registros) é usado duas vezes mais em projetos que Unicorn.

CoffeeScript, uma nova camada por cima de JavaScript parece ser bem recebida pelos desenvolvedores web em Ruby com mais de 1000 projetos.

Twitter também causou um grande impacto em Ruby sendo usados por 3 bibliotecas no top 100 e 382 projetos. Por maior que isso seja, não chega a ser tão grande como a influência do Google em Java.

JavaScript

Javascript

JavaScript é fragmentado. O maior alcance dos componentes em Java é 30% dos projetos. Para Ruby é cerca de 20%. Para JS não chega nem a 10%. Como JavaScript está evoluindo rapidamente para suportar mais tipos de aplicações, muitas das novas possibilidades ainda não foram absorvidas na linguagem ou em bibliotecas padrão. Como resultado, vemos 50% a mais de frameworks usados em JavaScript no top 100 em relação a Ruby e Java, mostrando que de fato a linguagem ainda está no começo.

Grunt é enorme. O framework de automação Grunt tem um grande papel no desenvolvimento JS (especialmente para node.js) com 23% do top 100 se ligando a ele. Grunt parece estar preenchendo o vazio no ciclo de criação, teste e distribuição em JS. Isso é tratado fora do projeto em linguagens como Java por outras ferramentas de destaque como Maven ou Jenkins.

O uso de redes ainda é um grande problema. Uma grande parte das bibliotecas de JavaScript (7% do top 100) foca em networking e comunicação cliente/servidor. Isso é 3 vezes mais que em Java e Ruby. Isso é, muito provavelmente, devido aos desenvolvedores web terem que lidar com ecossistemas fragmentados no lado do cliente, e o servidor ainda em um estado relativamente inicial.

Para o desenvolvimento web para servidores – o framework express para node.js está liderando o gráfico com 631 registros.

Buscando mais estrutura. JavaScript também possui o maior número de extensões de linguagem com 844 registros. É interessante ver que enquanto JavaScript é uma linguagem muito flexível, desenvolvedores buscam maneiras de moldá-la em algo mais estruturado. Underscore.js, que fornece possibilidades de programação funcional similares àquelas encontradas em linguagens mais estruturadas como Scala, tem 416 registros, fazendo com que ela seja a 5ª biblioteca de JS mais dominante.

Clique aqui para ver a lista de completa do top 100 de bibliotecas.

email
Tal is the CEO of OverOps. Tal has been designing scalable, real-time Java and C++ applications for the past 15 years. He still enjoys analyzing a good bug though, and instrumenting code. In his free time Tal plays Jazz drums.
  • Levi Vieira

    Muito bom, obrigado por compartilhar.

  • Tiago2014

    Muito bom. Serve para orientar quais caminhos seguir.