¿Necesita saber Java antes de probar Scala?

15

Estoy interesado en aprender Scala. He estado leyendo mucho al respecto, pero mucha gente lo valora porque tiene un modelo de actor que es mejor para la concurrencia, maneja xml de una manera mucho mejor, resuelve el problema de las funciones de primera clase.

Mi pregunta es ¿necesita saber Java para comprender / apreciar la forma en que funcionan las cosas en Scala? ¿Es mejor hacer una puñalada en Java y luego probar Scala o puede comenzar Scala sin ningún tipo de fondo Java?

gizgok
fuente
55
¿Necesita una bifaz para apreciar cómo funcionan las sierras? : D
back2dos
jajaja, votaría esta respuesta.
gizgok

Respuestas:

17

Scala es su propio idioma y, por sí solo, no requiere el conocimiento de ningún idioma existente. Si quisieras, podrías aprender Scala como tu primer idioma. En la página de Learning Scala de su sitio web , hay puntos de entrada al tutorial para diferentes niveles de experiencia, que van desde programadores nuevos hasta investigadores de lenguaje de programación y expertos en programación funcional.

Lamentablemente, la mayor parte de la documentación está enfocada en personas que saben programar, pero en realidad he trabajado con algunos de los tutoriales de Scala. No está tan mal. Sin embargo, se espera que comprenda ciertos conceptos básicos.

Thomas Owens
fuente
44
Thomas tiene toda la razón. Solo quiero agregar que parte del atractivo de Scala es que puede reutilizar toda la gran biblioteca estándar de Java. Eso puede o no ser importante en su caso, pero si lo es, entonces la experiencia previa con Java obviamente será muy útil, porque no puede evitar haber aprendido mucho sobre la biblioteca estándar.
Kilian Foth
@Kilian pensé en eso. Todavía estoy aprendiendo Scala y todavía no he hecho nada significativo con él, pero no estoy seguro de cuán importante es saber Java para poder usar una biblioteca Java en Scala. No es como ingresar a la sintaxis / estilo Java para llamar a un JAR precompilado desde Scala.
Thomas Owens
1
Para casi todas las plataformas modernas, lleva mucho más tiempo aprender la biblioteca estándar que aprender la sintaxis del idioma. Por lo tanto, es beneficioso conocer las bibliotecas de Java si está tratando de aprender Scala.
Jeremy
16

Java significa dos cosas diferentes:

  1. El lenguaje Java: esto incluye el lenguaje, con su sintaxis, reglas, características y semántica general
  2. la plataforma Java: esto incluye el tiempo de ejecución (JVM), toda la biblioteca estándar y una serie de marcos / bibliotecas populares. Tenga en cuenta que también hay otros "tiempos de ejecución" de Java, como ser ejecutados como JavaScript después de la compilación cruzada a través de GWT, o Java en Android, que también se ejecuta en un tiempo de ejecución diferente

El lenguaje Java y Scala se ejecutan en la misma plataforma. AFAIK Scala puede llamar al código Java con bastante facilidad, por lo que si hay algún interés real en aprender Java para entender / aprovechar Scala, entonces es entender cómo funciona esto y cómo puede usar mejor el código Java desde una aplicación Scala. Como lenguaje, es poco probable que Java te enseñe algo que C # no te hubiera enseñado por ahora (supuse por tu perfil que tienes algo de experiencia en C #).

La analogía .NET de esta pregunta sería:

¿Necesita saber C # / VB.NET antes de intentar F #?

En cualquier caso, la respuesta es un "no" bastante firme .

back2dos
fuente