Remix.run Logo
npalli 8 days ago

Strange to read this article and find no mention of Julia (but APL, Mojo, MLIR BQN etc.. which are not exactly widely used languages). It checks many of the boxes

User-Extensible Rank Polymorphism is just beautiful with the broadcast dot syntax. I don't think any other language has this clean and flexible implementation.

Others -- GPU programing, parallelism, etc. are pretty good with Julia. Real shame it hasn't taken off.

electroly 8 days ago | parent | next [-]

I'm in a position of supporting a Julia environment but not writing Julia myself. From my perspective, they need to fix time-to-first-plot before it can be adopted more broadly. It's horrendous. The "2-3 minutes" I see online is an aggressive estimate; it's more than that for our modest set of data science packages on very beefy workstations. I had to use PackageCompiler.jl to build a sysimage which shifted a ton of burden onto me (and onto GitHub Actions) to avoid a long precompile on every user machine. I had to do the same to get my Julia Docker image to stop precompiling on every new cloud machine even though it had already been precompiled during docker build. I would describe this process as a nightmare, and it was a serious problem--the thing was precompiling every time on every job run in the cloud using the docker image.

xgdgsc 8 days ago | parent [-]

That' s solved more than 1 year ago https://news.ycombinator.com/item?id=38783886 https://modernjuliaworkflows.org/optimizing/#compilation .

aragilar 7 days ago | parent [-]

Are you actually sure it's solved? I note that Julia proponents have a history of claiming that an issue has been solved when it is apparent that it has not been solved (see e.g. https://danluu.com/julialang/).

electroly 7 days ago | parent | next [-]

The events of my post happened in the last two months on Julia version 1.11.5, and this poster simply linked to a primer on PackageCompiler.jl which is the thing I said I was using in my post. It's not solved; at best there are complicated mitigations that let you control when the long compilation happens without avoiding it. If you try out Julia, you will run into the issue, and as a first-time user you won't be prepared to implement the mitigations, none of which are suitable for ad hoc usage. The sysimage only works for us because we rarely change our packages so we can build it ahead of time in GitHub Actions.

xgdgsc 7 days ago | parent [-]

The tradeoff between compilation time and programmer productivity and running speed is worth it compared with using any other language. You should consider most users don' t need to build an image . They just do things in the REPL with Revise.jl (which is fast). Or use a bit of PrecompileTools.jl to get good enough startup time (which isn' t complicated if you are the code writer). Package compiling works even large and slow is a bonus. https://pypl.github.io/PYPL.html Julia still grows despite all those controversial articles for a reason.

xgdgsc 7 days ago | parent | prev [-]

Yes. I don' t know why you' d rather trust an article from 10 years ago to understand current status.

pjmlp 7 days ago | parent | prev | next [-]

It has on some industries, keep it steady and slow, eventually more people will notice it.

https://juliahub.com/industries/case-studies

Many languages could dream to have even a third of such high profile case studies.

wolvesechoes 7 days ago | parent | prev | next [-]

Shame that it had so many nice ideas, but everything about Julia is half-baked at best.

I like to play with it, but just it.

slwvx 8 days ago | parent | prev | next [-]

> User-Extensible Rank Polymorphism is just beautiful with the broadcast dot syntax ...

Just to be clear, I guess that Julia's broadcast (dot) syntax is an implementation of "User-Extensible Rank Polymorphism"; is that right? Or does Julia's dot syntax include more than UERP?

capyba 8 days ago | parent | prev | next [-]

I love working in Julia, it makes clean numerical code so easy to write.

mighmi 8 days ago | parent | prev | next [-]

Julia may be cool, but it's not an array language in the tradition of APL.

v9v 8 days ago | parent | next [-]

I've understood array language to mean "a language with focus on array processing" rather than "APL descendant". The array language comparison I found online lists Fortran, MATLAB, Julia etc. as array languages: https://github.com/codereport/array-language-comparisons

cl3misch 8 days ago | parent | prev | next [-]

I think none of the languages in the linked article are, and that's not what it's about as sibling comments point out.

oivey 8 days ago | parent | prev [-]

Sure but neither is Mojo.

8 days ago | parent | prev [-]
[deleted]