La primera vez que vimos a Raúl Raja en acción fue en la Software Craftsmanship Pamplona de 2016. Hizo una presentación de introducción a la programación funcional a base de ejemplos que ilustraban perfectamente el potencial que se esconde detrás de este paradigma, y de una forma fácil de seguir para que la curva de entrada fuera asequible. Con un discurso calmado pero contundente y que demostraba mucho trabajo y tiempo "en las trincheras" detrás. Desde entonces teníamos ganas de tener la oportunidad de sentarnos a charlar con él y darle voz en nuestra serie de entrevistas a desarrolladores. Raúl Raja es el actual responsable técnico de 47 Degrees. Una empresa que ha puesto Cádiz en el mapa de la programación funcional y no para de publicar librerías de código abierto con una calidad y aportando un valor excepcional al ecosistema conjuntamente con charlas que, como la de Pamplona, son oro puro 👌. En la LambdaWorld tuvimos la oportunidad de hablar con él y la verdad es que da gusto escuchar su opinión al respecto del sector.
Sin más, os dejamos el vídeo de la entrevista y un desglose de los temas tratados. Si queréis seguir más de cerca a Raúl, raulraja es su Twitter 😬
Desglose de la entrevista
1:30 Primeros contactos con la informática
- 18 años: Por aquel entonces… Parque, litronas, lo típico 😂
- Me interesaba la programación pero lo hacía por puro amor, no era interés profesional
- Estudié magisterio de música hasta el último año
- Cuando quise estudiar informática en la universidad no me dejaron porque había escogido letras
- Me fui a América con mi mujer a estudiar. Inglés sabía de las canciones de Nirvana y poco más
- Para poder financiar los estudios estuve trabajando remotamente para empresas de España
4:24 Trabajando para Boing ✈️
- Trabajar para una aerolínea es aburrido
- Estuve en el programa del 787 y me encargaba de los updates de los aviones
- Teníamos una lista de librerías aprobadas desde hace 4 o 5 años que eran las únicas que podíamos usar
- Teníamos que programar con versiones 2.x de Hibernate cuando ya iban por la 3.x
6:40 Startup Cirque
- Trabajábamos para poder enviar aplicaciones embedidas en emails
- En el cliente de email se renderizaba y podía actuar
- Era una startup que pivotó varias veces y finalmente cerró por falta de funding
- En el equipo de programación conocí a Nick y Justin. Cuando se acabó decidimos montar 47 Degrees
7:55 Inicios 47 Degrees
- Nuestro foco al principio era exclusivamente aplicaciones móviles nativas (Objective-C y Java)
- Muchos clientes nos empezaban a pedir la programación del backend de las aplicaciones y decidimos apostar por Scala
- La idea surgió de unas navidades que estaba aburrido y me puse a aprender Scala
- Como éramos un equipo pequeño fue algo que pude introducir fácilmente sin hacer migraciones masivas
10:00 Apuesta por Scala en 47
- Una de las cosas que me ayudó fue aprender patrones de diseño. Me di cuenta que todos esos patrones era parches o inhabilidades del lenguaje en sí mismo
- Los patrones de diseño se convertían en "el nuevo altar de los programadores Java"
- El 80% del código que escribimos está orientado a resolver problemas que no son del dominio sobre el que trabajamos
- Es una industria que en ese sentido podría estar potencialmente equivocada. Pero tenía suficiente tracción como para que la gente que estaba empezando simplemente siguiera esa inercia
- Hay ciertas comunidades donde hay demasiado fanboyismo. Creo que eso en la programación funcional ocurre un poco menos.
- Para nada [soy Rockstar de la programación funcional]. No tengo ni puta idea de muchas cosas. Soy una persona que no está centrada en la individualidad.
- Mi rol en 47 Degrees es que la gente tenga un nivel de programación aceptable para que como equipo puedan resolver problemas juntos. Ese es mi trabajo.
12:50 Iniciarse en la Programación Funcional
- No sabías lo que eran los patrones de diseño cuando empezaste a programar. Ahora que ya sabes te has creado una opinión de ti mismo donde no encaja que hayan otras cosas más allá.
- Es un dominio y una forma diferente de hacer las cosas. Si nunca lo has hecho de esa forma, te va a requerir el mismo tiempo de aprendizaje y adaptación.
- 2 cosas básicas para empezar:
- Funciones referencialmente transparentes
- Inmutabilidad
- Si trabajas en términos de abstracciones como Monad, Functor, etc, necesitas que tu lenguaje de programación soporte Higher Kinds. Si tu lenguaje no lo soporta, es muy tedioso.
- Java, al ser un lenguaje muy aceptado en la infustria, te encuentras gente que ya sabe y no quiere salir de su estilo. El problema siempre es humano, no es un problema técnico.
18:10 Kotlin
- Kotlin no tiene Higher Kinds, pero tenemos emulación en la librería Kategory.
- Tenemos una propuesta para un cambio en Kotlin para introducir soporte oficial a Type Classes sin hacer hacks.
- JetBrains oficialmente dijo que querían hacer Scala pero que compilase rápido. Por eso quitaron partes que consideran más académicas del lenguaje.
- Librerías como Spark y Akka han hecho popular a Scala. Los programadores de backend van a tirar más a Scala que a Kotlin.
- Se puede hacer Scala en Android, 9cards la hemos hecho así.
- No se hace Scala en Android porque la gente no elige lenguajes por sus características, si no por factores humanos como que Google anuncie que lo soporta.
- Depende de cada programador, tú qué eres, ¿programador del imperio o de la resistencia?
23:17 LambdaWorld y 47 Degrees
- Siempre nos ha interesado la programación funcional y aquí en Cádiz no hay comunidad. Decidimos traernos a todos los programadores aquí y darle visibilidad a la empresa
- 47 se fundó en Seattle, estamos basados en San Fernando (Cádiz), y Londres
- Como nuestros clientes son internacionales, en muchos casos el trabajo remoto funciona
- Como somos una empresa pequeña-mediana, las decisiones que tomamos las hacemos muy personales de acuerdo a lo que esa persona puede aportar
Y esos son algunos de los puntos destacados a modo de resumen de la entrevista. Si te interesa el tema, te recordamos que hemos hecho algunos posts sobre Scala y programación funcional, y que en CodelyTV Pro tenemos el curso de Introducción a Scala! En breves publicaremos los screencasts sobre Kategory y Freestyle, subscríbete al canal para más info!