6 ms·
For a scientific / academic focused language, I can’t help but feel like blog posts about Julia always seem to evangelize performance in the language in a biase
by blindseer 4y ago
For a scientific / academic focused language, I can’t help but feel like blog posts about Julia always seem to evangelize performance in the language in a biased or subjective manner. Anyone else get the same sense?
- rich_sasha 4y ago+1. And aggressively dismiss anyone who doesn’t love it. I’d quite like to like Julia, but that’s one of my sticking points.
- jstx1 4y agoThey’re taking what they can. The language isn’t getting the adoption that it would have if it was as good as the small community around it claims that it is. It just comes across as a cult.
- kolbe 4y agoI really like Julia. I wouldn't say I come off like a cultist, but I do think they spend an annoying amount of time on PR for themselves. I think Julia is stuck in a spot where they are better than say R/Python for scientific computing on a fundamental language structure level and package manager level, but that it's not good enough to make up for the fact that those languages have a more robust ecosystem.
- short_sells_poo 4y agoI think many people underestimate the inertia present in a large community, particularly one like scientific computing. I think Julia is much-much better than R/Python at basically everything important (as a language and platform). I certainly wouldn't call the python ecosystem robust. It's decades upon decades of ugly hacks and hacks upon hacks. The pandas internals are a Kafkaesque nightmare. But R/Python is where millions of people work daily and produce a huge amount of mindshare and libraries. You'd need an incredible amount of resources to replicate that in any other space. I'd argue though that this mindshare is not there due to Python/R as a language (and platform) being better, but simply because there were no better alternatives 10-15 years ago and by now the sheer inertia makes it impossible to stop. You'd need to convince a sufficient portion of people to move to Julia at more or less the same time. Few people want to be first movers. These tend to be the ones who actually care about the qualities of the platform, not just "get the work done and clock out". If you are a data scientist, you won't be paid for moving to Julia. You'll be paid for coming up with working models. And you take a serious risk by moving to a new platform with little adoption. The platform might die, taking your tools and processes with it. You won't be able to rely on your colleagues advice about technical issues. You can run into bugs more frequently simply because fewer eyes have looked at the ecosystem. The end result is that few people take the plunge.
- jstx1 4y agoI would outright disagree with this - data science and ML is a subfield of software where you have a much higher ratio of greenfield projects over the past decade, and you also have many people who are moving to the field or are starting out in it. It also attracts the kinds of people who will be willing to use cool tech just for the sake of it. If that's not conducive to picking a new programming language with lots of promises, I don't know what is. And they still aren't picking Julia.
- short_sells_poo 4y agoWhat do you disagree with if I may ask? Most of the people I work with really like Julia, we have dabbled with it and would like to see it succeed python/matlab/r. Why aren't we moving, you ask? Because moving to another ecosystem does not put bread on the table. I cannot go to clients and say: this past 6 months we made no improvements to our strategies, but look, we migrated to a new programming language that is used by a fraction of a percent of our peer group. The field attracts clever people and there are many greenfield projects. But just because we start a new project, it doesn't mean that doing it in a tiny ecosystem is sensible. Some firms can do it. Jane Street has the means to basically be "OCAML The Systematic Trading Language". This is not a luxury afforded to most. And thus we get a chicken and egg problem, where nobody wants to be the sole first mover as there's little advantage to it. At the same time, we all see that everyone would be much better off if we moved.
- deleted 4y ago[deleted]
- derbOac 4y agoI've been using R since beta and Julia is the first thing that I've seen since then in numerical computing that reminds me of that time. Julia still has a lot of empty library space compared to R or Python, and isn't perfect, but my guess is it will catch up. R did when it was being compared to SAS, fortran, C/C++, lisp, and so forth. I'll be honest and say that I wish something else more general-purpose (to the point of say, having a bootstrapped compiler) would be in its spot but I can't really complain right now. Maybe something else will catch up. I think for me personally is that R and python is a bit in denial about its performance limitations when it comes to hard problems. You pretty much have to drop down into C/C++ to address them, and for certain things, julia really does do many times better time-wise, without the weeds of C/C++. I think there's some people (myself probably included) that are tired of being forced to choose between the C/C++ and R/python worlds. I think there is a bit of overhyping and/or cult-like nature of julia but I also think some of it is trying to convince people that you don't have to choose between expressiveness and performance.
- croes 4y agoSince when does popularity have a causality with quality?
- jstx1 4y agoSince people have been able to choose what tools to use. It might not be a perfect relationship - there will be lagging effects and other factors, it will vary based on the specific task, and some of it will be subjective - but you can’t pretend that there is no relationship at all.
- croes 4y agoIf programming is your job you seldom have the choice of the programming language. There are lits of external factors like costs, available support, availability of compilers for certain hardware, support of the existing tool chain, learning curve, career chances etc. Python and JavaScript aren't the best but sufficient enough
- jstx1 4y ago> If programming is your job you seldom have the choice of the programming language. This isn't true. Sure, you can't unilaterally pick whatever language you want when you work with other people. But for every piece of software ever built somebody had to decide what to build it with. And even though Julia has existed for 10 years, almost nobody is picking it over the alternatives.
- croes 4y agoI doubt that any software company switches it main programming language and throw away all of it's gathered experience. So it's not about quality. You need to gather a certain critical mass of users to get popular. Otherwise Java , JavaScript or Python would have been replaced already. Most of the time accessibility beats performance. What do you think why Visual Basic was so popular and why Python is now?
- ted_dunning 4y ago
- celrod 4y agoSimpleChains.jl/LoopVectorization.jl author here, and a co-author of the blog post. I love working on performance. It's fun and challenging. Trying to best high scores (times/benchmarks) is fun and gamifies it. Personally, I answer tons of questions online (e.g. the Julia discourse and Slack) related to things like SIMD because I find it fascinating and want to share this excitement with others. Same thing when it comes to a blog post or announcing a package; I focus on what motivates me most.
- blindseer 4y agoChris, your work is phenomenal and I super appreciate everything you do. I think my comment was mainly that if I were viewing it objectively (for example, knowing nothing about Julia), I think a lot of Julia's evangelizing comes off too strong. This is definitely not directed at you btw, but just that the community as a whole is just overly positive and ONLY positive. For example, if you search for Rust on hacker news or even browse /r/rust, you'll need 80-90% pro rust, but you will also definitely see another 10-20% of posts being very critical about Rust. And these critical posts are even from prominent members of the Rust community. Additionally, there's a roadmap for Rust posted very often. In Julia however, I can count the number of "negative" Julia posts I've seen on one hand. Don't get me wrong, I really like Julia, but there are A LOT of things that need to be improved that I know about and probably more that I don't even realize. It would be nice to have experts post and comment on that, and the core Julia members describe how they are going to tackle that. IMO, that discussion does happen, but it is largely on Slack and forever lost to Slack's history.
- amkkma 4y agoAs a Julia evangelist, your point is well received. I've definitely been making an effort to temper any discussion of benefits with associated drawbacks. Though, I just want to express WHY I'm so enthusiastic. I've used both R and Python for DS. I'm familiar a bit with matlab. I've played with Keras and Pytorch. Aside from all the technical and productivity benefits Julia just feels GOOD to write in, compared to all of the above. It's a real quality of life improvement + a feeling of freedom in that I can express my ideas, compose them with others all without worrying about a different compiler or framework or array type system or having to code units in c++. This is freeing and honestly, it would be sad if it's relegated to niche status forever. There's definitely a selfish component here, but I'd like everyone to feel the same benefits. It's hard to go back to pandas or tf or pytorch after using chain.jl, dataframes.jl and flux. Yes, there are drawbacks with compile times and things like that, which can be annoying. But I keep working in julia because the benefits are worth it, those aren't intrinsic to the language, and most importantly, there's a roadmap to fixing them: https://discourse.julialang.org/t/precompile-why/78770/8 https://discourse.julialang.org/t/precompile-why/78770/8 with progress that is tantalizingly close to the end goal of easy dev and easy deployment.
- amkkma 4y agoDo you have a specific example? Did they miss some pytorch optimization? It takes work to write fast idiomatic code. It's not fair to expect someone to be able to squeeze every ounce of performance across n languages and n frameworks. So it's natural that they're not going to know every trick. Part of what Julia offers is that you need less tweaking, and the whole stack is in julia so it's quite hackable.
- Fomite 4y agoIn fairness, for the last major scientific/academic ML-based project I was working on, we had to make a lot of compromises due to speed and performance.
- toxik 4y agoMy experience is that you use as large a model as your target platform and application allows. Bigger is better.
- sundarurfriend 4y agoIt's largely a matter of where the community gathers, that ends up giving this impression. You mention r/rust downthread - r/Julia is quite inactive in comparison. However, the places where Julia discussion actually happens - Discourse, Zulip, etc. - do contain a lot of criticisms, wishlists from other languages, roadmaps for improvements, etc. But these are not places you would randomly come across if you're not involved with Julia, like a subreddit would be. And the scientific/academic focus of the language that you mention is actually another reason this happens. When the language's users are (primarily) developers, they (we) nitpick and think about alternate designs and blog about them for no reason at all. The average Julia user instead would just ask in the discourse/other forums, maybe complain, and then move on with their research/engineering problem. So the blog articles that end up getting posted here are most often by the core language/package developers announcing new features, breakthroughs, and other positive news.
- gnufx 4y agoYes, as a long-term Lisper in research computing who knows a bit about linear algebra implementation and compilation. I don't see the comparisons I think are relevant to claims of how much more performant it's supposed to be. It's worth pointing out that you don't get the highest performance (close to peak) for things like normal GEMM on something like SKX a priori, at least from what I've seen. It needs experimentation, like fiddling with block sizes and prefetching. An example I've asked about previously: When comparing a recursive implementation of an LAPACK operation with OpenBLAS, is that using the RELAPACK(?) implementation in OB, and if not, how does using a similar algorithm in C or Fortran compare? Generally, I want details of measurements.