¿Julia (lenguaje de programación) está creciendo rápidamente?

Si. Y no hay una competencia seria (al menos para sus aplicaciones / ciencia objetivo).

Es decir, crece exponencialmente en número de usuarios y parece finalmente ganar el interés de quienes deberían saberlo. Tal vez tenía en mente, usuarios / usos o todas las principales empresas interesadas en Julia:

  • Lenguaje de programación Julia: esta es la nueva habilidad que los fondos de cobertura están pidiendo – eFinancialCareers
  • Los mejores proyectos de aprendizaje automático para Julia

Tenga en cuenta que sé de un idioma de crecimiento más rápido, Go; es casi lo opuesto a Julia, sin avanzar en el estado del arte, y al menos completamente claro, que para el público objetivo (si no todos …) Julia es mejor que eso (y los idiomas antiguos, por ejemplo, Python, C ++ , Fortran); Estoy seguro de que Julia es el idioma de más rápido crecimiento, al menos para su audiencia; Me gusta verlo popular en otros lugares …

Revisaré otras métricas por si acaso, te refieres a uno de esos:

  • El lenguaje en sí, lo que significa que la sintaxis central (número de palabras clave) es bastante estable. Dejaron caer una palabra clave que conozco … sin embargo, han agregado muchos operadores Unicode (opcionales) con el tiempo (y en general con el soporte Unicode 9.0, Julia es buena). Pero la sintaxis central es más o menos la misma, desde la versión 0.2 (cuando comencé a seguirla) a través de las versiones estables hasta 0.6.
  • Ha habido algunos cambios de frenado, es decir, una nueva semántica , también en la última 0.6 (1.0 está planeado para 2017 con probablemente algunos cambios más). No hago un seguimiento de todos, ya que no me afectan; No estoy usando mucho la biblioteca estándar (por ejemplo, álgebra lineal u otras partes relacionadas con las matemáticas). Por ejemplo, este problema (no lo leí todo): tomar en serio las transposiciones de matrices · Problema # 20978 · JuliaLang / julia no me concierne. Ha habido una serie de problemas de “tomar … en serio”. Si esto fuera C ++ (o Python), no solo no lo tomarían “en serio”, no tendrían ningún soporte (en una biblioteca estándar; ¿soy injusto aquí o no estoy actualizado en las últimas versiones de C ++?) . Es decir, soy consciente de que no hay soporte de matriz / álgebra lineal (a excepción de permitir en general operadores de sobrecarga), en C ++ (lo perdí o está todo en Boost, etc.). Desde mi punto de vista, si Julia (solo) se tomara las matemáticas tan en serio como C ++ o Python, como lenguaje, entonces habría sido estable hace años . Python 3.5, recientemente (en 2015: Novedades en Python 3.5) agregado, con PEP 465, un nuevo operador de multiplicación de matrices: a @ b . Es decir, durante más de dos décadas, Python no se tomó en serio el álgebra lineal, como lenguaje (sin hablar de las bibliotecas adicionales). Aún así, este nuevo operador no es ideal; Me gusta tener el mismo operador para escalares y matrices … (y otra sintaxis “buena para las matemáticas” (la mejor de su clase) que tiene Julia). Por ejemplo, algunos de los cambios recientes se refieren a cómo el operador de transposición ahora le ofrece una “vista” (misma sintaxis, semántica ligeramente modificada) sin hacer ningún trabajo real para “transponer”. En contraste con no tener ‘como operador en decir C ++.
  • Recomendaría la última versión estable de corrección de errores, EDIT: que era 0.5.2 pero ahora recomiendan 0.6, la última línea estable. Para su información, si desea ver lo que ha sido respaldado desde 0.6 / master: [release-0.5] backports para 0.5.1 por tkelman · Solicitud de extracción # 20736 · JuliaLang / julia
  • Como puede ver en los gráficos aquí: JuliaLang / julia just Jeff Bezanson ha agregado 462,992 líneas de código que parece mucho, pero tenga en cuenta más obvio de los números de Viral Shah : eliminó 289,419 líneas (más de lo que agregó). La base de código de Julia está bajando estrictamente, no “creciendo”, pero eso probablemente tampoco sea cierto, ya que gran parte del código se ha movido de bibliotecas estándar a bibliotecas externas.
  • Lo que me lleva a los paquetes [registrados] (“ecosistema”). Parece que está creciendo linealmente, un poco más de 1400 paquetes ahora; con paquetes grandes y pequeños; Veo nuevos e interesantes regularmente, por ejemplo, un marco web más: wookay / Bukdu.jl “influenciado por el marco de Phoenix (http://phoenixframework.org)”. Algunos son realmente geniales como SIUnits.jl y este nuevo que encontré: JuliaMath /RoundingIntegers.jl

Para citar el antiguo artículo (ahora finalmente revisado por pares / publicado) de los principales diseñadores, incluido Jeff Bezanson (que obtuvo su doctorado para Julia):

http://julialang.org/publication…

[ Problemas de lenguajes orientados a objetos (tradicionales) basados ​​en clases , por ejemplo, Java mencionado (pero también incluido Python)]

Del mismo modo, uno tiene que modificar cada método de matriz completa, etc. Creemos que los métodos basados ​​en clases, que pueden llevarse bastante lejos, no son lo suficientemente potentes como para expresar toda la gama de abstracciones en la informática científica . Además, la carga de la encapsulación crea un muro alrededor de los objetos y métodos que son contraproducentes para la computación numérica.

[..]

Realizamos un análisis para corroborar la afirmación de que el despacho múltiple, una idea esotérica para la computación numérica desde lenguajes informáticos, encuentra su aplicación asesina en la computación científica .

[..]

En la informática numérica tradicional hay personas con habilidades especiales conocidas como escritores de biblioteca. La mayoría de los usuarios son, bueno, solo usuarios de bibliotecas. En este caso de estudio, mostramos cómo alguien

[..]

Las elecciones de diseño aparentemente inocuas en un lenguaje pueden tener implicaciones de rendimiento profundas y generalizadas . A menudo se pasan por alto en idiomas que no fueron diseñados desde el principio para poder ofrecer un rendimiento excelente . Consulte la Figura 5. Otros aspectos del diseño del lenguaje y la biblioteca afectan la usabilidad, la capacidad de compilación y el poder de la funcionalidad proporcionada.

[..]

Debido a que el compilador sabe que la suma y multiplicación de enteros son asociativas y que la multiplicación se distribuye sobre la suma, puede optimizar todo el ciclo a solo una multiplicación y una suma. De hecho, si f (k) = 5k − 1, es cierto que los diez veces iteran [..] = −2441406 + 9765625k.

[Agregué énfasis.]

¿Julia (lenguaje de programación) está creciendo rápidamente?

Gracias por A2A

Sinceramente, no puedo ofrecer ningún número, pero creo que está creciendo, pero no muy rápido. Al menos no por ahora. Julia tiene sus ventajas y hace las cosas diferentes a otros idiomas. A menudo lleva tiempo convencer a las personas de que este camino es bueno y comienza a atraer a más y más personas. Julia no estuvo muy estable por mucho tiempo, lo que también me mantuvo alejado de eso. Pero creo que está ganando más estabilidad y podría valer la pena intentarlo.

Principales tendencias de lenguajes de programación: el surgimiento de Big Data

Julia ingresa a los 50 principales lenguajes de programación

Crecimiento acelerado: la popularidad de Julia con los programadores está en alza

Según RedMonk, no. Su crecimiento parece haberse estancado.