Cómo aprender Scala con Scala Exercises. Entrevistamos a 47 Degrees

Cuando alguien piensa en una compañía amante de la programación funcional por norma general, y de Scala particularmente, es muy simple que se nos cruce por la psique cuarenta y siete Degrees.

Una compañía que nació a mitad de camino entre Cádiz y Seattle, y que hoy se ha transformado por mérito propio en uno de los mayores exponentes del software libre y de la evangelización del paradigma funcional sobre la JVM.

cuarenta y siete Degrees ha participado en acontecimientos tan esenciales como el Typelevel Summit en Philadelphia mas, si algo les caracteriza, es la organización de acontecimientos de talla mundial en la fantástica urbe de Cádiz.

Tras 2 ediciones del Lambda World, ya calientan motores para la del año vigente dos mil diecisiete, que vamos a poder gozar el veintiseis y veintisiete de octubre.

Mas esta vez les hemos pedido que nos charlen de de qué manera aprender Scala merced a una herramienta de y también-learning libre que han desarrollado: los Scala Exercises.

¿Por qué razón cuarenta y siete Degrees ha apostado por Scala?

Es una serie de factores que se alinearon en un instante específicamente.

Una compañía que se ha transformado por mérito propio en uno de los mayores exponentes del software libre y del paradigma funcional

A nivel empresarial, siempre y en todo momento nos hemos considerado como una compañía enfocada a nichos. Comenzamos a desarrollar para móvil cuando Android solo era una beta y vimos como poquito a poco el ámbito del desarrollo móvil se comenzaba a colapsar, conque procuramos otro nicho en el que ubicarnos.

Scala es un lenguaje empleado por empresas que tienen necesidades muy detallas (sobre todo orientadas a dar salida al tratamiento de grandes cantidades de datos), con lo que, nuestro nicho y objetivo de clientes del servicio esta muy centrado.

A nivel tecnológico, llevábamos bastante tiempo desarrollando en Java y nos dimos cuenta que exactamente el mismo lenguaje (y mismos) precisábamos una evolución. De ahí que que procuramos un cambio de paradigma, algo que se adaptara tanto a nuestra forma de meditar como a nuestro comprensión de como deberían ser los lenguajes de programación.

De ahí que, que apostamos por la programación funcional y con el lenguaje Scala, que te deja una transición afable desde Java, puesto que marcha en la JVM y deja convivir con ese lenguaje.

¿Qué ventajas le veis sobre el resto de lenguajes?

Trabajamos en el planeta del software desde hace ya tiempo y hemos aprendido lo bastante para saber que no hay mejores lenguajes, si no, lenguajes que se amoldan mejor que otros a tus necesidades o bien las necesidades de tu proyecto.

Nosotros usamos y catequizamos sobre Scala pues pensamos que tanto la comunidad como esa tecnología esta alineada con nuestros intereses.

¿Cuál es la mejor manera de aprender Scala desde cero?

Una de las unas partes de la compañía en donde invertimos más tiempo y esmero es en el desarrollo de Open Source y en la evangelización del lenguaje.

En nuestra página de proyectos Open Source puedes acceder a más de cien repositorios de diferente tipología y puedes usar para poder ver de qué forma aplicamos ese lenguaje a diferentes proyectos, librerías o bien plataformas.

Uno de esos proyectos, en verdad, es una plataforma de y también-learning basada en ejercicios, llamada Scala Exercises, donde puedes aprender como desarrollar en Scala y sobre librerías del ecosistema.

¿De qué forma brotó la idea de los Scala Exercises?

Como muchos de los proyectos Open Source, parte en un inicio de una necesidad. Debido al carácter joven del lenguaje (sobre todo en los principios, en tanto que llevamos en Scala 4 años), en cuarenta y siete Degrees efectuamos capacitación y trainings a nuestro equipo.

Una parte de esa capacitación que hacíamos en el principio, era trabajar en los Scala Koans (una colección de lecciones y ejercicios que comienzan en un nivel básico y poquito a poco van acrecentando de complicad).

Uno de los miembros del equipo, Rafa Paradela, se percató de que el potencial de estos ejercicios era automatizarlo, gamificarlo y darle un componente social. De esa forma, exactamente la misma comunidad podría retroalimentarse y crear un proyecto vivo y en evolución.

¿De qué forma lo hicisteis realidad? ¿Quién participó en su desarrollo?

Nuestra política con proyectos Open Source de este género es que, si deseas proponer tu idea juntamente con cuarenta y siete Degrees, apoyamos, financiamos y hacemos todo lo que resulta posible para hacerla realidad.

Vimos que lo que nos proponía Rafa, no solo era algo que precisábamos, era algo con potencial que podía asistir a bastante gente de la comunidad, de ahí que, decidimos invertir muchos sacrificios en ello.

En los años de evolución del proyecto, ha participado en Scala Exercises la práctica totalidad del equipo de las 3 oficinas.

¿Cuál ha sido vuestra experiencia, qué habéis aprendido de todo esto?

Era algo con potencial que podía asistir a bastante gente de la comunidad, de ahí que, decidimos invertir muchos sacrificios en ello

Scala Exercises nos ha dado mucho más de lo que aguardábamos. Por una parte, lo proseguimos usando activamente para nuestras formaciones, mas por otro, la comunidad lo ha transformado en una pieza clave en el ecosistema Scala.

Es un caso práctico de de qué manera una idea, si la propones Open Source y la desarrollas para y por la comunidad, puede hacerte medrar como empresa en muchos aspectos.

¿De qué forma ha sido la aceptación de la comunidad?

La primera versión de Scala Exercises era una plataforma web que validaba los ejercicios basados en los Koans a través de Javascript.

En cambio, con la segunda versión, procuramos solucionar uno de los muros más bastante difíciles que se hallaban las personas que deseaban aprender el lenguaje por vez primera. Instalar el ambiente preciso para poder recopilar por vez primera (IDE, SBT, Scala, etcétera).

Es un caso práctico de de qué manera una idea, si la propones Open Source y la desarrollas para y por la comunidad, puede hacerte medrar como empresa en muchos aspectos.

Trabajamos duro para hacer una plataforma que dejara embeber un compilador real en Scala Exercises, de esa forma, los ejercicios que vas efectuando, no solo se validan, si no que se compilan.

La comunidad reaccionó realmente bien en la primera versión, mas fue en la segunda cuando la comunidad valoró todo el trabajo invertido. En nuestros días Scala Exercises es parte integrante de las guías oficiales de Scala, en GitHub tenemos más de novecientos estrellas y doscientos dieciocho forks y cada vez existen más librerías que emplean Scala Exercises como forma de evangelización y aprendizaje.

¿Cualquiera puede cooperar agregando ejercicios?

Si. La plataforma esta viva y cualquiera puede enviar un Pull Request al repositorio para incorporar o bien alterar ejercicios de los paquetes actuales.

Es más, una de las posibilidades que agregamos a la V2 de Scala Exercises, es que cualquiera puede agregar un paquete de ejercicios. De esa forma, si tienes una librería basada en Scala, puedes usar Scala Exercises para agregar una serie de ejercicios que sirvan a los desarrolladores para comprender como incorporarla.

¿Aconsejáis la experiencia a otras personas a fin de que hagan lo mismo con otros lenguajes?

Indudablemente. Exactamente los mismos lenguajes deberían tener como prioridad, trabajar a fin de que la curva de aprendizaje sea lo menos compleja posible. De ahí que, Scala Exercises es una enorme herramienta, deja iniciar desde cero y tener una valoración anterior ya antes de lanzarte a la piscina con el desarrollo del lenguaje.