Cuando Java, lanzado en mayo de 1995 por Sun Microsystem, incursiono en la escena de programación, se presentó con algunas buenas ideas, como una plataforma de programación independiente, el garbage collector automático y la orientación a objetos. Java hizo que la Orientación a Objetos fuera fácil para los desarrolladores, comparado con C7C++, y fue rápidamente adoptado por la industria.
Con el tiempo Java se convirtió en un lenguaje hinchado. Cada nueva funcionalidad que se agregó al lenguaje finalmente es código de más para los programadores; incluso los programas más sencillos está lleno de anotaciones, plantillas e información del tipo. Los programadores Java están buscando constantemente como incrementar la productividad utilizando librerías y otras herramientas. ¿Es esta la respuesta?
1.- Scala mejora la productividad
Agregar librerías y herramientas para resolver el problema de productividad, en ocasiones no ayuda, agrega complejidad a la aplicación y reduce la productividad. Esto no implica que no deban utilizar librerías, debe utilizar aquellas que tienen sentido. Pero, si tiene un lenguaje construido sobre las ideas de flexibilidad, extensibilidad y escalabilidad, el lenguaje puede crecer con usted.
Las necesidades de los desarrolladores hoy son diferente a las necesidades pasadas. En el mundo de la web 2.0 y el desarrollo ágil, la flexibilidad y la extensibilidad en el entorno de programación son importantes. Si usted es del mundo Java, Scala es este nuevo lenguaje.
2.- Scala hace más con menos
Para observar las ventajas de Scala, hay que entrar en el código. A continuación presentamos un simple ejemplo de búsqueda en Java y Scala. Presentamos el código en Java:
1 2 3 4 5 6 7 | boolean hasUpperCase = false; for ( int i = 0; i < name.length(); i++ ){ if ( Character.isUpperCase(name.charAt(i) ) { hasUpperCase = true; break; } } |
En el código en Java, interactúa con cada letra a fin de verificar quién es mayúscula. Si es mayúscula, da el valor de verdadero a la varibale hasUpperCase y sale del bucle for. Ahora veamos cómo es en Scala:
1 | val hasUpperCase = name.exists(_.isUpper) |
Como observa en Scala se puede resolver con una sola línea de código. En el caso de Scala con el uso de una función exists se resuelve el problema que en Java requiere muchas líneas de código.
Otro ejemplo es la creación de una clase, en Java seria de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 | public class Programmer { private String name; private String language: public String getName(){ return name; } public void setName(String name){ this.name = name; } } |
Este es una simple clase POJO con dos propiedades. En Scala se puede crear algo similar con el siguiente código:
1 | class Programmer (var name: String, var language: String ) |
El compilador utiliza la palabra var y genera los respectivos métodos get y set por cada atributo.
Estas son algunos ejemplos de cómo Scala ayuda en la productividad del desarrollo de código. El artículo es parte del libro Scala in Action.