Qual linguagem de programação você deve usar
Opa pessoal, tudo bem?
Podem me chamar de Nigro, eu sou desenvolvedor faz 3 anos e decidi escrever isso hoje para discutirmos sobre um "problema" que todo mundo na área chega em algum momento: Qual linguagem de programação eu devo usar?
Vou ser 100% sincero com vocês, eu pessoalmente ainda sofro bastante desse problema, mas acho que tenho uma opinião minimamente concreta sobre isso.
A linguagem é uma ferramenta
- Quando você precisa fixar um prego em materiais como a madeira, a melhor opção seria um martelo.
- Quando você precisa apertar algum parafuso, a melhor opção é uma chave de fenda ou furadeira.
Você até consegue usar uma chave de fenda e bater com tudo no prego, ou usar o martelo para apertar o parafuso. Você usa a melhor ferramenta disponível para cada caso.
O que eu acho que programadores estudam
Na minha opinião um programador não aprende linguagens como Python ou C#, ele aprende a lógica. Você precisa usar uma ferramenta para um trabalho. Hoje em dia tem várias opções, algumas mais fáceis e outras mais difíceis de aprender. Saiba pelo menos o básico que o resto vai que nem água. Aproveite que hoje em dia tem todas essas oportunidades e você não precisa escrever em assembly.
Essa linguagem é mais rápida que essa
Na maioria esmagadora dos casos, isso não vai importar em nada. Esses milissegundos de diferença não vão mudar nada. Você escrever um código bem feito em Python pode ser mais rápido que um código mal feito em C++. Aprenda a lógica e a estrutura, não as linguagens.
Considerações finais
Eu sei que eu disse que é melhor usar a melhor opção para cada ocasião, mas calma.
Eu imagino que ninguém queira trabalhar como desenvolvedor na rua com fome e desempregado, né? Então use a linguagem que você mais gosta ou prefere.
Não adianta você usar a melhor opção se ela é difícil e você não sabe nada sobre ela, escolha alguma e vá até o final.
Exemplos:
- Angry Birds foi feito com Lua, linguagem interpretada feita aqui no Brasil na PUC-Rio.
- Project Zomboid foi feito com Java.
- Minecraft foi feito com Java.
- Apex Legends é programado em uma linguagem interpretada chamada Squirrel.
- O código de Undertale é horrivel.
- AWS, Cloudflare, etc usam Javascript em seu backend.
Qualquer pessoa que tente refazer o Minecraft em outra linguagem vai ter um jogo muito mais rápido e com um desempenho muito melhor. Você conhece algum "Minecraft mais rápido" famoso? Ou algum "Apex Legends que não seja pesado"? Alguma "AWS mais rápida"?
O que eu estou querendo dizer é: termine o seu projeto, quem vai usar são os clientes e eles não ligam para os 10ms de atraso, o uso alto de RAM ou o código espaguete. Faça algo bom.
[!] Isso é a minha opinião, vocês estão convidados para discutirem sobre isso no post :)
🎮 Tenho mais experiência em jogos, por isso dos exemplos.
🎆 Um feliz ano novo para todos vocês, bora aproveitar ao máximo 2024
Interessante post, mas deixa a deseja em algumas coisas, na minha opinião, as quais irei pontuar aqui:
- Como o @pedrohaveloso já falou em seu comentário, a própria Mojang refez o Minecraft em C++. Podemos argumentar quanto ao quesito bugs, já que com certeza essa versão os tem bem mais, mas definitivamente também possui mais desempenho, o que ainda é uma reclamação constante na edição original. Na sua reposta dada ao comentário, você disse que a versão Java continua sendo a queridinha de comunidade, mas isso é uma visão de dentro da sua bolha. Na realidade, a versão Bedrock é a mais jogada justamente pelo seu porte de C++ conseguir atingir várias plataformas além de PC. Por fim, a razão de parte da comunidade do PC ainda preferir a versão Java, é por ser um público mais antigo e que entende as diferenças entre os jogos, como por exemplo não precisar pagar por um mapa, skin ou mod na loja.
- Sua afirmação em relação à linguagem Squirrel me deixou bem intrigado, então fui dar uma olhada do que se tratava mais afundo. De fato a linguagem é usada no jogo, porém com dois detalhes importantes: (i) a engine do jogo é uma versão modificada da Source, que por sua vez é escrita em C++, o que certamente justifica melhor como um jogo daquele porte seja performático; (ii) a linguagem, apesar de ser interpretada, tem a proposta de "ser uma linguagem de script leve que se encaixe nos requerimentos de tamanho, uso de memória e requisitos de reposta em tempo real de aplicações como jogos" (Squirrel (programming language)), nesse caso ficando claro que não é uma linguagem de script qualquer, e sim uma com foco justamente para o que está sendo trata.
- Por favor, colocar um link de onde foi retirada tal informação quando estiver escrevendo alguma coisa.
Quanto ao resto do exemplos dados, não tenho proficiência para falar e também não tenho interesse de pesquisar, por isso não possuem comentários.
Claro, entendo seu ponto de apenas escolher uma linguagem, independente de qual, e fazer o trabalho, o que definitivamente é válido para quem programa por hobby ou é iniciante, e busco aqui somente elencar alguns pontos a serem analisados.
Por último, o que eu tenho a dizer ao que imagino que seja o público alvo do post (programador por hobby ou iniciante): se já possuem alguma visão de que carreira quer seguir na área de tecnologia, busque entender quais ferramentas e linguagens são utilizadas e as aprenda. Se você quer ir para área de embarcados, por exemplo, não ache que você conseguirá ficar muito tempo fazendo coisas em JavaScript e Python, e evitando programar tendo que gerenciar memória em C/C++/Assembly, porque não é sempre que você vai ter um hardware suficientemente poderoso para rodar um sistema operacional e interpretar seu código. Se quiser ir para a área de áudio ou gráfica, provavelmente terá que usar C ou C++. Se quiser ir para web front-end, tem que saber JS/TS e ponto. O mundo de programação é enorme e com certeza não consigo citar todas as possibilidades aqui, por isso: pesquisem, tenham foco e estudem constantemente.
Interessante seu artigo! Não possuo vasto conhecimento em linguagens de programação mas estou estudando análise e projeto de algoritmos com Python na faculdade (Métodos de busca e ordenação como merge, quick, bubble sort e etc) e Java através de curso livre com a Loiane Groner. Pretendo criar uma base em POO através do Java e depois talvez partir pro JavaScript com Nodejs por me parecer mais "hypado" no meio profissional pra java junior.
Sinceramente não existe linguaguem melhor que outra(embora tem umas que podiam ser melhores kk) cada uma tem seu objetivo é claro tecnicamente existem 2 ou 3 que cumprem o mesmo objetivo e uma é melhor da outra mas támbem tem que analisar se você quer grande perfomace com low-code, ou baixa perfomace com hight-code etc
Gostei do "Podem me chamar de Nigro", eu não te chamaria de nenhuma outra forma, afinal esse é seu nick e eu não sei seu nome.
Qualquer pessoa que tente refazer o Minecraft em outra linguagem vai ter um jogo muito mais rápido e com um desempenho muito melhor.
A própria Mojang/Microsoft fez: o Bedrock Edition, construído em C++.
Se comparado com a versão Java, no computador, é absurdamente mais performático.