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

Eu acho que a opinião do @Silva97 e do @jooojano são válidas. Vou ver se consigo agregar algo. Ou complicar.

Sim, a teoria é importante. Vejamos um caso simples:

Python se baseou em ABC e Icon (entre outras). Acho a endentação de ABC muito interessante por evitar um monte de pontuação que é necessária apenas para o compilador/interpretador ficar mais fácil de programar. Os generators são de Icon, mas muito menos poderosos. Qual o problema? A sintaxe de Icon é derivada do ALGOL (como grande parte das linguagens) mas em cima do conceito de sucesso e falha (derivada de SNOBOL que é do mesmo autor de Icon). Por exemplo:

procedure main(args)
  every write("Oi ",!args,". Coo você está?")
end

Sintaticamente parece um C+Pascal sem pontuação desnecessária. O !args retorna cada argumento passado para o comando e falhando quando não tiver mais. Mais ou menos como um try ... except ...end. Em outras linguagens necessitaria de um loop do estilo for a in args.Mas Icon também permite outras coisas como:

procedure main()
  c := 5
  if (soma := c + 1) > 5 then write("soma > 5")
  write("soma = ",soma)
end

Motivo de eu ter escrito tudo isto? Achei que fica claro que a sintaxe é apenas um aspecto e, mesmo sendo parecida, a semântica é totalmente diferente. Python teve que criar o Walrus Operator para lidar com uma situação que Icon é corriqueira. Expressões como if 9 > 5 > 3 then ou if (x | y) > (3 | 4) then fazem todo o sentido em Icon mas não em outras linguagens. Verse, a linguagem planejada para o metaverso , claramente se baseia nesse paradigma (mesmo que o Simon Peyton Jones tenha enrrolado no vídeo). Mas esquece Icon. O autor pediu que não fizessem alterações após a morte e, como ele já faleceu...). Mas tem Unicon que continua em desenvolvimento (lento por causa da comunidade pequena).

Por outro lado, a comunidade tem muita influência na adoção de novas linguagens. Algumas ruins. Como a maioria das linguagens são de uso geral e abertas, o pessoal fica pedindo um monte de coisas e o pessoal aceita algumas para não ficar atras do concorrente Y. Aí podem dizer: A minha também faz ou faz em uma linha e a tua precisa de 5. E parece que é tudo acadêmico e não vivem no mundo real. A grande maioria das linguagens possuem matrizes que iniciam em zero. Não vejo ninguém falando o contrário. Só é bom para o cara que faz o compilador. No mundo real deveria ser arbitrária. Pascal (e algumas outras) implementaram de forma mais correta. Preciso do comportamento de um material entre -10°C e 45°C. Em Pascal seria array [-10 .. 45]. Sem nenhum cálculo idiota no meu programa ou a necessidade de algum comentário para informar que condicao[3] = -7°C ou escrever temperatura += 10. Já existem trocentas linguagens mas vem alguém e resolve criar uma nova (sei lá se para aparecer ou por desconhecimento mesmo) que substituirá todas as antigas (Carbon?).

De qualquer forma, acho interessante aprender, mesmo que superficialmente, alguma linguagem de outro paradigma (se o cara tiver tempo já que vai aprender Java, React, CSS, HTML, framework tal, etc.).

Já que escolheste Java, acho que poderias dar uma olhadinha em Clojure (procura por Clojure e Nubank que deve vir resultados). Vais ter algo bem diferente sem sair da JVM e até podes usar profissionalmente (se permitirem ).

Só para citar um link que acho interessante, é o Beating the Averages, principalmente o tópico The Blub Paradox.

Carregando publicação patrocinada...