Entrevista a 47 Degrees
En el pasado evento de Droidcon en Madrid, tuvimos el privilegio de compartir una risas y aprender bastante con los chicos de 47 degrees. En uno de los descansos les pudimos asaltar y hacerles una breve entrevista, en la cual participaron el CTO y cofundador, Raúl Raja y el Senior Software Engineer, Javier Pacheco.
47 degrees es una firma global con sede en Cádiz y Seattle. Se dedican mayoritariamente a la consultoría pero son una autoridad en desarrollo reactivo. Son unos fieles evangelistas de Scala y bastante conocidos en el mundo Android.
Mario Pérez: Para los que no os conocen, ¿quiénes sois y a qué os dedicáis? Raúl Raja: Soy Raúl Raja y soy fundador de 47 degrees, somos una consultora centrada en Scala orientada a grandes empresas. Somos partners oficiales de typesafe y ahora también estamos haciendo training. Nuestros principales clientes están en Estados Unidos. Javi Pacheco: Yo soy Javi, desarrollo en Android con Java desde hace 6 años desde que empezó Android. Dentro de la empresa empezamos a desarrollar en Scala desde hace unos 3 años. Y desde hace unos 6 meses estuvimos viendo las posibilidades de utilizar Scala en Android y nos estamos dando cuenta que realmente funciona bien, resuelve muchos problemas del trabajo diario.
MP: ¿Por qué Scala? ¿le veis un nicho de mercado? RR: En backend es obvio, es más, el 100% de nuestra facturación está basado en Scala. Eso es prueba suficiente de que existe un mercado. En el tema de cliente todavía no, porque por ejemplo, Scala en Android, no es un tema que prima ahora mismo sino que es más o menos reciente, y aprovechas las ventajas de que tu puedes compilar código a bytecode directamente en la maquina de Java y eso lo puedes poner en Android, ya que soporta cualquier bytecode de la máquina virtual.
MP: ¿Vale la pena migrar aplicaciones en Android de Java a Scala? JP: Realmente el pasar una aplicación a Scala es útil si le sirve a esa empresa el utilizar Scala. Nosotros que venimos de backend, todos los desarrolladores de la empresa programan en Scala, con lo cual ha sido una forma natural de seguir trabajando. Podemos reutilizar recursos, incluso aquellos que en un principio no está enfocado a el mundo de Android, pueden ayudar a realizar diferentes procesos en toda la empresa. RR: Es inevitablemente cierto que cuando desarrollas en Scala en Android, Scala hace el código más seguro y más conciso por la manera de manejar nullpointers y otros problema comunes en Android y te da las herramientas para hace el código más elegante. Esta en manos de la persona el valorar si merece la pena la inversión de tiempo, pero definitivamente ,si tienes la opción de empezar un proyecto nuevo y no tienes restricciones en ese sentido, deberías plantearte utilizar Scala o cualquier otro lenguaje moderno de la maquina virtual y que esté soportado en Android. JP: Dependen de muchas variables, si eres empresa o particular, depende del cliente, el tipo de empresa, si necesitas darle el código al cliente y tiene que buscar a alguien que lo mantenga. Personalmente a nosotros nos sirve, puesto que el desarrollo está dentro de la empresa y nosotros trabajamos con Scala.
MP: Hablando de la aplicación de 9cards ¿cuál es el futuro? JP: En el caso de 9cards, que quizás es nuestra aplicación en Android que llevamos tiempo desarrollándo, estamos reescribiendo la aplicación desde 0 en Scala, pero no solo haciendo lo mismo, sino hemos tenido un proceso de diseño completamente nuevo, y ahora vamos a desarrollarla en Scala, pero siendo una versión completamente nueva. MP: ¿Qué opináis del código abierto? JP: Yo de siempre, todo el código que he hecho en mi vida fuera de empresas, lo he publicado, y dentro de empresas casi todo en 47º hemos publicado el código que hemos hecho, el que no depende de clientes sino el de nuestra propia empresa y entre este, el que código que hemos creído interesante. RR: Hay muchas razones por las que una empresa normalmente tiene código cerrado. Porque quiere proteger sus intereses intelectuales o porque también el código no es digno de ser abierto. En el caso nuestro, estamos orgullosos de nuestro código y el código abierto no es solo un camino de un sentido, lo hacemos por aportar a la comunidad de vuelta todo lo que recibimos. Pero es indiscutiblemente una estrategia de marketing para cualquier empresa, el abrir su código, para que los potenciales clientes o trabajadores en un futuro vean la calidad de la empresa. Por lo tanto no hay razón para que nuestro código no seria abierto en la mayoría de las cosas que hacemos. Lo que si que intentamos, es que antes de hacer código abierto, llevarlo a un punto en el cual estamos contentos con el estado del código y no hacer opensource cosas que a la comunidad no le es de utilidad, sino hacer extensibles y reutilizables para desarrolladores o empresas. MP: ¿Algo que mejorar de Android? JP: El SDK completo (risas). Hay muchas cosas por mejorar pero también hay otras que han ido mejorando con el tiempo. RR: Yo creo que Android se merece ya, por la madurez y la comunidad que está soportándola, se merece un framework más digno, y no tenga los problemas que desde el día uno llevamos arrastrando, un lenguaje moderno que no tenga todas las barreras del lenguaje que tiene Java 1.7 que es la que seguimos utilizando. No decimos que sea Scala pero si que se necesitan unos cambios. JP: Lo que suele pasar es que es una relación de amor-odio, lo quieres con sus virtudes y sus defectos, cuando la tecnología no debería ser así. Lo que pasa es que te acostumbras a vivir de esa manera. Nosotros que llevamos 6 meses con Android en Scala y ahora es cuando nos estamos dando cuenta y nos preguntamos ¿cómo podemos estar haciendo las cosas de esta manera? Nos acostumbramos y es lo que tiene y llegas a los eventos, y te dicen esto hay que hacerlo así, y tu dices muy bien hay que hacerlo, así funciona, vale, pero no descubres una nueva forma de trabajar. Y el paradigma funcional te da una nueva forma de pensar y de trabajar a la hora de resolver problemas. Que te puede gustar más o menos, y puede ser complicado dar el primer paso, pero te abre la mente a cosas diferentes. RR: Nosotros tenemos la filosofía de no hacer las cosas por inercia ni basada en la mediocridad de otros. Incentivamos a nuestros empleados que cuando hagamos las cosas, las hagamos de la mejor manera posible. En el caso de Android y java, después de estar expuestos a Scala en el backend hemos dado cuenta que se deben hacer mejor las cosas y por eso hemos dado el paso.