miércoles, 8 de junio de 2011

Scala, el lenguaje que va a dar de qué hablar

Ayer hice algo "estúpidamente interesante". Este año asistiré al CampusParty Colombia, (#cpco4) junto con bastantes personas de la universidad, y la verdad, no puedo estar más emocionado con el asunto. Llevo ahorrando desde inicios del año para eso, y definitivamente no pienso solo ir en "plan turista", por eso me inscribí para participar en el #BarCamp que se hará allí mismo; el titulo de la desconferencia que voy a dar se titula "El lenguaje Scala... porque hay vida después de Java" jajajaja!, si, Java no está muerto, pero es un lenguaje al que se le está notando la vejes.

Qué es Scala
Scala es un lenguaje de programación que apareció en el 2003, Orientado a Objetos (más que Java incluso, aunque en principio no lo parezca), y Funcional (es decir, con toques de los lenguajes declarativos). Aunque esta mezcla suene "efervescente" y hasta dañina, en la practica se ha visto que la combinación da buenos resultados, como es el caso de Python.
Sin embargo, compararlo con Python está mal, ya que ni siquiera le ha influenciado (Java, Pizza, Haskell, Erlang, Standard ML, Objective Caml, Smalltalk y Scheme, si lo han hecho xD ). Realmente, con solo conocer sus influencias, algunos se asustarán, pero viéndolo desde la otra cara de la moneda, hay que ser sinceros: Java en verdad es un lenguaje feo. No digo que no sea útil, ni que sea un mal lenguaje, pero si se ha quedado en una posición tan estricta con su cantidad de sintaxis, que muchos le tenemos pereza a escribir en él.
De nuevo mirando a los ancestros de Scala (interpretese "ancestros" como los ancianos de antaño, llenos de cualidades y conocimientos que los jóvenes ansían alcanzar), cada uno tiene cosas particulares que lo hace útil en su campo de acción. Puede que no sean los más populares, pero hay cosas que simplemente es mejor hacerlas en ellos para no quebrarnos la cabeza. Además como plus... Scala es más elegante de escribir que Java :)

¿Porqué dar una desconferencia sobre Scala?
Bueno... Scala es un buen lenguaje de programación, quizás no muy intuitivo para mentes no "funcionales" (o.o  de lenguajes funcionales jajaja), pero que definitivamente ha probado su utilidad en el campo de batalla: Twitter y Foursquare son dos servicios web escritos en Scala. El primero es archi-conocido, y de hecho, desde que pasaron parte de su sistema a Scala la cantidad de caídas en el sistema ha menguado considerablemente, la famosa "ballena de la muerte"(link) ya no se ve tan a menudo como antes. Por otro lado, Foursquare no es tan conocido por estos lugares (más que todo porque los dispositivos con localización no son tan difundidos por lo costosos), pero según sus desarrolladores, el sistema les ocupa solo 14000 lineas de código... eso es un proyecto lo suficientemente pequeño para ser mantenido por un equipo pequeño de desarrollo, pensando además lo complejo que sería de mantener en otro lenguaje.

Por eso y más, la gente debería conocer Scala. Poco a poco va tomando fuerza de la mano de bibliotecas y Frameworks que se van creando con él. Dos ejemplos que puedo dar son Lift, un framework web inspirado en Django, Ruby on Rails, y otros frameworks no tan conocidos, que se jacta de ser "el más seguro hoy en día"... por algo será. El otro es Akka, una biblioteca para sistemas críticos concurrentes, más general que Lift, y que coloca en bandeja de plata la facilidad de crear este tipo de sistemas de forma fácil y mantenible.

Hay mucho más que comentar sobre Scala... su propio diseño y arquitectura son bastante interesantes, pero... eso lo escribiré después, aunque seguro lo escucharán en la desconferencia ;D

¡¡Nos veremos en el #BarCamp!! (si es que algún amigo mio graba mi conferencia y la pongo por aquí :P )

3 comentarios:

Rafael Poveda dijo...

Hola

Esta muy interesante tu entrada la verdad jamas habia escuchado hablar de este lenguaje. Escuchar de una lenguaje que no conocia me hace pensar en una cuestión y me gustaria conocer tu opinion. Desde que tuve mi primer acercamiento a la programación por alla en el 2003 con visual basic siempre estuve en la busqueda de un lenguaje q por encima de todo me hiciera feliz cuando programaba (utopico, no?). Y la verdad lo encontre todo en python pero viene el gran problema de que es un lenguaje no muy conocido aqui en Colombia por lo que existe muy poca salidad laboral. Cuando se busca trabajo en esto siempre es lo mismo .Net y java. ¿Cual seria tu concejo respecto a esto?.. Rendirse frente a la veleta de la demanda laboral ya aprender java o ¿mirar estas novedosas herramientas y promocionarlas?

Saludos

Rafael Poveda dijo...

Otra cosa... ¿¿Scala o Goo??

C Daniel S dijo...

Eso siempre será un problema. Uno no puede controlar el mercado, el simplemente va fluyendo según como va evolucionando la cantidad de ofertantes y demandantes...
Lo que si, es que como profesionales tampoco es bueno dejarse ahogar solo por el mercado (eso se le puede dejar a los del Sena ^^ ), porque eso ahoga la innovación.

Y sobre ¿Scala o Go?... jajaja, es como preguntar "¿Python o Ruby?", depende de lo que se quiera hacer. Igual, Go sigue evolucionando y su biblioteca no es tan probada como si lo es la de la JVM.