¿Es Scala difícil de aprender como primer lenguaje de programación?

Con los recursos adecuados, es un lenguaje más fácil de aprender desde cero que Java. La sintaxis es más limpia, menos verbosa y más consistente. El problema es encontrar los recursos correctos y la posibilidad de confusión causada por diferentes opiniones sobre cómo se debe usar Scala.

A pesar de mi amor por la programación funcional, no recomendaría que un recién llegado a la programación trate a Scala como un lenguaje de programación funcional. Ninguno de los recursos para Scala de sabor funcional está dirigido a principiantes y no hay consenso sobre el mejor enfoque.

(Francamente, yo recomendaba que el primer idioma de alguien fuera funcional, sugeriría a Haskell o Scheme, no a Scala).

Atomic Scala está dirigido a nuevos programadores y trata a Scala como un lenguaje OO simple. Haber trabajado exitosamente a través de eso, podría ser razonable que alguien se desplace hacia la Programación Funcional en Scala; el libro no asume mucha experiencia en programación. Después de lo cual, el libro estándar de “Programación en Scala” sería el lugar al que ir si desea obtener más información sobre la gama completa de funciones de Scala.

Es una opción inusual para un primer idioma pero no una loca.

Scala no es una mala elección para un primer idioma. No sería mi primera recomendación normalmente, pero si estás interesado en Scala, es un buen comienzo.

Scala tiene un REPL (también conocido como intérprete) que creo que es muy útil para aprender un primer idioma. Es un lenguaje excelente, y puede utilizar los paradigmas funcionales o de programación de objetos de programación (OOP), scripts o funcionales. No es nada si no es flexible.

Haría caso omiso de las recomendaciones para aprender Java primero, simplemente porque Java no es lo que le interesa, y puede hacerlo perfectamente sin Scala. Es similar a si hubieras preguntado sobre Python, y alguien dijo que deberías aprender C primero porque Python está escrito en C. Puedes interesarte en Java mientras aprendes Scala, y es probable que aprendas algo de Java a medida que avanzas , pero no es un requisito previo.

La programación funcional no es terriblemente difícil como dicen otros. Elige un libro como Programación Funcional en Scala. Es solo una manera diferente de pensar y tener la habilidad para resolver problemas de una manera funcional puede diferenciarlo en los próximos años.

El sistema de tipos de Scala es bastante complejo en comparación con los idiomas que uno suele recomendar como primer idioma. Normalmente recomiendo Python primero, que tiene “tipografía de pato” y se da cuenta, más o menos, de qué tipo de variable se basa en el tipo de datos que le asignas. Scala tiene inferencia de tipo, por lo que la mayoría de las veces hace lo mismo con las variables, pero en otros lugares, como las declaraciones de funciones, hay que entrar en detalles sobre los datos de tipo. Esto es realmente una fortaleza en el lenguaje pero un inconveniente potencial para un principiante.

Un amigo mío recientemente trató de aprender Scala porque me gusta mucho, y estaba tan terriblemente frustrado que se dio por vencido. En primer lugar, se invirtió mucho en la programación imperativa y parece que no puede hacer el cambio. Segundo, tenía Scala 2.13, y los tutoriales que encontró fueron para versiones anteriores de Scala. (Así que ten cuidado, la especificación del idioma ha cambiado con el tiempo). Tercero, no quería comprar ningún libro, pero hay algunos libros geniales para Scala que explican las cosas mejor que cualquier tutorial que haya visto.

También tenga en cuenta que los cambios en el Java subyacente pueden requerir cambios de código en Scala. Me encontré con este problema con compañeros de Swing (un par es la clase Java que subyace en la clase Scala). Por lo tanto, a veces un ejemplo de código en Scala no funcionará si su Java subyacente es Java 8 o Java 7 en lugar de Java 6. Este es un problema muy raro en el que se encuentra, tiene que estar haciendo algo “sofisticado”.

No es el primer idioma más fácil de aprender, pero hágalo con confianza. Si tiene problemas, independientemente del tipo de lenguaje que intente a continuación, Scala probablemente le haya brindado experiencia con el paradigma del idioma y su tiempo no se habrá desperdiciado.

Buenos días.

De hecho, me encontré con el mismo dilema y he estado trabajando en el aprendizaje de Scala (encendido y apagado) durante 4 meses y estoy muy feliz con los resultados. Creo firmemente que lo convertirá en un mejor programador. Tenga en cuenta que me interesé principalmente por el ángulo de ingeniería de datos (lea Spark) y vine con conocimientos previos de R / Python / SQL.

Por qué deberías aprender Scala:

  1. Como mencionaron las personas, Scala combina programación imperativa y funcional. Creo que en realidad es una buena opción porque verás ambos mundos (pero tendrás que mantener el ritmo para no sentirte abrumado). Un buen ejercicio que hice fue codificar un algoritmo (por ejemplo, Tree Traversal) usando ambos enfoques
  2. Podrás disfrutar de lenguajes de tipo estadístico, una gran salvaguardia para los programadores. Te enseñará a ser más riguroso con tu código, algo que no disfrutarías en un lenguaje dinámico (por ejemplo, Python)
  3. Personalmente disfruto de las “características avanzadas de lenguaje” que ofrece Scala. Podrá aprenderlos con el tiempo a su propio ritmo y sabrá que el idioma apoyará su crecimiento una vez que llegue el momento. el cielo es el limite
  4. Encontré que el lenguaje es nítido y legible. Como Reese señaló, puede usar el REPL para desglosar las operaciones al principio

Recursos que utilizo:

  1. Programación Funcional en Scala (Clase Coursera). Con mucho, el mejor recurso que hay. Una verdadera maravilla de la enseñanza ( https://www.coursera.org/learn/p …)
  2. Algoritmo y caja de herramientas Coursara pista de especialización. Aprenda practicando sobre cómo crear un algoritmo ( https://www.coursera.org/learn/a …)
  3. La Escuela Scala de Twitter (Escuela Scala): tan buena como una guía práctica

¡Buena suerte!

En realidad, Scala es una mala elección como primer lenguaje de programación, si está interesado en aprender a resolver problemas de programación. Es una excelente opción como primer lenguaje de programación si desea comprender los estilos imperativos, orientados a objetos y funcionales de la programación en el mismo lenguaje. Es una mala elección como primer lenguaje de programación en general, porque es demasiado complejo para los principiantes que intentan comprender lo esencial y lo básico de la programación y ver el código en acción. Recomendaría un lenguaje de escritura dinámica más simple, como Python como primer lenguaje de programación.

No lo creo.
En primer lugar, todas las lenguas parecen difíciles. Mientras estás aprendiendo, gradualmente se vuelve más fácil.
Scala no es un lenguaje difícil.
Puedes aprender Scala como primer lenguaje de programación.

No es difícil si evitas algunas de las características exotéricas. Hay muchas maneras de hacer lo mismo en Scala. Con suerte, tu código se volverá más conciso a medida que aprendas.