Você precisa conhecer Java antes de experimentar o Scala

15

Estou interessado em aprender Scala. Eu tenho lido muito sobre isso, mas muitas pessoas o valorizam porque tem um modelo de ator que é melhor para simultaneidade, ele lida com xml de uma maneira muito melhor, resolve o problema das funções de primeira classe.

Minha pergunta é: você precisa conhecer Java para entender / apreciar a maneira como as coisas funcionam no Scala? É melhor primeiro experimentar o Java e, em seguida, experimentar o Scala ou você pode iniciar o Scala com absolutamente nenhum Java backround?

gizgok
fonte
5
Você precisa de um biface para apreciar como as serras funcionam? : D
back2dos
lol, gostaria de votar esta resposta.
Gizgok

Respostas:

17

Scala é seu próprio idioma e, por si só, não requer conhecimento de nenhum idioma existente. Se você quisesse, poderia aprender Scala como sua primeira língua. Na página Learning Scala do site , há pontos de entrada para o tutorial para diferentes níveis de experiência, variando de programadores iniciantes a pesquisadores de linguagem de programação e especialistas em programação funcional.

Infelizmente, a maior parte da documentação é focada em pessoas que sabem como programar, mas na verdade eu trabalhei em alguns dos tutoriais do Scala. Não é tão ruim. Espera-se que você entenda certos conceitos básicos.

Thomas Owens
fonte
4
Thomas está completamente correto. Eu só quero acrescentar que parte do apelo do Scala é que você pode reutilizar toda a grande biblioteca padrão de Java. Isso pode ou não ser importante no seu caso, mas, se for, a experiência anterior com Java obviamente será muito útil, porque você não pode deixar de aprender muito sobre a biblioteca padrão.
Kilian Foth
@Kilian eu pensei sobre isso. Ainda estou aprendendo o Scala e ainda não fiz nada significativo com ele, mas não tenho certeza de quão importante é conhecer o Java para poder usar uma biblioteca Java no Scala. Não é como você usar a sintaxe / estilo Java para chamar um JAR pré-compilado do Scala.
Thomas Owens
1
Para praticamente todas as plataformas modernas, leva muito mais tempo para aprender a biblioteca padrão do que para aprender a sintaxe da linguagem. Portanto, há um benefício em conhecer as bibliotecas Java se você estiver tentando aprender o Scala.
Jeremy
16

Java significa duas coisas diferentes:

  1. a linguagem Java - isso inclui a linguagem, com sintaxe, regras, recursos e semântica geral
  2. a plataforma Java - isso inclui o tempo de execução (JVM), toda a biblioteca padrão e várias estruturas / bibliotecas populares. Observe que também existem outros "tempos de execução" do Java, como ser executado como JavaScript após compilação cruzada pelo GWT ou Java no Android, que também é executado em um tempo de execução diferente

A linguagem Java e o Scala são executados na mesma plataforma. O AFAIK Scala pode chamar o código Java com bastante facilidade; portanto, se houver algum interesse real em aprender Java a entender / alavancar o Scala, é para entender como isso funciona e como você pode usar melhor o código Java em um aplicativo Scala. Como uma linguagem, é improvável que Java ensine qualquer coisa que o C # não tenha ensinado até agora (presumi que no seu perfil você tenha alguma experiência em C #).

A analogia .NET desta pergunta seria:

Você precisa conhecer o C # / VB.NET antes de tentar o F #?

Em ambos os casos, a resposta é um firme "não".

back2dos
fonte