• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • Excel
  • Matlab

¿Por qué Julia Language?

septiembre 13, 2019 Por Daniel Rodríguez 2 comentarios
Tiempo de lectura: 4 minutos

Julia es un lenguaje de programación relativamente nuevo, apareció en el año 2012, que últimamente está atrayendo a muchos usuarios. Siendo la promesa de un alto rendimiento una de sus mayores bazas. Prometiendo rendimientos similares a los de código escrito en C o FORTRAN con la facilidad que ofrecen lenguajes de script como Python, R o Matlab. A continuación, se va a explicar porque los programas escritos en Julia se ejecuten más rápido que los equivalentes, comparándose con un ejemplo. Viendo así por qué Julia puede ser interesante.

Tabla de contenidos

  • 1 Julia
    • 1.1 Paquetes
    • 1.2 Ejecución de código en paralelo
  • 2 Comparación del rendimiento de Julia con R, Python, Matlab y Javascript
    • 2.1 Julia
    • 2.2 R
    • 2.3 Python
    • 2.4 Matlab
    • 2.5 Javascript
    • 2.6 Tiempos de ejecución
  • 3 Conclusiones

Julia

Julia es un lenguaje de programación dinámico de propósito general de alto nivel diseñado para tareas de análisis y cálculo numérico. Ofreciendo en un mismo lenguaje del dinamismo que se obtiene en Python, R o Matlab, y la velocidad de ejecución de código escrito en C. En el lenguaje programación Julia el código se compila sobre la marcha, por lo que este puede aprovechar mejor las capacidades del hardware sobre el que se ejecuta. No interpretando el código como sucede en otros lenguajes de programación actuales.

Publicidad


Paquetes

Al igual que sucede en R o Python, los paquetes son una característica clave de Julia, integrando un gestor de paquetes en el que ya se pueden encontrar más de 2800. Aunque no llega a la cantidad de paquetes disponibles en el CRAN para R o en PyPI para Python, es necesario notar que en enero de 2018 había cerca de 1600.

Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo
En Analytics Lane
Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo

Ejecución de código en paralelo

Una de las características más interesantes de Julia para computación de alto rendimiento es su capacidad paralelizar el código. En Julia para ejecutar un script en solamente se tiene que indicar el número de núcleos en la línea de comandos a la hora de llamar a este. Además, es posible enviar tareas a diferentes hilos directamente desde el código. Finalmente, los bucles de Julia se puede ejecutar el paralelo directamente no es necesario indicarlo como en otros lenguajes.

Publicidad


Comparación del rendimiento de Julia con R, Python, Matlab y Javascript

Una forma para comparar el rendimiento de Julia con otros lenguajes es resolver el mismo problema. Por ejemplo, calcular la sucesión de Fibonacci. La misma función que se ha utilizado para comparar el rendimiento código escrito en R con C++ utilizando el paquete Rcpp.

En primer lugar, se va a presentar las funciones que se utilizarán en Julia R, Python, Matlab y Javascript para calcular la sucesión de Fibonacci. Posteriormente se van a comparar los tiempos de ejecución en los diferentes entornos.

Julia

Para la prueba en Julia se utiliza el siguiente código en Julia 1.1.0.

function fibonacci(n)
    if n < 2
        return n
    else
        return fibonacci(n-1) + fibonacci(n-2)
    end
end

Publicidad


R

Para la prueba en R se utiliza el siguiente código en R 3.6.1.

fibonacci <- function(n) {
    if (n < 2) {
       return(n)
    } else {
       return(fibonacci (n-1) + fibonacci (n-2))
    }
}

Python

Para la prueba en Python se utiliza el siguiente código en Python 3.7.2.

def fibonacci(n):
    if n < 2:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

Publicidad


Matlab

Para la prueba en Matlab se utiliza el siguiente código en la Matlab 2019a.

function result = fibonacci(n)

if (n <= 1)
    result = 1;
else
    result = fibonacci(n-1) + fibonacci (n-2);
end

end

Javascript

Para la prueba en Javascript se utiliza el siguiente código en la Node 11.6.0.

function fibonacci(n) {
    if (n < 2) {
        return(n);
    } else {
        return(fibonacci (n-1) + fibonacci (n-2));
    }
};

Publicidad


Tiempos de ejecución

En los cinco pruebas se ha ejecutado fibonacci(25) obtenidos los siguientes tiempos de ejecución en cada uno de los casos. Además, también se incluye cuántas veces ha sido más lento cada uno de los lenguajes respecto a Julia.

Tiempo en segundosVeces más lento que Julia
Julia0,03581
R8,711243,0
Python3,17988,7
Matlab0,94626,4
Javascript0,1323,7

En este ejemplo se puede ver que Julia, para este problema particular, es más de 240 veces más rápido que R, 80 que Python, 25 que Matlab y 3,7 que Javascript. Comprobando la velocidad que se puede conseguir con Julia. Se puede recordar que el año pasado se comprobó la mejora de ejecutar código C++ con Rcpp con esta misma función. En aquella ocasión la mejora obtenida con C++ era 176 veces más rápida que la versión de R. En el ejemplo de hoy Julia ha aumentado esa diferencia.

Una forma más clara de ver los resultados es haciendo una gráfica con los tiempos de ejecución.

Comparación del tiempo de ejecución de la sucesión de Fibonacci en Julia respecto a otros lenguajes

Conclusiones

Hoy hemos visto algunos de los motivos por los que Julia debería se más rápido que otros lenguajes que utilizados habitualmente en ciencia de datos. Comprobado mediante un ejemplo que esto es cierto. Así, en el caso de que estemos utilizando programas que sean lentos y necesitan tiempo para su ejecución, una solución puede ser traducir esos a Julia. Un motivo por lo que puede ser interesante aprender este lenguaje.

Imágenes: Pixabay (Jiří Rotrekl)

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo
  • ¿Está concentrado el MSCI World? Un análisis con Gini, Lorenz y leyes de potencia
  • Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia
  • Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)
  • La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento
  • Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows
  • Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte
  • Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)
  • Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

Publicado en: Julia

Interacciones con los lectores

Comentarios

  1. Jean dice

    junio 7, 2020 a las 6:42 pm

    Buenas Tardes, aun no comprendo como javascript pueda ser más rápido que python en tus pruebas.

    Responder
    • Daniel Rodríguez dice

      junio 7, 2020 a las 8:11 pm

      En la mayoría de los casos será más rápido el mismo código escrito en JavaScript que Python. Es algo que se puede probar fácilmente con el código de la entrada o buscar más comparativas en internet.

      Pero aún así este no debería ser el único motivo por el que usar un leguaje de programación u otro. Hay más factores como las librerías que existen y la experiencia que tengamos con el.

      Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

octubre 23, 2025 Por Daniel Rodríguez

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

octubre 21, 2025 Por Daniel Rodríguez

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

octubre 16, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Cómo calcular el tamaño de la muestra para encuestas publicado el septiembre 9, 2025 | en Ciencia de datos
  • Aplicación web interactiva que muestra un mapa de Madrid con puntos de interés destacados, creado utilizando la biblioteca Folium. Tutorial: Creando un mapa interactivo con Folium en Python publicado el diciembre 13, 2024 | en Python
  • Entendiendo la validación cruzada: Selección de la profundidad óptima en un árbol de decisión publicado el septiembre 13, 2024 | en Ciencia de datos
  • Introducción a igraph en R (Parte 9): Centralidad de Prestigio y Autoridad (modelo HITS, Hyperlink-Induced Topic Search) publicado el mayo 14, 2025 | en R
  • Aprovecha un 40% de descuento en Coursera Plus para impulsar tus habilidades en Ciencia de Datos e Inteligencia Artificial publicado el noviembre 9, 2024 | en Noticias, Reseñas

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto