¿Es fácil comenzar a utilizar Scala?… That is the question!!!

septiembre 28th, 2010 by Alejandro Leave a reply »

Primero, antes de comenzar para los que no saben que es Scala (en este caso no se como han llegado acá?) les cuento que es un lenguaje que mezcla la programación funcional y la orientada a objetos tratando de brindar lo mejor de ambos paradigmas. Este lenguaje cuenta con su propio compilador “scalac” el cual genera clases Java que pueden ser interpretada por una JVM. Esta particularidad hace que se puedan utilizar todas las librerías existentes en Java así como también utilizar nuestro código dentro de otras aplicaciones Java.

Actualmente mucho se ha escrito y discutido mucho de si Scala es un lenguaje fácil o difícil, simple o complicado. El problema con lo que he leído no es la opinión que se da, sino desde el punto desde el cual se enfoca la pregunta. ¿A que me refiero con esto? A mi entender necesitamos re-formular la pregunta ¿Es fácil para un programador Java aprender Scala? Para poder obtener una respuesta útil. La pregunta que deberíamos hacernos es: ¿Es fácil para un programador Java comenzar a utilizar Scala?

La diferencia entre ambas preguntas es que para comenzar a utilizar un lenguaje no es necesario SABERLO!!! A medida que uno utiliza un lenguaje va aprendiendo sus virtudes y sus trucos y así va mejorando su conocimiento con la practica. Yo pregunto ¿Ustedes estudiaron toda la teoría de Java antes de comenzar o arrancaron utilizándolo poco a poco? ¿Quien no agarra un código propio de sus años de inicio y no se sonroja por las barbaridades que programo? Como docente he visto que a los alumnos se les hace cuesta arriba cuando comienza a utilizar Java y tratan de entender el lenguaje y al mismo tiempo quieren utilizar toda su potencia. Cuando uno habla de todas las funcionalidades que Java tiene puede ver como los ojos se les quedan en blanco tratando de ver como van hacen para dominar “el monstruo”, y ni que hablar si nos encontramos con un grupo que viene de trabajar en C# con Visual Studio. En este caso agarrate catalina que les van a llover las quejas sobre “lo complejo que es Java”.

La mayoría de los artículos opinan sobre si Scala es difícil o fácil?, o si es complejo o simple? pero para poder responder estas preguntas es necesario saber y entender el lenguaje y si tenemos este conocimiento seguramente no nos vamos a estar haciéndonos esta pregunta :) . Lo que le interesa saber a un programador que quiere comenzar a utilizar Scala es:  ¿Es difícil llegar a tener un conocimiento profundo del lenguaje? . La respuesta es OBVIA, claro que SI!!!. Pero esto no es un problema de Scala sino de cualquier lenguaje. No creo que exista un lenguaje de programación que permita que en poco tiempo seamos unos expertos ( y VB no califica como lenguaje ;) ). Todos tienen sus vueltas y nos lleva su tiempo lograr comprender como realmente funcionan y cual es la mejor forma de usarlos, y para rematarla por lo general no hay una única forma de hacer las cosas. Hoy cuando nos hacemos esta pregunta nos encontramos que ya dominamos un lenguaje, un paradigma y nuestra ansiedad hace que queramos comenzar a utilizar ya!!! Scala en todas su potencia. Pero nos olvidamos que para llegar al mismo nivel en este nuevo lenguaje no solo tenemos que aprender una nueva sintaxis y una nueva API sino que también tenemos que dominar un nuevo paradigma… ¿Como alguien puede pretender que esto sea una tarea fácil? No duden que va a ser un camino largo al igual que fue el camino de dominar Java y la programación orientada a objetos.

Ahora si cambiamos la pregunta a ¿Es fácil para un programador Java comenzar a utilizar Scala? La respuesta es un rotundo SI.

¿En que me baso para dar ésta respuesta?

  • Primero en mi experiencia personal :)

  • Segundo Scala tiene la dualidad de ser orientado a Objeto y Funcional, con lo cual se puede comenzar a utilizar orientado a objetos y una vez dominada la sintaxis y las principales API podemos comenzar a aprender los aspectos funcionales del lenguaje.

  • Tercero si bien la sintaxis es diferente a Java en el diseño del lenguaje se ha puesto mucho hincapié en lograr el equilibrio entre eliminar sintaxis innecesaria y crear un código legible. Obviamente como todo lenguaje con un poquito de empeño cualquier programador puede crear código ilegible :), pero no vamos a tener problema si nos mantenemos en las recomendaciones y no intentamos escribir métodos complicados en una sola linea .

  • Cuarto hay mucha información en Internet y fácilmente se puede acceder a libros sobre el lenguaje y la mayoría orientados a programadores Java que quieran utilizar Scala.

  • Por último el tener soporte de las principales IDE como ser Eclipse, NetBeans y IntelliJ con soporte de auto-completado de código hace que el arranque no sea tan tedioso.

Para finalizar los invito leer algunos articulos en la red teniendo presente la pregunta ¿Es fácil para un programador Java comenzar a utilizar Scala?. Yo no voy a escribir código habiendo tan buenos ejemplos, les dejo unos link que hacen un buen trabajo por mi.

http://michid.wordpress.com/2010/08/24/so-scala-is-too-complex/

http://warpedjavaguy.wordpress.com/2010/08/02/the-scala-is-too-complex-conspiracy-1/

http://lamp.epfl.ch/~odersky/blogs/isscalacomplex.html

Saquen sus propias conclusiones y posten su comentario.

Share
Advertisement

4 comments

  1. Germán dice:

    Buenas,

    Me parece muy bien encarar la pregunta de esta forma. Sería muy bueno saber cómo ha sido su experiencia usando Scala en producción (si es que lo han usado).

    Saludos,
    Germán

  2. Germán dice:

    Me olvidaba, si a alguien le interesa hay un grupo de google de usuarios Scala en Uruguay: https://groups.google.com/forum/#!forum/scala-users-group-uruguay

    Saludos,
    Germán

  3. Alejandro dice:

    Germán gracias por el dato del grupo de usuarios, ya me registre.
    Lamentablemente no tenemos experiencia de uso en producción. Por ahora lo hemos utilizado para armar pruebas de concepto.

  4. Jamaal Wong dice:

    La manera más básica o primitiva de interactuar con una base de datos en Java es por medio de JDBC. Esto por supuesto se puede hacer también en Scala, Groovy o cualquier otro lenguaje para la JVM, pero al usar JDBC se tiene que programar en estilo Java por la manera en que fue diseñado.

Deja un comentario