Passei os últimos anos escrevendo Python para tudo: automações, scripts, web scraping, APIs com Flask, interfaces com PySide. Python é uma linguagem incrível — expressiva, rápida de escrever, com um ecossistema enorme.
Então por que estou migrando para Java?
A decisão foi pragmática
Não foi porque acho Java "melhor" que Python. Foi porque, olhando as vagas de backend disponíveis para junior no Brasil, Java e Spring Boot aparecem em volume muito maior do que Python/Django ou Python/FastAPI.
Essa é a realidade do mercado brasileiro agora, especialmente em empresas de médio e grande porte.
O que me surpreendeu positivamente
1. O ecossistema Spring é impressionante. Spring Boot, Spring Security, Spring Data JPA — tudo se encaixa de um jeito que faz sentido. Você declara o que quer e o framework resolve a maioria das questões.
2. Java moderno não é o Java de 2010. Lambdas, streams, records, var, switch expressions — a linguagem evoluiu bastante. Estou no Java 25 e a experiência é bem mais agradável do que eu esperava.
3. Tipagem forte me força a pensar melhor. Vindo do Python, onde você pode fazer x = qualquer_coisa, ter que declarar tipos explicitamente me obriga a modelar melhor o que estou construindo.
O que ainda é difícil
A verbosidade. Ainda. Mesmo com os avanços do Java moderno, escrever um simples endpoint em Spring Boot requer muito mais código do que um equivalente em Flask.
Mas estou me acostumando. E reconhecendo que parte dessa "verbosidade" é estrutura — que em projetos maiores faz toda a diferença.
O que estou construindo
Comecei uma API REST de gerenciamento de tarefas. Simples, mas completa:
- Autenticação com Spring Security + JWT
- CRUD com Spring Data JPA + PostgreSQL
- Documentação com Swagger
- Testes com JUnit + Mockito
- Docker + docker-compose
O repositório está no meu GitHub.
A transição não é rápida, mas está sendo mais tranquila do que eu imaginava. O raciocínio de programação é o mesmo — o que muda é a sintaxe e as ferramentas.
Se você está em dúvida entre aprender Java ou Python para backend: olha as vagas da sua cidade e decide com base em dados, não em preferência, querendo ou não a linguagem acaba sendo mais uma ferramenta e vai depender muito também do tipo de projeto.