Java, Python ou Javascript?

A dúvida que fica martelando na cabeça da maioria das pessoas que estão iniciando a carreira como programador é: Que linguagem de programação eu devo aprender?

Se você está se perguntando isso, a minha resposta sempre será um conjunto de perguntas de volta pra você, por exemplo:

  • Qual o objetivo que você pretende alcançar?
  • Você está querendo aprender uma nova linguagem pra quê?
  • Você está querendo aprender uma nova linguagem pra conseguir um emprego?
  • Você já sabe programar em alguma linguagem?
  • Você sabe o mínimo de lógica de programação?
  • Você quer criar aplicativos para Smartphones?
  • Você quer criar aplicativos para SmartTVs?
  • Você quer desenvolver sistemas para a Web?
  • Você quer criar sistemas embarcados?
  • Você quer fazer macros no excel?
  • Você quer trabalhar com Machine Learning, BigData, Mineração de dados, Ciência de Dados, Business Inteligence, Inteligência Artificial, Inteligência Computacional, Machine Intelligence (esse eu aprendi mês passado), ou <Insira aqui o nome modinha que surgiu depois que este post foi publicado>?

Enfim, nenhuma linguagem resolve todos os problemas da humanidade. Então é muito importante você definir o que pretender alcançar, para aí sim, decidir a linguagem de programação que você deve aprender.

Se você não sabe nada de programação e está fazendo essa pergunta, leia este post que escrevi em 2013, mas continua atual:

>> Quer aprender programação? Saiba qual a melhor linguagem!

Mas várias linguagens resolvem o meu problema

E se você já sabe um mínimo de programação e mesmo depois do que eu falei acima você ainda está na dúvida, pois duas ou mais linguagens servem para o que você quer fazer, continue lendo...

O mundo do desenvolvimento de softwares é interessante justamente por possibilitar que a mesma coisa seja feita de várias formas diferentes, mas as bases são sempre as mesmas.

Desde um simples algorítmo onde você pode resolver um problema com um loop ou com uma função recursiva, até os infinitos frameworks para frontend de aplicações web/mobile, quase sempre tem mais de um jeito de resolver o mesmo problema, inclusive quase sempre é possível utilizar mais de uma linguagem de programação.

Java, Python ou Javascript

E isso acaba causando muita discussão por aí. Dá até briga ...

Java é melhor que C#! Python é muito mais fácil! Javascript está em todo lugar! Faço isso em 2 minutos com Ruby! C, C++ é muito mais rápido! 70%-80% dos sites do mundo são feitos com PHP, conhece Wordpress? Quem disse que tenho que saber lógica pra programar em Lisp? Etc, etc, etc.

Esse é o tipo de discussão que não vale a pena ficar dando scroll nos comentários pois a maioria não sabe o que está falando.

No fundo, o que você precisa fazer pra escolher a sua próxima linguagem de programação ou framework predileto é analisar qual tem mais suporte.

E quando digo suporte não me refiro a ter uma "grande" empresa por trás. Muitas linguagens/frameworks por aí são opensource e não tem "dono", é da comunidade.

Mas mesmo assim é importante você observar se tem suporte, muitas linguagens/frameworks independentemente se tinham grandes empresas ou a "comunidade" por trás, não vingaram. Por que?

Pessoas se agrupam

As pessoas usam o que a maioria usa e se você for da área de marketing deve perceber aqui o clássico princípio da prova social: a cafeteria mais cheia deve ser a melhor ;).

Se esta linguagem/framework/tecnologia tem muita gente usando deve ser a/o melhor...

E com muitas pessoas utilizando um mesmo produto, mais prova social. Isso vira uma grande bola de neve. Forma-se uma comunidade e como consequência a linguagem/framework melhora.

Se no passado era bom e agora ficou ruim/obsoleto, mas a comundade é grande e boa, a linguagem/framework vai evoluir, mesmo se for difícil.

O Wordpress, por exemplo, tá aí pra provar isso. Tem suporte!

O Wordpress começou a muitos anos atrás com versões antigas do PHP e do MySQL. As tecnologias que suportam o Wordpress evoluíram e o Wordpress se atualizou, "só" porque é o CMS mais utilizado no mundo e que mais impulssionou a criação de blogs e sites na última década.

Se formos falar de linguagens, Java, C#, Javascript, Python, PHP, idem. Todos eles se atualizam de alguma forma. Principalmente porque todos eles têm um bom suporte por trás.

Se pararmos para pensar, as tecnologias do passado são difíceis de se utilizar e as novas são cheias de falhas que as antigas não tem.

Por isso não é tão difícil entender a divergência nas decisões entre o suporte do java e o suporte do python, por exemplo. E no final das contas, nem podemos acusar um ou outro...

A galera do Java se esforça pra manter a compatibilidade com as versões anteriores, enquanto a galera do Python meio que "chutou o balde" entre as versões 2.* e 3.* pra avançar muito mais rápido.

No fundo, a galera do Python confiou que a comunidade vai atualizar suas bibliotecas para evoluir a linguagem.

E não tem nada de errado com nenhum desses dois pensamentos. A pergunta importante que você deve fazer é: Terá suporte?

A galera tá usando o framework [Vue, Embler, Angular, React, blablabla)? Tem(vai ter) suporte?

Dicas de Java, de Python e de Javascript

Nos últimos anos eu trabalhei bastante com Java, Python e Javascript. Também trabalhei com C# durante bastante tempo, mas atualmente não estou muito em contato com esta última.

O fato é que nos últimos 2 meses eu voltei a me dedicar ao { Dicas de Programação }, e enquanto eu estava planejando os próximos conteúdos do blog eu me deparei com um problema.

Acho que seria muito confuso gerar conteúdo sobre várias linguagens de programação, misturando tudo aqui neste blog.

Estou criando conteúdos práticos com dicas sobre estas 3 linguagens, dicas do dia-a-dia, tutoriais de como resolver problemas com estas linguagens.

Misturar todos estes posts aqui no { Dicas de Programação } acabaria por gerar mais confusão do que ajudar a quem está iniciando neste mundo de desenvolvimento de softwares. Então eu comprei 3 domínios:

O objetivo é organizar as coisas e o foco de cada blog.

Você pode estar pensando que isto vai gerar um custo muito maior para mim. O custo a mais é apenas o registro desses 3 domínios. Assim como este blog aqui, manter os outros 3 blogs vai me gerar custo próximo de zero conforme já falei neste post.

E você também pode participar! Se quiser saber como fazer alguma coisa específica nestas linguagens, basta acessar os blogs, clicar no link "Pedir dica!" disponível nos 3 blogs e pedir uma explicação sobre a sua dúvida.

Além disso, você também pode contribuir com os blogs criando guest posts. O código dos blogs estão disponíveis no meu github. Para contribuir, basta fazer um Pull Request lá. ;)

Esta é uma forma que encontrei de contribuir mais com a comunidade e abrir mais as portas para diálogo, troca de conhecimento e suporte à quem precisa.

O que achou da novidade?

Twitter
Google
Facebook
LinkedIn
Email