Julia con Óscar Neciosup
8 Oct 2024 · 49 min
Óscar Neciosup, an engineer from Peru, has used Julia since 2015 and now runs prime-counting code 125 times faster than Python. He's building a Latin American Julia user group and recommends the language for data analysis, but suggests newcomers keep Python nearby for tasks Julia still handles awkwardly.
Chapters
Iniciamos una nueva sección en el programa, en el podcast, donde queremos invitar a gente que conoce los lenguajes de programación de los que hablamos. Y por eso estamos hoy aquí con Óscar, que lo he invitado para que nos hable un poco del último vídeo que subimos en YouTube, que iba con referencia a Julia, ese lenguaje de programación que tanto odia Violeta. Óscar, que nos acompaña hoy, si quieres presentarte, decir algo sobre ti.
Sí, claro, ¿qué tal? Buenos días, buenos días acá en Perú. Soy de Chiclayo en Perú, soy Óscar Vinicio Subera, ingeniero electrónico. Y bueno, pues yo he empezado con esto de la programación. Si bien la carrera donde he estado no es netamente de computación en sí, pero sí me he dedicado más que todo a la parte más académica, y ahora en la actualidad más me he dedicado a la parte de aplicación en análisis de datos. Pero contando un poco del inicio, yo inicié con el mundo de Julia en el 2015, pero esto es gracias a que, por ejemplo, la historia sería de que yo aprendí por los cursos de mi carrera en MATLAB, ya en MATLAB. Pero el tema de MATLAB era de que tiene que ser pagado, como se le dice, que no es libre. Entonces, en ese sentido, me acuerdo de que entraba un poco al curso de telecomunicaciones, curso de ANEL, séptimo ciclo. Y me acuerdo de que un profesor, un profesor que se llama Segura Altamirano, y si me escucha y lo mando saludos, él fue la primera persona que me habló del lenguaje. Una vez en clase íbamos a empezar este curso de señales y justamente el profesor había usado antes MATLAB y me dice, muchachos, esta vez vamos a descargar un un nuevo lenguaje para utilizar para el programa, que es uno nuevo que se llama Julia. Y hoy los compañeros nos quedamos como que, ¿qué es eso? O sea, nunca habíamos escuchado. Y ya ahí, hasta ese momento, ya nos habían hablado más un poquito de Python, ¿no? Entonces, este, y yo nos quedamos como que, ya bueno, pues lo descargamos. Pero para eso el profesor nos dice Ya, pero lo van a tener que descargar en una máquina virtual de Linux Mint que nos había dado, de Linux Mint. Y bueno, pues este lo descargamos y comenzó, y nos dijo, bueno, como es un lenguaje libre tiene que ser en estos pasos. Y en ese tiempo cuando nos explicó de la instalación lo vimos engorroso, este, porque teníamos que hacer la creación del path home Y teníamos que incluso dentro del Julia, cuando se instalaba, tenías que hacer unas modificaciones. Bueno, la cosa es que al final, cuando ya se crea, nos dice mira, tienen que abrir por la línea de comandos, no pones Julia y se abría, no se abría toda la interfaz pequeña como si fuese del CMD, no, del símbolo del sistema. Y ahí aparecían. Entonces, este, y ahí comenzó el profesor a explicarnos cómo más o menos funcionaba. Y lo que nos gustó bastante era de que la sintaxis era muy, es casi idéntica a MATLAB con los corchetes, ¿no? Entonces, a nosotros, o al menos en la clase, se nos hizo más fácil por ese lado, por ese detalle. Entonces, yo curioso comencé a indagar más este lenguaje y me di cuenta de la historia que justamente comentaron en el vídeo. Y ya entonces, pero el tema, el problema era de que bueno, uno estaba todo en inglés, todo, toditita la información en inglés, y la otra el tema de la comunidad. Entonces estaba tratando de buscar en foros y era más este más limitado. Bueno, y por ahí más o menos en ese año 2015 comencé con la aventura de este lenguaje interesante.
La verdad es que escuchándote solo me surgen preguntas porque has dicho que te dedicaste a la parte académica de ingeniería electrónica. En la parte académica te refieres a investigación y entonces ahí utilizáis muchos lenguajes como este, como Julia, MATLAB, otros Sí, sí, así es.
Al menos así, así empecé con el uso de este lenguaje. Y en ese tiempo, bueno, cuando comencé a buscar un poco sobre la— allá, ¿qué es lo que sucedía? El problema era de que yo inicié y Julia ya estaba en la versión 0.2.8, un recuerdo clarito. En esa versión estaban, ahorita creo que están en la 1.10.4. Pero yo inicié en el 0.2.8 y justamente batallé con ese lenguaje. He batallado al inicio, te juro, porque literalmente no podía preguntarle a alguien porque era muy difícil que lo conozcan. Entonces batallé en 3 cosas principalmente. Una, que los paquetes o las librerías, como le llamamos paquetes aquí, no eran muy estables. O sea, ¿qué te digo? Sale una versión de, no sé, pues como te digo, pues este, no te quiero hablar todavía un poco sobre el tema de las librerías, pero digamos, no, por ejemplo, este, para reproducción de audio utilizaban en ese tiempo el WAV, el WAV, que es un paquete. Digamos, lo utilizabas para la versión 0.08, ya, y a la siguiente versión se actualizaba, ya no funcionaba o cambiaba varias cosas. Y también se actualizaba la versión del Julia, el 0.3.1 creo que me acuerdo que la siguiente versión que yo actualicé, y también las cosas como que variaron. Entonces esa falta de estabilidad No me hacía un poco, este, digamos, este, excluirme mucho del lenguaje. Es más, me hacía que sea más curioso, porque como no era mi fuerte mucho este tema de tema técnico de programación, así ese lenguaje me hizo querer aprender mucho más de estas cosas. Entonces, este, bueno, así es más o menos donde como iba batallando allá. Dije que eran 3 cosas, ¿no? Ya, la segunda cosa era que el problema de la comunidad, ¿no? Como comenté, de que lo único que podría hacer preguntas era una, a los creadores, sí, a los creadores. Incluso ahí te daban un contacto. Y el otro, que era pues este, a unos foros, ¿no? Unos foros de hacer consultas, ¿no? De algunos que han sabido utilizar el programa. Y el otro es de que no había vídeos tutoriales, eso es también. Entonces, este es uno de los limitantes de ese tiempo. Y recuerdo de que ya lo, digamos, cuando pasó ese curso de telecomunicaciones, ya más adelante te comentaré un poco sobre la aplicación que te digo que hice en este lenguaje. Que me hizo, ¿qué te digo? Pues enamorarme del lenguaje. Y justamente después ya terminé la universidad, ya no, digamos, no me dediqué tanto ya a la programación. Empecé a hacer prácticas de trabajo, después a otra empresa, y lo dejé. Lo dejé, el lenguaje, no por el hecho de que no me haya gustado seguirlo, sino que ya no Digamos, tuve otras preocupaciones, pero cuando volví, cuando volví, que ya es este hace un año, un año volví ya enteramente, ya. Y cuando volví vi que había crecido exponencialmente todo. Entré a querer descargar, vi con emoción que ya había pasado la versión 1, que estaba en la versión 1.10. 2 creo que lo encontré y lo vi, y como te digo, y me di cuenta de que ya habían conferencias, me di cuenta que la gente había creado varias cosas interesantes con este lenguaje, me di cuenta también de que habían creado bastantes sistemas embebidos utilizando Julia, y había un paquete que emulaba literalmente lo que es Pandas en Python. Ya básicamente se podía hacer este análisis de datos en Julia, machine learning en Julia. Entonces todas esas cosas que antes literalmente era como que ni siquiera se mencionaba. Entonces como que dije como que, ah, increíble, ¿no? Y ahí es donde ya entré más ahí, la comunidad como era más grande, tú hacías una consulta y te ayudaba bastante. Este, incluso ahora, no, con la ayuda de estos, estos programas como es el ChatGPT, que también ayuda bastante a conocer más del lenguaje. Y sí, bueno, ChatGPT también conoce Julia, y sí, es un gran apoyo, no, es un gran apoyo para No sé, por ejemplo, tienes un paquete nuevo, no sabes cómo funciona, cómo se utiliza, le podrías preguntar, oye, ChatGPT, explícame este paquete, un ejemplito de este paquete, y te ayuda bastante.
Tu uso con Julia, o sea, porque tuviste un tiempo cuando estaba inestable que te tocó aprenderlo al mismo tiempo que estabas aprendiendo la carrera. Cuando me dijiste que retomaste Julia que ya estaba en su versión estable y ya tomaste esa emoción. El uso de Julia, lo que puedo entender es que dentro de la carrera os están enseñando cierto tipo de cosas, y si estabais utilizando MATLAB sería algo relacionado con álgebra lineal, si no voy mal encaminado. Y en tu etapa profesional, ¿cómo te ayuda o en qué te ha permitido utilizar Julia para decir, mira, pues en este aspecto específico de mi trabajo lo uso y es muy, muy útil.
Ah, ya, bacán, buena pregunta. Sí, sí, bueno, ¿por qué razón volví a Julia? Y ahí eso más o menos tener un poco sobre la idea de mi trabajo. Y mi trabajo es, bueno, ahí sí voy a meterte un poquito más de temas que vi de otros lenguajes. Ya, porque era básicamente como que entré y en mi trabajo utilizaban eso, ¿no? Y tú sabes de que cuando haces un trabajo y utilizan, este, algún tipo de lenguaje, te tienes que acomodar a eso, ¿no? Porque como ya está hecho en ese tipo, por ejemplo, ¿no? Este, una de las primeras cosas que hice en el trabajo fue hacer, este, esos tipos llamados dashboard, ¿no? Pero es un dashboard que es, este, es un dashboard que es hecho desde cero, no utilizando Power BI, sino utilizando HTML, utilizando también C#, entonces aprendí más de JavaScript, o sea, como que ya comencé a meterme un poquito de esos mundos, pero, pero, pero para el tema de análisis de datos Algunos utilizaban Python, ya algunos, pero la gran mayoría, que te diría pues el 95%, utilizaban el poderosísimo Excel para hacer gestión de base de datos. Así, así literalmente, gestión de base de datos en el poderosísimo Excel. Y ahí pues, este, para ayudar un poco a los compañeros Entonces, este, una forma es para que ellos puedan, digamos, este, familiarizarse más con la automatización de datos, hacer macros, macros en Excel. Creo que utilizan un Visual Basic for Applications, creo. Sí, sí, sí, sí, sí. Y bueno, ahí estuve un tiempo ahí navegando por ese mundo. Hasta que después llegó el tema de análisis de datos intensivo, esos análisis de datos increíbles que teníamos en el trabajo, y literalmente lo hacías análisis en el Excel y morían. Entonces había un compañero, un compañero que lo quería hacer en Python, y él dijo, comentó de que había una aplicación un paquete que se llama Pandas que te podría hacer analizar y de manera más sencilla que una macro en Excel, que es verdad, una macro en Excel que es más complicado de programar en sí, no, por la sintaxis que tiene. Entonces este se hizo, pero hay un problema, y no, el problema con Python que a veces la mayoría no lo ve porque bueno, es Python, la mayoría es como que te dicen, bueno, es el lenguaje para analizar datos. El problema es de que es lento, el rendimiento es de que es, y uno si no usa otros lenguajes no te das cuenta. Yo recuerdo que mi profesor que me enseñó Julia, él me decía de que este lenguaje estaba hecho para alto rendimiento, para un análisis de datos intensivo. Entonces yo en mi mente dije, ay, verdad, no tengo, verdad, dije, no, verdad, esto tengo este lenguaje del Julia para aplicarlo, no. Y ahí es donde entro, entro, entro, entro, entro, entro, entro. Y entonces vi con alegría, porque yo una de mis dudas tenía, ojalá que aguante esto, ojalá que esto lo tenga Julia, decía, ojalá que estas funcionalidades de Python lo tenga Julia. Y bueno, felizmente sí los tenían. Y ahí es donde yo otra vez entro al tema del Julia, y ahí es como más o menos volví.
Supongo que sería el momento en el que todas las empresas se han hecho eco de que hay que analizar los datos de forma intensiva, y cada vez más se centraliza esa acumulación de datos. Creo que algunos ingenieros de datos lo llaman el data lakes o lagunas de datos o big data directamente, que acumulan un montón de información en crudo y después, pues eso, tienen que tirar de algún sistema que sea de alto rendimiento para poder extraer toda esa acumulación de datos y claro, sacar datos ya con sentido y analizados para para la empresa, obviamente. En este sentido, yo creo que Python, aunque muchos no quieran reconocerlo, como tú mismo has dicho, es excesivamente lento. Pero también porque si intentas hacer las cosas con Python en lugar de con las librerías que están programadas en C, obviamente pues el análisis de datos, y sobre todo datos masivos, se dificulta. Pero claro, es que Python no está preparado de primeras para hacer eso, que es como nosotros decíamos en el vídeo, que Julia estaba pensado a partir de las carencias que se habían visto en Python, de llegar donde no llegaba Python, donde quizás sí podrían haber llegado sus librerías y algún programador avezado que sepa cómo tratar esos datos para ir un poco más de sus limitaciones. Pero tal y como dices, pues bueno, no es lo mismo intentar estrujarse el cerebro haciéndolo en Python, que al final pues termina siendo lento si no recurres a algo que te pueda salvar el día a última hora, que empezar ya con buen pie en un lenguaje como Julia y tenerlo ya todo hecho. Antes decías que tuviste que instalar una máquina virtual de Linux. Con esta nueva experiencia en el trabajo. ¿Utilizabais ya el Linux de por sí o esta nueva versión de Julia ya la utilizabais en Windows o a través de iJulia para como notebook o algo por el estilo?
Ah, ya. Bueno, sí, ya cuando me enseñó el profesor el curso lo hicimos en Linux Mint, en una máquina virtual, pero ya después Indagando más, este, ya lo instalé en Windows, pero en Windows tenía que hacer una, digamos que emular lo que hacía Linux Mint, la creación del path home para que se cree justamente en donde yo quiero, crear una pequeña variable del sistema básicamente, y nada más. Felizmente Julia sí tiene esa ese soporte en Windows y en el trabajo literalmente lo uso en Windows. Eso es lo que se podría utilizar ahí. Creo que la página también tiene para soportar otros tipos de sistemas operativos, me parece.
Y al proponer este lenguaje, ¿el jefe ya directamente lo abrazó con efusividad porque era un buen lenguaje y todo el mundo quiso aprenderlo o tuviste alguna fricción a la hora de introducirlo?
Bueno, a ver, ahora que lo dices, porque justamente cuando vi el vídeo y vi a Violeta, bueno, me hizo acordar mi trabajo. No, mentira. Este, bueno, en realidad, y justamente viendo el vídeo comencé a reflexionar y dije, verdad, o sea, los que suelen utilizar Python y ven un lenguaje que es como que, como que entre comillas, no, porque cada uno tiene su nicho, como comentaste, este, como ven un tipo de competencia directa, no. Entonces, este, y ¿por qué? Porque como bien dices, para que Python pueda, digamos, este, competir en rendimiento y velocidad con con Julia, como bien dices, tienes que usar lo que hace pero en C, ¿no? O sea, literalmente, para que compita con Julia tienes que ponerlo al C en el camino, ¿no? Entonces, este, en cambio, Julia es Julia, ¿no? Julia es Julia, y Julia con solo su, ese lenguaje compite a alto, alto nivel, ¿no? Alto nivel y alto rendimiento. Y Bueno, en mi trabajo pasaba eso, en mi trabajo pasaba eso, que por ejemplo los compañeros que utilizaban Python no lo vieron bien. ¿Y qué es lo que decían? Ya míralo si quieres en Julia y después nos lo pasas y lo pasamos a Python, concha gente. Así, así me decían. Entonces como que, este, pero ¿por qué razón? Porque no, digamos, ¿qué pasa si, y ese también es importante? ¿Qué pasa si tú lo pasas? Digamos, si tú dejas en el trabajo, no lo haces en Julia y luego te vas, no. O sea, ellos piensan de que como Julia nunca la han escuchado, piensan de que pucha, pasa algo y nadie lo sabe usar. Entonces yo le decía, no, pero es bien fácil, es fácil, es tan fácil como Python, es literalmente la sintaxis es más fácil así. Entonces, este, a un compañero, uno que otro compañero Le estaba mostrando más o menos cómo se hacía. Y en esto, este, justamente mi jefe, ya mi jefe estaba utilizando Python también, y justamente una vez, y él también no lo veía tan bien, no, como que pasar a otro lenguaje es como que, ya sabes, lo que llegas a un tiempo, a una edad que estás con un lenguaje años, años, años, años, años. Y después te parece, no, mira, tenemos que ir más rápido. Pucha, ahí ven la curva de aprendizaje que tienes que tener con este lenguaje. Entonces como que lo ven gordo, lo ven gordo todo esto. Y me acuerdo de que se acerca un día, y mira, también esa anécdota, se me acerca un día, una tarde, y justamente le estaba mostrando lo que estaba avanzando en Julia y me dice Oye, pero este, pero ya que tanto me dice, ya que tanto dices que es más rápido, no, ya hagamos un versus, me dice así, hagamos un versus. ¿Qué te parece si le hacemos un lenguaje, un programita chiquito chiquito en Python y en Julia? Hay dos opciones, digo, dos condiciones. Una de que te voy a, ya le dije, no, ya me parece que ustedes para hacer análisis de este matemáticos me parece que necesitas una librería que es este las NumPy, no, ya mira, voy a utilizar el NumPy y yo no voy a utilizar nada, o sea, así, porque literalmente Julia todo está incluido ahí, no, entonces este ya hicimos un Allá, ¿de qué consistía este pequeño script? Este pequeño script consistía en que me calcule del 1 a, creo que era, creo que eran 2 millones, sí, del 1 hasta el 2 millones, que me calcule la cantidad de números primos y que me imprima los 10 últimos números primos que me ha mostrado. Ya, este, bueno, y si no, entonces este se hizo en la, y se hizo la versión más, más pro, digamos, el método más pro, no, que es la criba de Eratóstenes. Bueno, en general se hizo el lenguaje, le digo, se hizo el script, no, tal, tal, tal. Entonces llegó la hora, la hora de correrlo, pues no. Y yo no te voy a negar que estaba nervioso, estaba nervioso. Entonces, y justamente la misma, el mismo compu, no. Entonces lo corre, ya, y este, y en Python lo hizo en 1 punto, creo que 25 segundos lo hizo, ya. Y yo voy a correr el mío en Julia, pues Yo asustado, yo estaba asustado, está como, uy, si es más lento ya me fregué, decía. Lo corro, ¿y sabes en cuánto tiempo lo hizo? 0.2 segundos lo hizo. Y yo me, y salió el mismo resultado, el mismo resultado. Y yo dije, y mi mente explotó, dije, ¿qué? Es impresionantemente más rápido, dije. Y yo ahí más me enamoré de ellos. Entonces, y el jefe se quedó como que aguanta, aguanta, aguanta, y comenzó así, dice no, no, no, seguramente algo ha pasado, hay que agregarle otra más. Y ahí me habló sobre no, seguramente si lo ponemos así es más rápido. Yo me seguí pensando, y entonces yo le dije ya mira, si quieres este agrégale distribuido o paralelo, si quieres que te haga, digamos, lo dividimos en grupos, que te vaya calculando los números primos en paralelo, no. Le dije, no, pucha, ya yo todavía ayudándole para que le baje, pues no. Ya ahí se tomó un tiempo, tiene que descargar un paquete, hay unos 20 minutos creo, ahí tratando de tener un paquete creo que para distribuido, se creó esos hilos, no, ya bacán, y creo que se creó como Como en mi compu tiene bastante potencia y de procesador, creo que utilizó algo de 10 hilos. Volvió a correr y esta vez lo hizo en 1.003 segundos, creo, algo así. No bajaba del segundo y se quedó pensando. Dije, bueno, ya Seguramente es más rápido. Y se fue. Y yo me quedé, quedé como que, uy, su madre, qué genialidad tiene este Julia. Y ese más o menos fue la historia.
La verdad es que con esas pruebas es fácil finalmente demostrar que Julia tiene esa capacidad. Y al final sí se van convenciendo. Yo creo que siendo programadores de Python, Julia tampoco es tan alienígena para ellos. Es verdad que la sintaxis difiere, pero no es tampoco tan diferente. Y supongo que ya con la cantidad de paquetes que tiene hoy en día, no estoy muy seguro, pero oyéndote estoy casi convencido de que no habéis necesitado intercambiar o bajar a nivel de C o utilizar alguna librería que en otro lenguaje completamente diferente.
Sí, sí es.
¿Y tienes contacto con la comunidad para saber de otras empresas en tu sector que también estén utilizando Julia, o sois la única empresa que sabe que está utilizando Julia en estos momentos?
Cuando yo estuve por allá en la parte de la universidad, ya había un, encontré un un chico de la UNAM en México, ya que entre contactos de los foros me habló, me dijo, oye, ¿hablas español? Se sorprendió, este, y dije, sí, soy de Perú. Dije, mira, yo soy, este, era de sistemas, y justamente le gustaba el lenguaje del Julia, ¿no? Y estaba, este, digamos, viendo esos temas de la Por ejemplo, no había un paquete que tenía errores y él se dedicaba a meterse y ver el error dentro del código fuente del paquete. Entonces él me ayudó bastante para algunas cosas de Julia y también él me dijo de que él estaba formando un, ¿cómo se diría? Pues como no es algo de estudio, sino como que es un estudio de de investigación. Y justamente me dijo que iba a habilitar un tema de procesamiento de señales, que era mi fuerte en ese entonces. Mi fuerte en Julia era este procesamiento de señal digital, ese era mi pico, y todo lo relacionado a la parte de telecomunicaciones pude encontrar, y ese era mi mi base de todo. Entonces, este, cuando justamente estaba pasando más o menos este en octubre de 2015, en mi universidad hacen estos tipos de convenciones. Universidad es la Universidad Nacional Pedro Ruiz Gallo, allá en Lambayeque, que es este mi alma máter. Entonces Ahí yo estoy, yo estoy exponiendo un poco sobre este lenguaje. Hice un tipo de taller también de inicialización de este lenguaje. Para este punto yo ya utilizaba un, como un Visual Studio Code entre comillas, pero para ese momento utilizaba lo que es el Live Table. Y el otro que es este, creo que Atomic, no recuerdo bien, es para hacer este scripts, ¿no? Y el Live Table me gustó bastante porque literalmente era mucho más dinámico, como que pones el script, pones Ctrl+Enter y al ladito te genera el resultado, ¿no? El resultado, o bueno, también te genera el error si es que hay error. Y eso me ayudó bastante. Me acuerdo que yo lo expuse, me acuerdo que me grabaron, y literalmente yo le dije a mi compañero, pero no al chico, le dije, este, voy a exponerle, dije, no, así emocionado. Ya se había convertido en mi compañero, mi empata ya. Y me dice, no, él me da la idea, oye, pero oye, está interesante, me dice. ¿Sabías que eso lo puedes subir a la plataforma de Julia y que te nombren como que justamente estás enseñando en un classroom? Así me dijeron. Yo me quedé, ¿qué? ¿En serio? Y sí, me mostró, me mostró, me mostró, me mostró la página. Y sí, y justamente él me dice, pues no, sí, mira, y justamente puedes poner todo lo que estás avanzando, haciendo, te van este como entre comillas distinguiendo. Entonces yo, bacán, entonces de la grabación tomé algunas imágenes, lo puse en un PPT, lo subí a una plataforma en internet y le escribo a uno de los fundadores, a Aviral, le escribí, Aviral Sharp, a él le escribí y yo le dije Le dije, hola, mira que estaba haciendo un workshop de Julia, este, que estaba viendo para querer subirlo. Y ahí, este, pucha, le mandé mensaje a él y justo me responde pues a los 2 días, creo, o al día, me acuerdo, una madrugada allá. Y me dice, mira, te habilito esto del GitHub, porque creo que, creo que de ahí se alimentaba, mira, del GitHub. Te habilito ahí para que edites y pongas el enlace del workshop, porque era necesario que lo pongas. Y me habilitó, me habilitó, lo puse y puse la evidencia. En ese tiempo éramos poquitos y ya, ¿no? Entonces, este, y ahí sigo. Si tú te vas a la página de Julia, ¿no? Si te vas a la página de Julia y te pones en Learn, no, sí, en Learn, claro, no, hay una parte al final que es In the Classroom, no, In the Classroom, y ahí aparecen bastantes, este, digamos, imágenes de las páginas de las universidades, y pones donde dice See where Julia is being taught today. Y ahí te aparece Julen de Classroom, y por ahí si buscas Óscar Neshoshu, por ahí me encuentras, por ahí estoy, ahí sigo. Y ahí tengo un compañero también, un chico también de acá de Perú, que también había puesto aquí en esta parte de learning, y uno que otro chicos de Buenos Aires. Entonces mi idea, como ya volví, es tal vez contactarme con estos chicos y a ver qué se puede lograr, tal vez hacer una pequeña comunidad latinoamericana. Es una buena idea que estoy teniendo.
Entonces estás pensando en hacer un co-hosting, creo que lo llaman así, ¿no? Hostear o ser anfitrión de alguna JuliaCon en el futuro?
Sí, sería muy interesante porque literalmente este lenguaje tiene para ser explotado y tiene para, para que la comunidad hispanohablante pueda hacer su propio grupo, y más que todo como una ayuda para los que recién los que recién empiezan, los nativos de habla española, para que cuando inicien puedan tener esta base. Entonces sí, esa es una buena idea que estoy teniendo, y también ser más activo a nivel de redes, poner más videítos. Es más, en mi canal de YouTube, este, ese tiempo puse un vídeo de instalación de Julia, no de 2015, porque como eran pasos gigantescos Entonces yo puse un videíto, creo que está en mi canal, este, y explicando la instalación. Luego, ¿qué más comentarle también? Hasta a mí, a mi profesor, que también este sube sus videítos también en su canal. Si lo buscas, es Segundo Francisco Segura Altamirano. Ya él pone, él es más activo con los vídeos, y él sí utiliza muchas bases aparte de Julia, utiliza Python, creo que utiliza otro lenguaje, y básicamente eso está tratando de crecer aquí en la comunidad en Latinoamérica.
Te pediré después todos los enlaces para agregarlos junto con la grabación porque puede estar muy interesante que nos escuche si tiene intención o interés aprender Julia y sumarse a algún workshop o lo que sea, pues os puede localizar directamente.
Sí, también justo como estoy haciendo, ya estoy haciendo una tesis de maestría en la parte de telecomunicaciones, justamente ahí voy a incluir unos pasos que he hecho en Julia, que es algo bien genial, que es generación de enlaces inalámbricos. Para proyectos de telecomunicaciones es un análisis intensivo que utiliza información de elevación digital, que son los famosos DEM, raster DEM, y esos datos son, como es una muestra, es que te digo, pues este es una muestra por cada 30 metros básicamente. Te imaginarás la cantidad de muestras que es de un enlace, digamos, inalámbrico de 60 kilómetros. Entonces, de eso estoy agregándolo en mi tesis para de alguna manera dejar un poco escrito la aplicación.
Bueno, ya aprovechando que estás, o sea, diste un workshop y tienes contacto con gente que está aprendiendo Julia, aparte de que tú también estuviste en ese camino, ¿qué dificultades hallaste principalmente cuando estabas aprendiendo, o ves que son las dificultades típicas que que tiene la gente cuando está aprendiendo este lenguaje?
A ver, yo me parece que uno actualmente, no, me parece de que uno de los problemas que se podría tener es, bueno, podrías digamos entrar a un, bueno, es básicamente de querer programar algo en Julia, ¿no? Y que, por ejemplo, quieras hacer un análisis de scripting de una página web, ¿no? Por ejemplo, la página web de Chrome, ¿no? Entonces, este, digamos de que Julia todavía eso está en desarrollo. Y, por ejemplo, si quieres descargar un vídeo de YouTube, quieres hacer un scripting pues eso todavía no está en Julia. Entonces, en otras palabras, una de las dificultades es de que hay cosas que tal vez aún no se pueden hacer en Julia, que sí hay más en Python, que es básicamente por la comunidad. La comunidad, al final de cuentas, es el que hace, es el que hace este tipo de nuevas funcionalidades. Entonces, eso es lo que hace de que el Julia y el Python trabajen a la par, ¿no? Entonces, este, pero eso sí me queda claro de que lo que hubiese en Python y lo que hubiese en Julia en eficiencia es mucho mejor en Julia. Después, otra dificultad es que se podría tener, me parece que es en el tema de que uno quiera entrar en el lenguaje, ¿no? Quiere aprender el lenguaje y no sabe cómo hacer, o no tiene idea de cómo hacer un script, o cómo hacer, digamos, el funcionamiento de lo que uno quiere hacer. Por ejemplo, uno en su mente cuando va a hacer un código, o te dan un problema, y tú en tu mente ya estás haciendo tus bloques. Tu código mental, estás haciendo cómo sería aquí el siguiente paso, el siguiente paso, y después de eso recién entras a programar. Hay algunos que entran a programar y en la programación están buscando la iluminación. Y bueno, eso creo que es un tema general, básicamente todo se resume a que la comunidad aún está en crecimiento.
Y sobre O sea, ya que hemos dicho un poco las dificultades en sí que se pueden hallar, ¿qué cosas? Ya escuchándote hablar veo que te gusta mucho el lenguaje, pero ¿habría alguna cosa que dijeses, pues mira, esto no termino de verlo, no termino de encajarlo bien en mi cabeza, o lo cambiaría directamente? O sea, ¿hay alguna pieza de Julia que digas esto podría mejorarse?
Me parece que en algunos, en algunas, algunos paquetes que utiliza Julia sí hay varias cositas que se podría mejorar. Hay varias cositas que lo hacen en 3 pasos que fácilmente se puede hacer en un paso, pero como en el mismo sintaxis del mismo Julia, o sea, sin paquetes, lo que se necesita de ahí Me parece que sí es fácilmente un poco, digamos, cuestionable. Lo único que sí podría ser un poco no tan cuestionable es el hecho de la habilitación de los hilos, de los subprocesos que le llamamos los threads. En este caso es necesario, digamos, que uno habilite la cantidad de hilos antes de iniciar el programa. Porque después de iniciar el programa no se puede hacerle. Bueno, pero pucha, ¿qué te digo? Pues este es un tipo de configuración un poquito avanzada. No sé, quieres utilizar varios hilos, no tendrías que crear una variable, este, del sistema de hilos de Julia, le pones, no sé, pues los hilos que quieras, 8, 12, y ahí recién tú entras al, inicializas este con Julia y ahí se actualizó. Creo que eso se podría mejorar, que dentro del código que tú estás codificando quieras cambiar la cantidad de hilos y sea factible. Creo que eso podría mejorarse.
Y unas últimas palabras sobre qué recomendaciones, o sea, que a quien ahora mismo se adentra en Julia, ¿qué le recomendarías que hiciera?
Yo diría una de que cuando descarguen, cuando descarguen el aplicativo, del aplicativo de Julia, si uno quiere aprender, digamos, desde cero, como si fuese un lenguaje primario, imagínate que no ha conocido ningún lenguaje, porque hay dos formas, uno que inicia conociendo Python y uno que inicia sin saber un lenguaje tanto en sí. Entonces yo creo que para los que recién inician en él en el lenguaje, digo, recién inician en la programación y quieren iniciar con Julia, que no se asusten, que es un lenguaje que es muy fácil de utilizar, tiene una sintaxis muy sencilla, tiene, digamos, hay una página en internet que es para introducción a Julia, que es básicamente, han traducido todo lo que es el Getting Started de Julia en español. Está bien explicado. Este, para el tema del álgebra lineal, si quieren utilizar cosas académicas, información de matemática, este es mucho más, digamos, sencillo de utilizar, hacer una función. También no se preocupen porque también se puede hacer un ploteo de imágenes, ploteo también de funciones. Y eso es más que todo, haya, y que también haya una comunidad ya como es el JuliaCon, que ahí pueden entrar y pueden ir viendo cómo es que los chicos tienen ideas de hacer algún tipo de aplicación, un tipo de un script, y te muestran el código, te muestran, y algunos que te explican. Entonces también quedaría bien que vayan viendo ese sus vídeos. Y por otro lado, los que vienen de Python, bueno, los que vienen de Python, los que vienen de Python les dirían de que están entrando en un mundo más, qué te digo, más rápido. Bueno, en realidad no va a tener tantos problemas, de verdad no va a tener muchos problemas porque la sintaxis es muy parecida. No se preocupen porque los que utilizan sus Pandas allá también tiene su equivalente, que es los data frames. Los que quieren hacer su gestión de base de datos, si quieren tal vez desde un script quieran, digamos, hacer sus consultas, entonces también tiene, que es el libpq, que ese es un paquete También no se preocupen si necesitan utilizar, este, hacer un bloque más dinámico, más visual, pues porque también está el Genie, ¿no? También no se preocupen que también se pueden hacer aplicativos también para Windows, ¿no? Que es el paquete Building, creo que es, sí, me parece que así es, también lo he utilizado. También se puede, también se pueden leer desde a partir de Excel, datos de Excel, pasarlos a un DataFrame, aún como le dicen, sí, bueno, DataFrame, que es el xlsx. Si quieren utilizar de aplicativos de CSV, también CSV literalmente. Para los chicos que entran al mundo de como yo, que estamos muy metidos en el tema georreferencial, pucha, ahí sí hay una vasta cantidad de paquetes. Está principalmente el ArcGIS, no, está el Shapefile, está el paquete raster, qué más. Después, para el tema de los hilos, para el procesamiento paralelo está todo incluido, lo incluye a través de su funcionalidad de threads, es muy fácil de utilizar, literalmente es un par de líneas y ya está. Después también para los que entran al tema del muestreo, la parte de señales, tiene su paquete de DSP, tiene su paquete bueno para visualizar las imágenes hay bastantes. También está el Matplotlib, está el Plotly.js. El tema del machine learning, de la IA, también hay uno que es el Flux. El Flux también te ayuda para la creación de este tipo de paquetes, paquetes de aplicaciones.
Escuchándote, la verdad es que hemos comparado muchísimo con Python. Espero que los programadores de Python lejos de enfadarse un poco con lo que hemos dicho, tomen Julia como una opción, le echen un vistazo antes de proferir insultos o similar. Y bueno, Óscar, solo agradecerte que nos dedicases este tiempo y toda tu experiencia con este lenguaje. Ha sido genial escuchar a alguien que lo utiliza día a día. Y bueno, si quieres decir algo más para cerrar, Así, claro.
Bueno, ya que comentaste con el tema de Python, como para que no se sufren, yo diría de que para los dos deben convivir a la par, ¿no? O sea, un buen programador de análisis de datos me parece de que debería utilizar tanto Julia como este el Python, ¿no? Me parece. ¿Por qué? ¿Por qué razón? Porque el Python tiene más funcionalidades, que otra vez recalco que es por la gran comunidad. Este, tiene más funcionalidades que puede que no tenga en Julia, pero si tú quieres un análisis bastante exhaustivo y rápido, sin que se te cuelgue la compu, que se te cierre lo que estás haciendo, entonces utilizar Julia es la gran opción. Obviamente, si no lo quieres hacer en C, porque también está la opción de C. Entonces, este, me parece que deberían los dos convivir a la par. Eso es lo que podría decir yo.
Pues muchas gracias por tu tiempo y un gusto haberte tenido aquí en el programa.
A Manuel, gusto, un gusto para ti también, gusto para ti. Y bueno, a los chicos que están, si quieren conocer un poco más o tienen algunas consultas O tienen, no sé, pues un paquete y tienen alguna duda de cómo funciona, no, este, o tal vez que quieran comunicarse con los creadores, no, quieren algún contacto, cómo hacerlo, me podrían escribir a oscar.n.v@hotmail.com, o me pueden escribir al oscar.nisiasu@gmail.com. Y ahí podrían hacer unas consultas, podrían también hablar un poco sobre el tema. Así que nada, muchas gracias.
Agregaremos en los comentarios del podcast toda esta información. Ahora te voy pidiendo todos los enlaces. Y bueno, muchas gracias por estar ahí escuchándonos y hasta otra.
Gracias, Manuel. Saludos a los chicos. Muchas gracias.










