Guia: Qual linguagem escolher e porque?
Olá, pessoal! A maioria dos posts aqui no Tabnews estão relacionados a esse tema, então gostaria de dar meus 20 centavos e jogar um pouco de sal nessa conversa, que acredito não ter qualquer benefício.
O que eu quero dizer com isso? Se você é júnior ou vai começar a aprender agora, não faz diferença para você qual linguagem você vai começar. E isso basicamente porque, quando você sabe pouco ou quase nada sobre uma linguagem, você vai precisar pesquisar no Google o tempo todo. Então, sua primeira linguagem não precisa ser a linguagem que você efetivamente vai encontrar um trabalho mais fácil, ou é a "melhor linguagem" do mercado.
Cada pessoa tem um objetivo diferente, e aprende de uma forma diferente. Eu, por exemplo, comecei a programar com Pascal e Portugol, mas a maioria das faculdades na época ensinavam C e Java. Hoje em dia, Python e C# também são bem comuns. E o que isso quer dizer? Didática. Cada linguagem tem seus prós e contras de utilizar, e dependendo de como você vai aprender, seu leque de opções vai ser maior ou menor.
Eu tenho 14 anos de experiência, já trabalhei para a AWS e hoje sou Tech Lead em um banco americano, e ainda não encontrei um projeto que não fosse possível de executar em várias linguagens diferentes. Projetos grandes e pequenos que a linguagem foi escolhida pelo simples fato do programador que estava iniciando o projeto gostar mais.
Muitas vezes, os devs tentam convencer os outros de que "sua" linguagem ou framework é melhor que o outro por motivos subjetivos que só fazem sentido para ele. Por que eu usaria React em um projeto pessoal se eu já sei Angular? Se sua resposta não for "para aprender", você não precisa fazer em React só porque alguém te disse para usar. Fazer um projeto em uma tecnologia enquanto você aprende ela é um processo doloroso. Geralmente, você vai aprender os macetes da tecnologia no fim do projeto, e a sensação de insatisfação com o seu trabalho vai ser enorme, fazendo você pensar em refatorar e/ou criar uma v2/v3...
Cada linguagem tem seu pra que e porque:
Javascript nasceu para deixar as paginas web mais dinamicas e com sua evolução os desenvolvedores quiseram trazer seu conhecimento e a facilidade de uso dela para tudo quanto é plataforma, desde Mobile com React-Native/NativeScript até desktop com Electro/NW. Javascript é uma excelente linguagem para "EuQuipes" quando você precisa fazer MVP's ou até mesmo reaproveitar o maximo de código que você puder entre seus projetos.
Java é uma das melhores linguagens até hoje quando se trata de segurança robustes e performance, a JVM proporciona diversas possibilidades aos desenvolvedores e sua vasta utilização deixa sua comunidade sempre engajada e a literatura abundante. Java não é facil de aprender seu paradigma exige muita atenção e dedicação o que vai te tornar um desenvolvedor mais atento a detalhes melhor preparado e sempre em busca de melhorias.
Python é uma linguagem de programação notável pela sua simplicidade e legibilidade, ideal tanto para iniciantes quanto para desenvolvedores experientes. Sua vasta biblioteca padrão e o ecossistema rico em bibliotecas de terceiros abrangem uma gama diversificada de aplicações, incluindo desenvolvimento web, análise de dados, automação e inteligência artificial, com ferramentas como Django, Flask, pandas, TensorFlow e PyTorch. Esta versatilidade, aliada à sua portabilidade em diversos sistemas operacionais, torna Python uma escolha robusta para uma ampla variedade de projetos.
Contudo, Python não é famoso por sua alta performance em velocidade de execução, comparado a linguagens compiladas como C ou Java. Esse ponto pode ser relevante em projetos que necessitam de alta performance em tempo real. No entanto, estratégias como o uso de implementações alternativas (PyPy) e a integração com linguagens de baixo nível podem mitigar essas limitações, mantendo Python como uma opção valiosa e flexível para muitos desenvolvedores e pesquisadores.
PHP é uma linguagem de programação amplamente usada, especialmente conhecida por seu papel no desenvolvimento web. Sua facilidade de integração com HTML e suporte em quase todos os servidores web a torna uma escolha popular para a criação de sites dinâmicos e aplicações web. Com uma curva de aprendizado relativamente baixa e uma vasta comunidade de desenvolvedores, PHP oferece um ponto de partida acessível para muitos programadores entrando no campo do desenvolvimento web. Ótimo para freelance e muito utilizado para sites como WordPress, Joomla e Drupal PHP definitivamente é uma excelente linguagem quando se trata de produtividade. Infelizmente sua imagem ficou muito manchada pela sua falta de consistencia na base de código e diversos problemas relacionados a segurança.
C# ou Java da Microsoft é uma das linguagens mais controversas, ela nasceu em um ecosistema completamente fechado obrigando você a usar Windows Visual Studio (e não estou falando do VSC) usar ISS entre outras porcarias, mas de uns tempos pra ca a Microsoft abriu as portas para o software livre e ela hoje é uma das principais linguagens para o desenvolvimento de games com Unity mas também de aplicações backend devido a sua solidez e robustez.
Essa explicação toda foi só pra mostrar pra você que não existe melhor linguagem, se você quiser ser desenvolvedor de jogos, PHP não vai ser uma boa opção tão pouco Python ou JS você pode até achar formas de usar essas linguagens mas elas nunca vão ser tão boas quanto o C# pra essa finalidade.
Você aprender JS pra entrar no mercado de programação seja porque você está procurando um emprego ou está em transição de carreira pode não ser o melhor negócio, o mercado de programação web está saturado com a quantidade de pessoas que fizeram bootcamp de 6 meses e que saem de lá sabendo fazer clones como ninguem mas que não sabem usar Object.assigm ou qual a diferença entre Map e Array. Na pratica aprender JAVA te daria mais oportunidades porque existem projetos legados que os devs mais experientes não querem trabalhar que você poderia se exforçar para aprender e se inserir no mercado com mais facilidade.
Tabela de linguagens e suas finalidades:
Linguagem | Dificuldade | Aplicações |
---|---|---|
Javascript | Fácil | Web, Mobile, Scripts, Desktop |
Java | Média | Empresarial, Web, Mobile, Desktop |
Python | Fácil | Web, Data Science, IA, Scripts, Automação |
PHP | Fácil | Web, Backend para Sites e Aplicações Web |
C# | Média | Empresarial, Jogos (Unity), Aplicações Desktop |
C++ | Alta | Sistemas Embarcados, Jogos, Software de Alto Desempenho |
C | Média | Sistemas Embarcados, Software de Sistema, Drivers |
Ruby | Fácil | Web (Ruby on Rails), Scripts |
Swift | Média | Aplicações iOS, Desenvolvimento macOS |
Kotlin | Média | Aplicações Android, Desenvolvimento Backend |
Go | Média | Sistemas Distribuídos, Serviços Web, Automação |
Rust | Alta | Sistemas de Alto Desempenho, Desenvolvimento Seguro |
TypeScript | Média | Desenvolvimento Web Front-End e Back-End |
Scala | Alta | Aplicações Web, Processamento de Dados, Sistemas Distribuídos |
Perl | Média | Scripts, Processamento de Texto, Desenvolvimento Web |
R | Média | Estatística, Data Science, Análise de Dados |
Dart | Fácil | Desenvolvimento Mobile (Flutter), Aplicações Web |
Lua | Fácil | Scripts de Jogos, Desenvolvimento de Jogos, Automação |
Objective-C | Média | Desenvolvimento iOS e macOS (Antes do Swift) |
Haskell | Alta | Aplicações Acadêmicas, Pesquisa, Desenvolvimento Funcional |
Se você chegou até aqui a reflexão que eu deixo é que não existe linguagem melhor que a outra, isso é algo que os fanbois usam para inflar seu cargo e dizer o quão melhor a linguagem que ele usa só porque oferece algo que outra linguagem não tem.
No final das contas, se a linguagem pagar seus boletos ela é a melhor linguagem que tem.
Cambio desligo.