DEV Community

Paulo Gabriel
Paulo Gabriel

Posted on

O mito do "Java é Difícil" e as melhorias da linguagem

O mito

Uma das coisas que eu mais vejo na internet e faculdade são falas como "Deus me livre de usar Java", "Java é muito difícil" e "Java é muito verboso" "Precisei comprar um computador de R$ 10.000,00 para poder usar Java", ta eu não trouxe muitos exemplos, aposto que você também viu algo parecido.
O grande problema é que muitas pessoas, na verdade, não entendem o paradigma de Orientação a Objetos e culpam a linguagem em si, a linguagem nunca é a culpada por algo. Ela é só uma ferramenta, o grande ponto é o telefone sem fio que vai espalhando a "noticia" de que o problema está na linguagem, muitas pessoas sequer programaram em Java.
Uma coisa que essas pessoas podem fazer é entender melhor o que é a Orientação a Objetos, que problemas ela resolve, tentar outra linguagem como C#, Ruby, ou qualquer outra que tenha esse paradigma, a pessoa entendendo o paradigma a linguagem vai ser o menor dos problemas.
Um grande ponto é que não precisamos mais escrever Java como era escrito antigamente, temos frameworks que abstraem muitas coisas, como o Spring, com Spring conseguimos fazer um CRUD com poucas linhas de código, se usar Rest Repositories e JPA viish, em 10 minutos sai um CRUD, com tudo que é método e ainda implementando HATEOAS, paginação e tudo mais.

A realidade é que as pessoas precisam perder o medo da linguagem e entender que ela é apenas uma ferramenta.

As melhorias

A verbosidade da linguagem vem diminuindo com o tempo, por exemplo, no Java 17 (ultima LTS) temos os records, uma feature bem interessante para dados que são imutáveis, não precisamos criar aqueles famosos POJOS.

public record Person(String name, String email, String address) {}
Enter fullscreen mode Exit fullscreen mode

Desse modo temos um tipo de classe, mais compacto, com atributos imutáveis e métodos get para eles.
Agora também temos "switch expressions" que são blocos "switch" que podem também retornar algo, temos um modo melhor também para dar o "match" em um valor.

public int foo(int input) {
    return switch(input) {
        case 1, 3, 5, 7 -> input * 2;
        case 2, 4, 6, 8 -> input * 3;
        default -> input;
    }
}
Enter fullscreen mode Exit fullscreen mode

Em versões anteriores também temos o for abstraindo iterators, temos a Stream API, conseguimos usar recursos de linguagens funcionais em Java também.

Oldest comments (0)