sábado, 1 de noviembre de 2014

Julia, el lenguaje de programación revelación para la ciencia de datos

Stefan Karpinski estudiaba en la Universidad de California cuando tuvo que hacer frente a un problema: el desarrollo de una herramienta de simulación de redes que requería usar varios lenguajes de programación porque ninguno servía para realizar el 100% de la tarea encomendada. En ese momento dedidió unir esfuerzos con su compañero de universidad Viral Shah, y con Jeff Bezanson y Alan Edelman del MIT para diseñar un nuevo lenguaje que fuera compatible con casi cualquier tarea. Así, tras dos años de desarrollo interno, la primera versión del lenguaje de programación Julia se lanzó el 14 de febrero de 2012.

Aquel día, explicaron en su blog por qué habían creado Julia. “En definitiva, porque somos codiciosos”, avisaban antes de proclamar su admiración por su admiración por lenguajes más tradicionales como Matlab, Lisp, Python, Ruby, Perl, Mathematica, R o C: “Nos encantan todos estos lenguajes, pero por el trabajo que hacemos -computación científica, aprendizaje automático, minería de datos, álgebra lineal a gran escala, computación distribuida y paralela- cada uno es perfecto para algunos aspectos de nuestra labor… y terrible para las demás. Cada uno es un trade-off. Nosotros queremos un lenguaje de código abierto con la velocidad de C y el dinamismo de Ruby. Con verdaderas macros como Lisp, pero una notación matemática similar a Mathematica. Algo útil para la programación general como Python, pero también fácil de usar en estadísticas (como R), en procesamiento de cadenas (como Perl) y en álgebra lineal (como Matlab)”. Tras otro dos párrafos con ejemplos similares (que terminaban con un “Además, queremos que el lenguaje sea sencillo y limpio. Todo esto no es demasiado pedir, ¿verdad?) anunciaban el lanzamiento de Julia 0.1 (hace poco más de un mes que se lanzó la versión 0.3), asegurando que ya se ajustaba al 90% de sus condiciones.

Desde aquel día Julia ha recibido un gran hype por parte de sus entusiastas, cuya comunidad ha crecido a gran velocidad convirtiendo a su lenguaje de programación en la joven promesa de la informática de ámbito científico (de hecho, ha tenido un impacto notable entre los científicos de datos, un entorno hasta ahora controlado por el oligopolio R / Python).

Entre las características técnicas de Julia, podemos señalar que es un lenguaje de programación dinámico, de alto nivel y de alto rendimiento, que dispone de un compilador avanzado y es capaz de integrar algunas de las principales librerías de otros lenguajes como C, Fortran o Python (a través de PyCall); y aseguran que es capaz de plantar cara a Hadoop en el campo de la computación distribuida: en palabras de Karpinski “se pueden lanzar 100 procesos de Julia, ejecutarlos en diferentes máquinas, y sacar los resultados de esas máquinas… es un trabajo tedioso en Java, pero para Julia es relativamente sencillo”.

Pero Julia no habría alcanzado su actual nivel de popularidad si sus desarrolladores no hubieran apostado por publicarlo bajo una licencia de código abierto (la MIT). “Tenemos cientos de desarrolladores por todo el mundo colaborando en Julia”, reconoce Alan Edelman. “No es como en los viejos tiempos, cuando yo iba a reclutar a los mejores estudiantes de doctorado que encontraba en el MIT para ponerlos en un proyecto. Con Julia, la gente se une a nosotros, y hace grandes cosas”.






from TICbeat http://ift.tt/1zU8iOl