@Anantha Durante los últimos diez años, la mayoría de las universidades han enseñado a sus alumnos Java como primer idioma. He oído hablar de un número sorprendentemente alto de casos en los que incluso sigue siendo el único idioma que los estudiantes aprenden mientras están en la universidad, a menos que escojan otra cosa por sí mismos, es decir.
Únicamente desde un punto de vista del lenguaje, tres rasgos más característicos de Java son
- es imperativo
- que está orientado a objetos
- que ha recolectado
Características 1 & 2 hacen que sea muy similar a una amplia gama de idiomas de la familia Algol/C y C++. Todos estos lenguajes comparten similitudes en su paradigma o incluso utilizan exactamente lo mismo.
C# por ejemplo, a pesar de sus diferencias sintácticas, Windows como sistema operativo objetivo principal y .NET framework como "biblioteca de clases", es muy fácil de obtener para un programador Java. Esto se debe a que ambos idiomas comparten el mismo paradigma de programación.
Scala, por otro lado, a pesar de que se ejecuta en la JVM, proporcionando una fácil interoperabilidad con las API de Java, es lo que comúnmente se conoce como un lenguaje multi-paradigma. El lenguaje proporciona una integración sintáctica profunda de las características del lenguaje de programación funcional, pero estructura el código de una manera orientada a objetos.
El concepto de programación funcional, especialmente una vez que ingresa en el código más allá de tutoriales triviales, resulta ser difícil para desarrolladores que solo tienen experiencia con lenguajes OO imperativos. Mi experiencia personal al ayudar a otros desarrolladores a ponerse al día con Scala y otros es que es de gran ayuda enseñarles Scheme primero;) Es un dialecto de Lisp agradable, pequeño y limpio. Ayuda a transmitir conceptos funcionales avanzados. Si decides darle una oportunidad, te recomiendo que eches un vistazo a "The Little Schemer" y "The Seasoned Schemer". Una vez que hayas terminado con ambos libros, apuesto a que será más fácil buscar en la sintaxis de Scala y ver sus conceptos con mayor claridad.
En pocas palabras: En mi humilde opinión no es Scala que es dura de aprender, el paradigma de programación funcional es la razón por la mayoría de los desarrolladores, que sólo ha estado expuesto de imperiosas idiomas, teniendo un tiempo difícil conseguir hasta velocidad.
Por favor, proporcione ejemplos de lo que le parezca complejo. –
@Thorbjorn vea esta pregunta http://bit.ly/a5Sqkf –
Esa pregunta es sobre Scalaz. Es una biblioteca muy avanzada que "tiende mucho a Haskell" (como dijo Daniel en otro hilo). No deberías mirarlo en la etapa de principiante. – missingfaktor