this post was submitted on 15 Jul 2024
34 points (94.7% liked)

Programming

17354 readers
250 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

Did #julialang end up kinda stalling or at least plateau-ing lower than hoped?

I know it's got its community and dedicated users and has continued development.

But without being in that space, and speculating now at a distance, it seems it might be an interesting case study in a tech/lang that just didn't have landing spot it could arrive at in time as the tech-world & "data science" reshuffled while julia tried to grow ... ?

Can a language ever solve a "two language" problem?

@programming

all 33 comments
sorted by: hot top controversial new old
[–] astrojuanlu@social.juanlu.space 17 points 3 months ago (3 children)

@maegul @programming Maybe nobody (save for the Julia developers) ever cared about the "two language problem". I see folks are just happy writing high performance tools in Rust with Python wrappers.

In any case, I'm happy that the Julia folks gave birth to things like DifferentialEquations.jl, truly a piece of art. Anything that helps scientists and engineers move away from MATLAB is welcome.

[–] FizzyOrange@programming.dev 3 points 3 months ago (1 children)

Anything that helps scientists and engineers move away from MATLAB is welcome.

The MATLAB language may be pretty bad but IMO that's not what makes MATLAB good. Rather it's:

  1. Every signal processing / maths function is available and well documented. I don't know how well Julia does on this but I know I wouldn't want to use Python for the kinds of things I used MATLAB for (medical imaging). You don't have to faff with pip to get a hilbert transform or whatever...

  2. The plotting functionality is top notch. You can easily plot millions of points and it's fast and responsive. Loads of plotting options. I just haven't found anything that comes close. Every other option I've tried (a lot) only works for small datasets.

[–] astrojuanlu@social.juanlu.space 4 points 3 months ago

@FizzyOrange The problem with Python for signal processing and stuff like that is not pip (I know it's a meme by now, but it's really not that bad) but rather, the fact that some SciPy subpackages are barely maintained

[–] maegul@hachyderm.io 3 points 3 months ago

@astrojuanlu @programming

> Maybe nobody (save for the Julia developers) ever cared about the "two language problem"

Yea, it’s what prompted my post. I saw in a rust forum push back on the two language thing but from the lower level side (where they were arguing about introducing lazier memory management facilities on the basis that you should just use swift/Python etc).

And re MATLAB … absolutely! This is not a diss against Julia at all.

[–] FizzyOrange@programming.dev 11 points 3 months ago (2 children)

IMO Julia just had way too many big issues to gain critical mass:

  1. Copied 1-based indexing from MATLAB. Why? We've known that's the worse option for decades.

  2. For ages it had extremely slow startup times. I think because it compiles everything from C, but even cached it would take like 20s to load the plotting library. You can start MATLAB several times in that time. I believe they improved this fairly recently but they clearly got the runtime/compile time balance completely wrong for a research language.

  3. There's an article somewhere from someone who was really on board with Julia about all the issues that made them leave.

I still feel like there's space for a MATLAB replacement... Hopefully someone will give it a better attempt at some point.

[–] moonpiedumplings@programming.dev 2 points 3 months ago (1 children)

I still feel like there's space for a MATLAB replacement...

GNU Octave?

https://en.wikipedia.org/wiki/GNU_Octave

using a language that is mostly compatible with MATLAB

[–] FizzyOrange@programming.dev 2 points 3 months ago

The only benefit Octave has over MATLAB is that it's free. Which is something I guess, but in practice it is MATLAB without the benefits of MATLAB.

It's plotting functionality sucks as much as anything else, it has fairly good toolkit support but not remotely like MATLAB, and it still has the mediocre MATLAB language. Worse - with custom incompatible extensions!

[–] maegul@hachyderm.io 2 points 3 months ago

@FizzyOrange

Yea I remember reading about some deeper issues with the language (Dan Luu was quite dark on it I think) and that more or less turned me off. At the time I would have had to have been amongst some dedicated users urging me on to consider adoption.

[–] Womble@lemmy.world 9 points 3 months ago* (last edited 3 months ago) (3 children)

Why is everyone in this thread constantly putting meaningless @ mentions at the top of their replies?

[–] TerrorBite@pawb.social 12 points 3 months ago (2 children)

The thread was started as a toot by a Mastodon user. All of the replies are actually Mastodon posts. Thanks to the magic of the Fediverse, these render in Lemmy as comments.

[–] eronth@lemmy.world 6 points 3 months ago

As cool as that is, it does end up looking confusing. Maybe some quick visual indication (possibly customized by each user) to show source of comment could help.

[–] dactylotheca@suppo.fi 5 points 3 months ago

💫 the magic of the Fediverse ✨

[–] maegul@lemmy.ml 9 points 3 months ago

Yea I try to post from mastodon when it makes sense. You’re seeing the mentions as that’s how mastodon links things together. Here on lemmy, the connections are all more structural and so implicit.

This is about as good as lemmy-mastodon interaction can be: when someone posts from mastodon to a lemmy community.

Though now, with automatic hashtag-ing since v 0.19.4, the two can work together better. See https://hachyderm.io/@maegul/112720255264101773

[–] unique_hemp@discuss.tchncs.de 1 points 3 months ago

They're most likely actually responding from Mastodon.

[–] hrefna@hachyderm.io 7 points 3 months ago

@maegul

In a real way it feels like there's a "hump" with language adoption. Some languages clear it, some don't, and I don't think we have a good feel as an industry for what makes a language "successful" in this regard.

Some things obviously help, other things obviously hurt, but mostly what succeeds or doesn't seems to be a matter of luck intersecting with need.

@programming

[–] mvirts@lemmy.world 7 points 3 months ago (1 children)

Python was first released in 1991, Julia in 2012. I think it may be too soon to call the race.

[–] maegul@hachyderm.io 2 points 3 months ago

@mvirts

Problem with that logic is that python was essentially "reborn" at some point 2010-2012.

That's when scipy, pandas and notebooks all came together, and with early pandas putting python on the map more than some (cough - Guido - cough) are willing to admit.

Of course the maturity of the ecosystem by then is part of it ... but also pushing through the python 3 situation wasn't trivial and likely speaks to the momentum the science stack brought to the ecosystem.

[–] festus@lemmy.ca 6 points 3 months ago (1 children)

So at my previous employer I developed using Julia a custom ML model which ran, but the performance just wasn't good enough for what I needed despite trying to aggressively optimize. I ended up rewriting in Rust (and calling through R) which ended up being like 10x faster. At my current job I program a mixture of Rust and Python.

If Julia were more peformant then it could potentially be an alternative to Python/R users having to learn Rust - but if you're looking for top performance, some of your codebase is already written in R/Python, and you're already willing to learn another language, then learning something like Rust naturally seems the better choice over Julia.

The one thing I did like about Julia - it took barely anytime at all to build a working prototype.

[–] maegul@hachyderm.io 1 points 3 months ago (1 children)

@festus

In general, how much more performant would you say Rust is or can be than Julia? Any good resources on this?

What's interesting about this take is that it targets the whole "two language" thing and implies that it might be a fool's errand.

[–] festus@lemmy.ca 1 points 3 months ago

I think it really strongly depends on what you're programming - I know in some instances Julia's performance can be nearly identical to languages like Rust. I suspect in my case it related to Julia being a garbage collected language, as my algorithm involved creating very large dynamic structures in memory before serializing them, clearing the memory, and building another one. Since Rust has no garbage collector it knew exactly when and what to drop from memory. In my case I had roughly a 10x(!!) speed-up. Funny enough an even earlier version of that algorithm was programmed in Java, and Julia was roughly 10x faster that it, so Julia isn't the worst of the pack.

[–] EpicBear@genomic.social 6 points 3 months ago

@maegul @programming Perhaps this is all kind of like evolution: something that evolves to be sufficient doesn't necessarily need to further evolve to some pinnacle (however that may be defined it its context). R and Python are imperfect in so many ways, but sadly it gets the job done for most folks. I think people who explore Julia are simply not content for one reason or the other with R and Python (perhaps also Matlab), but they likely have gotten a lot of work done with R & Python.

[–] muratk5n@fosstodon.org 4 points 3 months ago* (last edited 3 months ago)

@maegul @programming I had already switched to Python to solve the "Matlab problem". I've been Julia-adjacent, looked at it with an open mind but it doesn't make sense to switch to it when I can do almost everything I need in Python. A little diss here, just when we arrived at a free, available solution for widely available sci/biz programming envrionment (Python) Julia peeled off some whose code becomes unusable for most consumers of code.

[–] Kissaki@programming.dev 1 points 3 months ago

Julia was my scripting and util programming language of choice for a while. But it couldn't keep me. I'm not too confident in the reasons anymore, it's been quite a while ago. I think the dynamic, unsafe aspect was a part of it, but also how it felt overall, or with code structuring?

Maybe I've been pulled away by better alternatives. (Using C# also for smaller util projects.) Recently, I've been using Nushell for scripting, which is new syntax to learn, but I've been enjoying functionality-wise.