Executando verificação de segurança...
4

Vamos conversar sobre Java?

Olá! Sejam bem-vindos à minha primeira publicação aqui no TabNews. Para falar a verdade, não sei se vou manter uma consistência aqui, pois ainda estou aprendendo como funciona a plataforma 100%. Enfim, vamos ao assunto que é Java.

Para começar a falar sobre Java, tenho que mencionar o início dos meus estudos em programação. Inicialmente, tentei aprender PHP, mas fracassei ao tentar compreender variáveis. Depois, experimentei C e me perdi diante das inúmeras linguagens disponíveis: C, C++, e C#. Desisti e, um ano depois, decidi aprender a criar sites. Comecei estudando HTML e CSS, e tudo estava indo bem até chegar o momento de aprender JavaScript. Foi aí que tudo desandou. Era o ponto em que realmente começaria a aprender a programar, pois até então, lidava apenas com marcação de texto e não conseguia entender a lógica por trás. No entanto, de alguma forma, ao longo do percurso, aprendi a sintaxe de programação, variáveis, arrays, etc. Hoje em dia, não me lembro como consegui, mas até então era apenas isso - conhecimento básico de HTML, CSS e sintaxe.

Após terminar a escola, fiquei perdido sem saber o que fazer. Foi então que decidi ingressar em um curso técnico para aprimorar meus conhecimentos e entrar no mercado de trabalho de forma mais rápida do que na faculdade. Além disso, não sou fã do método de ensino da faculdade para programação. Atualmente, estou no Senai, no primeiro semestre.

No Senai, me deparei com uma situação interessante. Meu professor de lógica decidiu começar ensinando por meio da pseudo linguagem Portugol, o que considero válido, embora haja discordâncias. Por algum motivo, eu estava um pouco à frente e compreendia bem tudo o que era ensinado. Decidi, então, aplicar tudo o que ele passava usando a linguagem C. Surpreendentemente, me adaptei facilmente e gostei muito da linguagem. Conversando com amigos que estão um semestre à frente, descobri que a próxima linguagem seria C e, em seguida, Java.

Meu amigo Daniel, uma excelente pessoa e um ótimo amigo que trabalha no Senai, me deu o seguinte conselho:

"Patrick, comece a estudar Java."

Ouvi prontamente o conselho dele e mergulhei em um curso sobre Java no YouTube. Parei o curso na etapa de sintaxe, não porque não entendi, mas porque já havia compreendido o suficiente para iniciar meu próprio projeto e aplicar o que aprendi.

Meu projeto pessoal começou com a ideia do meu futuro TCC, mas minha equipe não apoiou muito. Eles ainda não estão interessados em estudar Java, então decidi começar sozinho. Aprendi aos poucos como a linguagem funcionava, refiz o projeto várias vezes e, pela primeira vez, comecei a utilizar a orientação a objetos para organizar melhor o código. Recentemente, finalizei o projeto, que está no GitHub (um projeto simples). Durante a criação do código, enfrentei alguns problemas. O primeiro foi a organização, que consegui resolver usando POO. O segundo foi o armazenamento de dados. Inicialmente, utilizei uma pasta com arquivos txt para armazenar os dados, o que me atrapalhava quando programava em um computador diferente do meu. Decidi, então, aprender sobre banco de dados.

Aprendi sobre banco de dados de maneira superficial, mas rápida e eficiente o suficiente para criar minhas tabelas, colunas e armazenar os dados necessários (agora estou me aprofundando mais, pois preciso usar chaves estrangeiras, fazer heranças de tabelas, etc.). Tentei implementar um banco de dados no meu projeto e, para minha surpresa, consegui. Enfim, finalizei meu projeto.

Percebi que gosto de aprender programação na prática, criando projetos pessoais e aplicando os conhecimentos que já tenho. Quando surge uma dificuldade, um problema ou uma vontade de implementar uma funcionalidade, vou atrás, aprendo e coloco em prática.

Sobre Java, muitos dizem que é uma linguagem difícil. Eu não a considero difícil, talvez porque seja difícil se adaptar à sua sintaxe, mas como foi a minha primeira linguagem, não senti muita dificuldade.

Agora estou iniciando um novo projeto. Ele consiste em criar um sistema de cadastro e login, dividido em duas partes: uma para o "Vendedor" e outra para o "Cliente". Será um programa para vendas e compras de produtos. Pesquisando algo semelhante, lembrei do TabNews e pensei que haveria mais publicações relacionadas a Java. No entanto, não encontrei muita coisa, daí o título: "Vamos conversar sobre Java?" É um convite a todos do TabNews para darem mais atenção a essa linguagem incrível. Inclusive, gostaria de fazer um questionamento: essa falta de publicações é devido ao fato de ser uma linguagem mais "chata" de se lidar ou porque existem outras linguagens "superiores" a Java?

Enfim, termino minha primeira publicação aqui. Peço desculpas pela falta de organização nesta publicação, não parei para ver como as pessoas organizam as publicações ainda. Espero que tenham gostado e espero fazer isso mais vezes.

(Link do projeto no GitHub: https://github.com/gsPatrick/CalculatorNN)
(Link da minha conta do GitHub: https://github.com/gsPatrick)

3

"Essa falta de publicações é devido ao fato de ser uma linguagem mais "chata" de se lidar ou porque existem outras linguagens "superiores" a Java?"

Java é uma excelente linguagem, não é perfeita mas está longe de ser ruim. Vem evoluindo mesmo que a passos lentos, seja por estimulos da MS Foundation estar investindo pesado no C# (lá ele) ou Jetbrains no Kotlin (o maior potencial concorrente do Java na plataforma da JVM), a Oracle resolveu tomar jeito e trazer features legais a linguagem, principalmente nessa nova LTS.

Não sou poliglota em linguagens de programação então posso estar errôneamente enganado mas, foi se inventado um mito de "melhores linguagens de programação" ou "melhores linguagens para iniciantes" nessa geração, como se houvesse o meio técnico/científico de como chegar a essas afirmações e geralmente nessas listas as linguagens de script sempre estarão rankeadas no top um.

Entretanto, isso não quer dizer que a popularidade de linguagens como Java e C# sejam menores por serem "chatas ou verbosas", pelo contrário, existe uma comunidade gigante por trás delas (lá ele de novo) bem como C++, Rust, Go etc. Mas sim que existe um marketing absurdo em algumas linguagens como Javascript/Typescript e Python por exemplo o que acaba levando a galera mais jovem para elas (e coincidentemente vai ter alguém usando elas para vender alguma coisa pra você, haha).

Ou seja, não é que existe linguagem melhor ou pior é só questão de focar naquilo que gosta e não se deixar levar por vários assentos de foguete que existe por aí! 😊

1

Pura verdade, vou pesquisar mais sobre Rust. Já ouvi falar e acho muito interessante, mas pretendo, antes de tudo, ter uma base sólida e ser muito bom em Java para poder avançar para a próxima linguagem.

Por exemplo, ainda não pesquisei nem utilizei nenhum tipo de framework, como o Spring Boot. Quero ter uma base forte e uma lógica consideravelmente boa para progredir para a próxima etapa.

Obrigado pela atenção na minha postagem. Fiquei muito animado com as respostas, e isso me incentiva a fazer mais publicações, apesar de ter pouco conhecimento ainda na área.

2

Com o boom! de I.A., redes neurais, robótica, mobile, startups etc. os iniciantes estão se dedicando a Python, Flutter e Node.js.

Node.js
Imagine usar a mesma linguagem no back-end e front-end, essa é para mim a maior vantagem do Node.js, isso desbancou o PHP e o Java.

Flutter (plataforma mobile)
Não entendo nada, ainda não descobri o motivo das pessoas usá-lo, nos meus aplicativos web eu uso Bootstrap no front-end, sempre funcionou com qualquer dispositivo, PC, tablet, smartphone seja android / iOS (Apple), um colega do ex-trabalho usava Flutter e reclamava que não tinha um Mac para compilar e um amigo meu queria fazer um projeto envolvendo blockchain, queria um programador web, porém estava insistindo no Flutter.

Python
No momento não programo em Python, mas está no meu radar, eu gosto muito de linguagens de script, uma que eu uso no meu cotidiano é a Autohotkey.
As startups acredito que impulsionaram bem o Python, projetos pequenos, feitos rapidamente e modernos usando I.A., redes neurais, visão computacional, etc.
Python desbancou Lua também.

1

Bem interessante, sua resposta fez surgir novas dúvidas para mim.

  • Sobre Node.js:
    Primeiramente, em relação ao Node.js, só de ler o que você disse, achei extremamente incrível. No entanto, por exemplo, eu que decidi começar a estudar Java, isso afetará o meu futuro no mercado de trabalho? Pois as empresas podem optar por outra linguagem que não seja Java, já que o Node.js faz o que o Java faz e ainda oferece mais funcionalidades. Outro detalhe, no momento em que estou, posso começar a estudar Node.js? Ou preciso ter algum conhecimento que ainda não possuo? (Muitas perguntas kkkkk)

  • Sobre Flutter:
    Quanto ao Flutter, tenho alguns amigos de outro semestre no Senai, e às vezes entro na sala deles quando estão estudando Dart com Flutter. Não sei muito sobre isso, mas parece ser bem interessante, e parece que isso torna possível a criação do back-end, front-end e mobile (Posso estar completamente enganado sobre isso; perguntei uma vez ao professor, e essa foi a resposta que lembro que ele me deu, mas posso estar tendo devaneios).

  • Sobre Python:
    Em relação ao Python, que é uma linguagem extremamente incrível, desejo muito aprendê-la no futuro, até porque pretendo trabalhar como desenvolvedor back-end e na área de banco de dados. Tenho um grande amigo chamado Leonardo; ele me inspira bastante a estudar. Ele me incentivou a começar meu projeto pessoal também. Ele sabe bastante sobre Python, e vejo como é uma linguagem incrível para realizar projetos modernos. Com certeza, está no meu radar como uma futura linguagem para aprender.

  • Ruby:
    Para finalizar, alguns amigos me recomendaram estudar Ruby, e achei interessante, mas não sei nada sobre ela. Se souber algo e puder me falar em qual área ela é mais utilizada, ficarei grato.

Obrigado pela atenção na minha postagem. Fiquei muito animado com as respostas, e isso me incentiva a fazer mais publicações, apesar de ter pouco conhecimento ainda na área.

1
1

Interessante. Você acha que devo parar meus estudos em Java e começar com Python ou Node.js? Ou devo concluir meus estudos sobre todo o 'ambiente' de Java e depois começar com Python e outras linguagens mais 'interessantes' no momento?

1

Eu gosto de Java mas pensado estar no seu lugar, acredito que a prioridade tem que ser Python.
Tenho que ser realista sobre o que está acontecendo por mais que eu goste de Java, se a própria Oracle a deixa de lado para usar Python então não adianta lutar contra a maré.

1

Vou colaborar com meus 5cent de opinião:
Node é um runtime, a linguagem é Javascript ou Typescript podemos usar no backend e front, são usados de formas diferentes e há limites.
Flutter A vantagem do flutter é poder compilar nativo, pra todas as plataformas, mas não da pra usar no backend.
Python da pra usar em tudo, mas o foco é IA, o problema é a péssima performance.
Java é o tio da turma, é a linguagem mais velha e tem uma bagagem que atrapalha e ajuda.
Kotlin é o filho jovem do Java, vc tem acesso ao lado positivo do java, sem seus problemas. Vale mencionar o Jetpack Compose, que nasceu no Android e agora podemos usar no desktop, na web(beta) e ios(alpha) podendo ser nativo, muito promissora pois seria a única linguagem que, hoje, atende todas as frentes, com possibilidade nativa.

1

Eu passei por algo parecido, mas eu estou aprendendo C# em vez de java e quando tive dificuldades na linguagem de programação, eu fiz o Curso CS50 de Harvard. É gratuito e te ensina toda a base de programação com scratch, depois migra pra C, depois python e no modulo final, Javascript, HTML e CSS.

No meu caso, eu "fugi" do JS por conta da alta concorrencia. Infelizmente os vendedores de curso de vire dev em 6 meses inflou demais o mercado front. Agora tem milhares de pessoas que sabem o basico de HTML, CSS e JS e se aplicando nas vagas achando que só isso é necessário para ganhar 5/10k por mês. Se balançar uma arvore é perigoso cair um dev react.

Isso junta de que eu sempre segui a lógica de se tem muita gente indo na mesma direção a disputa é maior e se tem um lugar onde não querem ir, há menos disputas, mais vagas e maior sálario. Esse é o caso do Java. Eu nunca vi um javeiro de alto nível sem emprego.

E Java é uma linguagem robusta, que está em sistemas gigantescos que é muito dificil de ser migrado para outra tecnologia, então vai precisar de pessoas para realizar manutenção. Eu particularmente acho Java um excelente caminho. Se eu não tivesse me apaixonado por C# com certeza teria ido de Java. Afinal são irmãs, praticamente kkk

E sobre o Node. Isso é uma opinião particular, não uma regra. Mas eu penso assim: Node "todo mundo" sabe, então o que te faz ser diferente das milhares de pessoas que se candidatam nas vagas? O esforço para voce se destacar seria com certeza maior do que em Java com Spring Boot. E mais uma vez, se tu se torna um dev Java de alto nivel, dificilmente fica desempregado. Claro, isso tudo é só opinião minha, pode estar de fora da realidade e também nada impede de voce aprender Node por curiosidade! E também se voce trabalhar com Java também vai ter que aprender Angular, Vue ou React porque a maioria das vagas são sempre full stack Java. Então de uma forma ou de outra não tem como fugir do Javascript e da para reaproveitar o conhecimento no Node.

1

Que comentário incrível, Marcos. Abriu muito meus pensamentos sobre o meu futuro na carreira. Concordo com tudo o que você disse. Apesar de talvez o Java esteja 'ultrapassado', existem empresas com sistemas que não conseguem mais migrar para outra linguagem, seja por custo ou por falta de vontade. Assim, um desenvolvedor Java de alto nível, com conhecimentos vastos, realmente não fica sem emprego, na minha opinião

1

Fico muito feliz em ter ajudado. Ter uma vasta gama de informações tem seus pontos positivos, mas também tem os negativos. É uma faca de dois gumes.

O lado negativo é se sentir perdido, não saber o que estudar ou se perder facilmente no caminho. A sua vantagem é que voce ja sabe o que quer. Só siga em frente e se especialize nisso.

Obviamente linguagens são só ferramentas na nossa maleta, porém o trabalho fica melhor quando é feito com a ferramente que gostamos. Você tem a sua. Se aprimore nela cada vez mais.

Não se deixe levar pelos seus colegas, muitas vezes as pessoas já tem um preconceito sobre algo sem nunca ter experimentado. O preconceito com Java provavelmente deve ser por traumas na faculdade. Por Java ser verboso pode ser uma barreira de entrada dificil e uma porta para traumas. O preconceito pode ser formado até por comentários que as pessoas leêm na internet. Nunca escreveram uma linha de código em Java e tem preconceitos formados. "JAva lento", "java ultrapassado"

Acredito que cada linguagem tem seu proposito e a do Java é ser extremamente versátil. Para isso ele roda em uma VM. Assim ele é capaz de ser compatível com quase tudo. Provavelmente até em geladeiras roda Java.

E quem fala que Java é ultrapassado, não sei de onde tiram isso. Enormes sistemas foram feitos em Java e ela é muitas vezes escolhida para sistemas de grande porte. Java está no mercado a anos e é quase impossível outra linguagem substitui-la. Se não me engano o C recebe atualizações até hoje e saiu uma versão em 2022. (isso requer pesquisa, pois não sei exatamente a data)

E quando você dominar o Java, pode facilmente migrar para um Kotlin, C#, por exemplo. As sintaxes são bem parecidadas. Também não deve se preocuopar tanto assim. Um dev dificilmente trabalha somente com uma linguagem por toda sua carreira. Então, aprender Java abre muitas vertentes na sua vida profissional e nenhum esforço é perdido.

Então, boa sorte na sua carreira. A diferença de você para seus colegas é que você já sabe o que quer. Tomar um caminho diferente não é errado. É só outro caminho. É honroso escolher seu próprio caminho e não ser so mais um na multidão. Nunca se esqueça disso!

1

Poxa, obrigado pela motivação. Sinto exatamente isso; estou trilhando o meu próprio caminho, independente de quem me apoia ou está comigo. Apesar de meus amigos estarem sempre me apoiando e ajudando, sinto que, se eu dominar Java, vou conseguir aprender com facilidade qualquer linguagem, principalmente as que têm sintaxe parecida. Pretendo agora começar a estudar Spring Boot e avançar cada vez mais, buscando conseguir uma vaga de estágio o mais rápido possível. Obrigado pelas dicas e pela motivação.

1
1
1
1
1

Então, existem linguagens que são melhores para determinada tarefa. Quando Java foi criada, a intensão era sercross platform para aplicações desktop e embarcadas, wue prometia ser o próximo boom. A ideia foi um sucesso (obviamente com rios de dinheiro em marketing). Hoje vejo-a como algo, apesar das evoluções, ultrapassado. A presença de null, o forte apego a orientação a objetos, logo aos problemas desse paradigma, como também a palperima experiência de desenvolvimento, fora ser uma grande comilona de recursos. Acho Rust uma linguagem bem mais completa para nossos dias e, junto com Elixir, fazem uma dupla infernal para desenvolvimento Web.

1

Perfeita colocação, mas apesar de todos esses detalhes java continua sendo usada e requisitada no mercado de trabalho ? achei interessante seu comentario falando sobre desenvolvimento Web porem eu me sinto mais confortavel no momento trabalhando como desenvolvedor back-end, me recomenda qual linguagem "nos dias de hoje" para aprender

1

Java ainda reina, mas vem caindo. Continuando na JVM tem o Kotlin. Porém a dupla Elixir/Rust acho perfeita para web atual, inclusive no front com o Elixir Liview. Resistência a falhas, facilidade de lidar com concorrência e anos de mercado com sua máquina virtual, fazem do Elixir fenomenal. Rust complementa com a capacidade de processamento mais poderosa, através de FFI. Além disso, a própria linguagem já disponibiliza banco em memória e manejamento de filas, isso no caso do Elixir

1
1

Bom, sobre o desempenho. Java é feito para rodar muito em empresas e servidores, junto com Docket e Kubernetes que compartilham a mesma JVM para rodar aplicações em paralelo.

Aliás, a presença de Null já é contornada pelo Optional, o recurso está lá!

1
1
1

ACho que a maior vantagem do Kotlin em relação ao Java é ser mais conciso e menos verboso,ou seja, no Kotlin você escreve menos pra fazer as mesmas coisas, o código mais enxuto e legível. No entanto, a desvantagem é aprender mais uma linguagem de programação. Experimeta aprender alguma coisa de Kotlin, depois me fala qual das duas linguagens ajuda mais nós programadores. Talvez seja o hora da comunidade de desenvolvedores da linguagem Java pensar em uma nova versão.

1

Uma outra coisa que é interessante você saber.

O Kotlin só existe por conta do Java, assim como C#. Por isso, se você aprende Java, migrar para qualquer uma dessas duas depois é menos penoso, pois Java é truncado em POO.

O C# passou a existir porque a Oracle (dona do Java) tem a proposta da linguagem funcionar em TODAS as plataformas, a Microsoft começou a utilizar para desenvolver apenas no Windows, tomou processo e criou a própria linguagem.

O Kotlin a mesma coisa, mas usando Java para começarem a desenvolver em Android, a Java quis brecaram, fizeram fork e criaram a própria linguagem.

Ou seja, ambas são Java com outro nome kkkkk o Kotlin ainda tem uma vantagem: é totalmente compatível com Java.

1

Kotlin é ótimo(embora eu ainda não tenha parado pra aprender) mas mesmo com toda a compatibilidade a única área que vejo que tá desbancando um pouco mais Java no momento é no mobile