For a hot minute, Julia revived a lot of attention. Haven't heard anything in a while. I have my computing needs covered by R and Julia, and last time I tried Julia (two years ago? Three?) it didn't take me long to find something that would be non-trivial to do/wasn't implemented. Now I'm having some need for faster for larger datasets, and I like the idea of a typed language. What's the status?
I have been loving using Julia for data munging and Exploratory Data Analysis. It's performant and fun to use. Here are my observations:
Some parts of the JuliaData ecosystem are uber cool, like DataFrames, TidierData, DuckDB, etc. However, they lack robust support for parquet, iceberg, accessing data in ADLS, etc. There are workarounds like using DuckDB for accessing parquet files, but that's not always ideal.
For visualization, there are tons of great libraries like Makie (complex and powerful), VegaLite (very easy to use), and PlotlyLight.
One aspect which is seriously lacking is the ability to create nice web applications. There is GenieFramework (somehow I have always encountered issues with it), then there is Pluto (also a great idea but not a great experience). For static reports, QuartoNotebooks are awesome.
Once you start going deeper into statistical analysis, my experience is hit-or-miss depending upon what I am trying to do. The TimeSeries analysis ecosystem, for example, is fragmented and not as mature.
But with the advent of LLMs, I can easily and quickly write code and create custom functions for just the task I am working on, which I believe would be great for Julia. You can quickly create a custom, performant, pure Julia implementation for the task at hand.
For interacting with LLMs, PromptingTools.jl is awesome.
Oxygen.jl is nice. But what I really need for simple analysis is something like Gradio or Streamlit. Or even something like IPyWidgets for Jupyter would be good.
I had about 14 yrs of R exposure and really liked it, but it was time to try something new. I cut over to Julia with my "retirement" and I've had no issues at all with it. With LLMs, it is different, as I needed to learn R from the ground up, "the hard way" and with LLMs, I find myself working at a more elevated level, knowing Julia less than I know R, but getting things accomplished in a quicker manner.
It does seem the ecosystem of libraries is a more limited, but from my experience, its just been a little more work on my part and I have resolved what I needed to.
When I look at my finished code, I fine it more readable and supportable than my historical R code.
Again, my experiences are different with the LLM support offered today.
A side note: I really wanted to avoid Python, it just never resonated with me. But, when I compare my Julia code with what I'd have in Python, Julia wins for me hands down.
So, for me, over all, I have no complaints and have no reason not to be with this language for a long time.
Some parts of the JuliaData ecosystem are uber cool, like DataFrames, TidierData, DuckDB, etc. However, they lack robust support for parquet, iceberg, accessing data in ADLS, etc. There are workarounds like using DuckDB for accessing parquet files, but that's not always ideal.
For visualization, there are tons of great libraries like Makie (complex and powerful), VegaLite (very easy to use), and PlotlyLight.
One aspect which is seriously lacking is the ability to create nice web applications. There is GenieFramework (somehow I have always encountered issues with it), then there is Pluto (also a great idea but not a great experience). For static reports, QuartoNotebooks are awesome.
Once you start going deeper into statistical analysis, my experience is hit-or-miss depending upon what I am trying to do. The TimeSeries analysis ecosystem, for example, is fragmented and not as mature.
But with the advent of LLMs, I can easily and quickly write code and create custom functions for just the task I am working on, which I believe would be great for Julia. You can quickly create a custom, performant, pure Julia implementation for the task at hand.
For interacting with LLMs, PromptingTools.jl is awesome.
reply