JavaRush /Blogue Java /Random-PT /Pausa para café #68. Uma opinião honesta sobre Java e seu...

Pausa para café #68. Uma opinião honesta sobre Java e seu ecossistema. Três novas ferramentas Java a serem consideradas em 2021

Publicado no grupo Random-PT

Uma opinião honesta sobre Java e seu ecossistema

Fonte: Dev.to Ok, admito que minha linguagem principal é C#. Mas esta é minha opinião imparcial sobre Java e seu ecossistema circundante. Usei o comando bash em Java com bastante frequência, vendo todas as suas deficiências. Por exemplo, Java não possui propriedades, nativamente não possui eventos, estruturas, sobrecarga de operadores e até o Java 10 não havia inferência, portanto não há 'var'. Tudo que existe em C#! Além disso, usei bash para Java devido à falta de LINQ, var e enums. Mesmo assim escrevo bastante em Java, principalmente quando crio aplicativos para Android, mas também para outras coisas. Meu primeiro projeto também foi em Java! Então, na noite de sexta-feira, devido à urgência, tive que escrever em Java por várias horas seguidas. E adivinha o que descobri? FLUXO! Pausa para café #68.  Uma opinião honesta sobre Java e seu ecossistema.  Três novas ferramentas Java a serem consideradas em 2021 - 1Aparentemente o Java 8 introduziu threads! E eu não tinha ideia disso! Para quem não sabe, Streams é uma implementação Java do LINQ. Também descobri que o Java 10 tem inferência de tipos, então o Java agora tem uma função var! Não acredito como meu conhecimento está desatualizado, mas, honestamente, havia uma razão para isso. Essas duas coisas fizeram uma grande diferença no meu pensamento! Você sabia que Java sempre verifica exceções, mas C# não? Admito que sinto muita falta desse recurso em C#! Sim, não existem estruturas, propriedades, etc., mas caramba, é elegante! Acho que o Java por design força o desenvolvedor a escrever aplicativos mais robustos. Já no mundo .NET, isso fica em grande parte ao critério do codificador. Alguns desenvolvedores gostam dessas restrições, enquanto outros preferem a liberdade. Embora ambas as linguagens sejam bastante seguras, Java obviamente tem uma ligeira vantagem. Então, por que as grandes empresas preferem Java? Acho que já sei a resposta! O que mais me frustra é que... na maioria dos exemplos de código que você vê na internet, esses recursos avançados nem sempre são usados... Acho que se um novo desenvolvedor Java vir 'var' escrito em toda a base de código , ele vai enlouquecer! E quanto aos fluxos? O que são fluxos? Os desenvolvedores Java adoram o loop For! Na verdade, mesmo os loops foreach são bastante raros no mundo Java (e talvez haja uma razão para isso: o loop For é muito mais otimizado). Mas esses não são recursos ruins! Vou mais longe e digo que esses recursos são incríveis! Realmente me dói quando escrevo aplicativos Android e percebo que quase nenhum lugar da API Android são usados ​​enums! E isso é justo porque o Android foi escrito há muitos anos. O que mais me irrita é que tenho que usar constantes toda vez que preciso usar a função Activity for Results no Android, assim: int PICK_IMAGE_FROM_GALLERY = 3000 Mano, isso é uma loucura! E ainda assim pessoas em todo o mundo passaram a aceitá-lo. E até eu. Java também carece de implementação de eventos nativos! Se ao menos tivesse eventos e delegados como C#... (Ei, criadores da linguagem Java, se vocês estão lendo isso, precisam adicionar eventos! E se vocês já os possuem ou estão em obras, me avisem ). Agora vou contar qual pode ser a maior falha no ecossistema Java. DOCUMENTAÇÃO!!! A documentação desordenada e inútil no site da Oracle parece estúpida e desatualizada, no nível de 2007. Nem sempre tem exemplos de código. Se você começar a procurar um recurso ou método de API relativamente incomum, encontrará uma definição, declaração, argumentos enfadonhos, a qual pacote ele pertence - e é isso. Eu acho isso um absurdo. Você não acha isso um absurdo? Nenhum trecho de código? Portanto, nós desenvolvedores temos que confiar muito em fóruns como StackOverflow, ou outros sites de programação como TutorialsPoint... Às vezes eles são realmente úteis com bons exemplos de código mostrando esse recurso, mas outras vezes não são tão úteis. Recomendo comparar a documentação da Microsoft em C# com a documentação da Oracle em Java... Céu e terra! Não acredite em mim? Vá e confira: Oracle e Microsoft. A documentação no site da Microsoft está linda! Eles ainda têm um modo escuro! Nós, desenvolvedores, somos loucos pelo modo escuro. E a documentação da Oracle? Como eu disse, permaneceu em 2007. Talvez não houvesse modo escuro naquela época? Então, quero dizer que Java é incrível! Mas esta linguagem sofre muito com a documentação desatualizada. Em sua maioria, são documentos e manuais antigos que não destacam novos recursos tão necessários, como threads, vars e enums. Hoje em dia as pessoas dizem que o Java está começando a ficar obsoleto e será substituído pelo Kotlin, mas eu discordo. Porque mesmo que isso seja verdade, ele não a substituirá por muito tempo. Isso levará muitos e muitos anos. Você se lembra que Scala tentou substituí-lo também? Então, o que aconteceu? Java ainda governa todo o ecossistema JVM. Embora eu admita que Scala é muito diferente de Java, principalmente em funcionalidade. Agora, finalmente... mais uma coisa que me dá mais emoção do que qualquer coisa no mundo Java. Isso está obtendo o JDK. Por que é tão difícil baixar o JDK? O que quero dizer é que se eu precisar de um JDK, uma simples pesquisa no Google me indicará o site da Oracle, vou lá e encontro a versão do JDK que preciso. Até agora tudo é relativamente fácil, mas para fazer o download preciso me cadastrar. Por que eu criaria uma conta na Oracle e depois lidaria com seus e-mails toda semana, em vez de apenas baixar o JDK? Tenha em mente que Java é open source desde o primeiro dia! Ao contrário do C#, que só recentemente se tornou código aberto, em 2015. Então, já estou frustrado e vou para o segundo site nos resultados de pesquisa do Google. Isso me aponta para o site do OpenJDK. Encontro o JDK lá e clico em "download". Mas (surpresa, surpresa!) Eles fornecem links para implementações de JDK de outros sites! Entre os sites existe esse maldito Oracle, mas também existe um link para o site da Red Hat. Sim, a Red Hat é ótima, é uma das pioneiras em empresas de código aberto no mundo. Ok, vou ao site deles! Vou baixar de lá! Clico neste link, encontro a versão do JDK que estou procurando e adivinhe? Tenho que me cadastrar lá também... (pausa dramática) Isso é muito triste... Foda-se! O que há de errado com essas pessoas? Por fim, desisto e instalo o Chocolatey (é como o apt-get, mas para Windows. Acho que é o primeiro gerenciador de pacotes amplamente distribuído e usado para Windows). Depois de tudo isso preciso escrever um comando simples no PowerShell como: choco install jdk-1.8. E eu faço isso! (se você é um desenvolvedor C#, sabe como é fácil obter o .Net SDK em apenas 2 a 3 cliques, sem registro ou algo parecido). Para concluir meu longo discurso: Java é uma ótima linguagem de programação. É lindo, confiável e possui (na minha opinião) o melhor IDE do mundo - o conhecido IntelliJ IDEA da JetBrains. Além disso, Java possui uma comunidade muito útil e um ecossistema grande e diversificado. E estou dizendo isso - um desenvolvedor C#... Mas precisamos atualizar a documentação. Exemplos de código. API. Precisamos facilitar a obtenção do JDK. No geral, o Java está se movendo na direção certa, sua popularidade pode ter sofrido um pouco recentemente, mas isso não fará com que o Java desapareça. Há muitos anos está no topo da lista das melhores línguas do mundo! Eu uso Java o tempo todo e continuarei a fazê-lo no futuro.

Três novas ferramentas Java a serem consideradas em 2021

Fonte: OpenSource Apesar da popularidade de Python, Go e Node.js, que têm sido usados ​​ativamente nos últimos anos para implementar projetos relacionados à inteligência artificial, aprendizado de máquina e Kubernetes, as tecnologias Java ainda desempenham um papel fundamental no desenvolvimento de aplicações corporativas. De acordo com a Developer Economics, havia 8 milhões de desenvolvedores Java empresariais em todo o mundo no terceiro trimestre de 2020. Pausa para café #68.  Uma opinião honesta sobre Java e seu ecossistema.  Três novas ferramentas Java a serem consideradas em 2021 - 2A linguagem de programação Java existe há mais de 25 anos e está em constante atualização. Estão surgindo novas ferramentas e estruturas que podem capacitar suas aplicações e sua carreira. A grande maioria das plataformas Java foram criadas para implementar processos de longa execução com comportamento dinâmico, projetados para serem executados em um servidor ou em máquinas virtuais. Isso mudou em 2014 com o advento dos contêineres Kubernetes. Agora, os maiores desafios ao executar Java no Kubernetes são: otimizar o desempenho do aplicativo reduzindo o consumo de memória, acelerando os tempos de inicialização e resposta e reduzindo o tamanho dos arquivos.

Três novas estruturas e ferramentas Java

Os desenvolvedores Java estão sempre procurando as maneiras mais fáceis de integrar ferramentas populares e projetos de código aberto em seus aplicativos Java. Novas ferramentas de alto desempenho aumentam significativamente a produtividade do desenvolvimento e incentivam mais empresas e desenvolvedores individuais a usarem a pilha Java. Hoje falaremos sobre três novos frameworks e ferramentas Java:

Quarcus

Quarkus foi projetado para desenvolver microsserviços em nuvem e aplicativos sem servidor. Possui tempos de inicialização rápidos, tamanho pequeno de conjunto residente de memória (RSS) e alta densidade de memória em plataformas de orquestração de contêineres, como Kubernetes. De acordo com o nono relatório anual da JRebel, o uso do Quarkus entre os desenvolvedores Java cresceu 6% (menos de 1% no ano anterior). Micronaut e Vert.x cresceram para 4% e 2% respectivamente (no ano passado - cerca de 1%).

Eclipse JKube

Com o Eclipse JKube, os desenvolvedores Java criam imagens de contêiner com base em aplicativos Java baseados em nuvem usando estratégias de construção Docker, Jib ou Source-To-Image. A ferramenta também gera manifestos Kubernetes e OpenShift em tempo de compilação e melhora a experiência com ferramentas de depuração, monitoramento e registro.

Microperfil

O MicroProfile resolve os problemas associados à otimização da arquitetura corporativa de microsserviços Java sem introduzir novas estruturas ou refatorar aplicativos inteiros. Além disso, as especificações do MicroProfile (por exemplo, Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config) continuam a evoluir em linha com a implementação do Jakarta EE.

Conclusão

É difícil dizer quais estruturas ou ferramentas Java são melhores para desenvolvedores Java corporativos. Enquanto houver oportunidades para melhorar a pilha Java e acelerar o crescimento dos negócios empresariais, podemos esperar o surgimento de novas estruturas, ferramentas e plataformas. Confira para ver se eles podem melhorar seus aplicativos Java em 2021.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION