8 ms·
One thing that does annoy me about Julia is how much they focus on performance. I do appreciate the speed but the reason why I use Julia isn't because it's fast
by quixoticelixer- 6y ago
One thing that does annoy me about Julia is how much they focus on performance. I do appreciate the speed but the reason why I use Julia isn't because it's fast, it's because its (in my opinion) a nicer language than R or Python/Numpy and I would like to see more effort go into that.
- eigenspace 6y agoI do agree, but one thing I’ll say is that the performance is important because it means that you essentially need to call C code for performance. Having ll the code in a project and dependencies be in one language has some really nice advantages! Of course we do call things like C or Python whenever there’s a good implementation of something we want, and because of that we have some excellent FFI capabilities. But yeah, all that said, I’d use Julia even if it was slow. It’s an amazing, powerful and fun language that has taught me a lot and made me enjoy programming.
- systemvoltage 6y agoMy experience has been completely the opposite. Julia has been frustrating to work with. Most of the time I’m just waiting for precompilation of the packages. It’s unbelievable that the Julia core devs still haven’t addressed it. It is not fun by any means. Not even tolerable.
- jey 6y agoTry to use the REPL more instead of re-running your program from scratch. I just do `include("blah.jl")` then re-run my testcase.
- jjoonathan 6y agoAh, the statefulness foot-gun. It'll solve all your problems... if your problem is having feet! Ok, that's a little mean, there's nothing quite as convenient and simple as a REPL or notebook for ad-hoc caching, but sometimes you need the opposite and the language really needs to support that.
- gbrown 6y agoThat's my least favorite thing about R - it just looooves to save state unless you configure it otherwise. This is also why I've had trouble adopting Julia in the past - I've adopted the habit of constantly resetting my workspace or working from scripts to avoid exactly this issue, so my habits are somewhat Julia-hostile. I'm giving it another go though, since it seems like it could be really useful for algorithm-adjacent research.
- attractivechaos 6y agoI often chain unix tools, domain-specific binary executables and python scripts in shell. Julia feels very slow for this type of workflow. A few years ago there were discussions about whether Julia could replace Python. No way just due to Julia's long startup time.
- jjoonathan 6y agoDitto. I can't wait for Julia to murder Python but before it can do that it needs to push all delays out of the interactive parts (to include both REPL and cold launch) and into the package management parts, where people will tolerate delays. Anaconda decided to stick a full SAT solver into the package management and it's every bit the shitshow that you'd expect, frequently taking 30 minutes to solve and failing to converge, but people tolerate it because it's in the package management.
- attractivechaos 6y agoI have been using anaconda much less often due to its long resolving time... That said, I fully agree with you that Julia should cache precompiled binaries. Lacking this key functionality is a misstep from the very beginning.
- quixoticelixer- 6y agoIt's a bit annoying but you should only have to precompile once and it doesn't take that long
- jjoonathan 6y agoThen they should have the package manager do it. Or the package maintainer.
- eigenspace 6y agoThe current release candidate for 1.6 does exactly that. In parallel.
- jjoonathan 6y agoSweet!
- systemvoltage 6y agoThat's not true though. It's everytime I want to do anything with Julia, I need to wait upto a minute or two. Gadfly takes ages to pre-compile. Closed your terminal session? You're outta luck. Wait 2 mins please. Launch a notebook and want to start working on something? Wait 40 seconds. Wanna check something quick in Julia REPL session? Wait 7 seconds. Let me run this Julia script, wait 55 seconds. I feel like the entire community should stop doing what they're doing and fix this issue. I am afraid, it is difficult to fix otherwise it would have been fixed by now.
- daedalus_f 6y agoThis is also roughly my experience (though I haven’t tried 1.6 yet) and it really a shame - I much prefer Julia’s syntax to R’s (my primary language) and would love to switch for statistics work. The problem is perhaps that I largely do fairly simple statistics and plotting, with scripts that in R usually take seconds rather than minutes to run, and the disadvantages of the requirement to compile the code overcomes the compiled speed advantage.
- jjoonathan 6y agoThat's what pushed me away in 2015. Someone said it was fixed in... 2018 I think, but I tried and it wasn't. It still isn't? Ouch. If it comes to pushing binaries into the package manager, that's what it comes to, but waiting for a minute for the graphing library to load just isn't OK in this day and age.
- oivey 6y agoI just tried it, and it took 13 seconds to load and plot some random numbers. It could be better but it’s an acceptable trade off for my usage. Not as good as Python in this regard, but much better than Matlab.
- jjoonathan 6y agoIs 13 seconds a build cache hit or miss?
- oivey 6y agoIt’s a precompilation hit, but it requires some compilation every time. Thinking about Julia like you might think about incremental C++ builds isn’t exactly right. A somewhat useful analogy though is that Julia is kind of like C++ template code. This is why it is so flexible, but also why compilation isn’t very cacheable. This is also why it is tricky (but possible) to do ahead of time Julia builds.
- ChrisRackauckas 6y agoIt's approximately halved in Julia v1.6 BTW. It's not perfect but continually getting better.
- deleted 6y ago[deleted]
- eigenspace 6y agoI work with julia every day and really don't spend much time waiting for things like compilation or precompilation. > It’s unbelievable that the Julia core devs still haven’t addressed it. It is not fun by any means. Not even tolerable. While I never really thought this was a big deal, the Julia devs certainly do, and I'm a little upset on their behalf that you'd say this. An amazing amount of developer time and effort has been going into reducing loading times and compiler latency lately. The currently release, 1.5.2 is leagues faster at package loading than the previous version and the upcoming 1.6 release candidate is even faster. They recently implemented multi-threaded precomilation and have been going on a method invalidation crusade doing largely thankless work to deal with exactly this sort of whining.
- systemvoltage 6y agoI applaud Julia developers for their work. They just haven't focused on the UX of using Julia on a daily basis. I have been forced to use Julia as a maintainer (not author) and I feel totally exhausted, defeated and uninspired after working on Julia code. Just being honest and voicing my opinions. If it hurts the people that worked on it for years, I am sorry.
- chappi42 6y agoHave you asked on https://discourse.julialang.org/ https://discourse.julialang.org/ already? Maybe, hopefully, you can find help there to feel less exhausted. -- It's not an opinion when you e.g. say that precompilation has not been addressed when it is being worked on (with much cost, I'd suppose). Same for haven't focused on the UX [snip]. In case you aren't on the julialang discourse I really encourage you to register and ask.
- systemvoltage 6y agoThanks, I haven’t reached out but mostly seek help on SO.
- chappi42 6y ago
- VorticesRcool 6y agoI don't think it's fair to say that it has not been addressed. See this recent blog post for instance: https://julialang.org/blog/2020/08/invalidations/ https://julialang.org/blog/2020/08/invalidations/
- systemvoltage 6y agoI’ve been a software engineer for many years. A lot of what I and my colleagues do is glue, sew and plumb things together. I’ve never had to write a crazy algorithm. Nor have I had to do any graph traversal. Or anything that impacts performance. For data analysis, pandas and numpy are plenty powerful. At no time in my career have I said “ditch all this because it’s too slow”. Perhaps others have, but I’m perfectly fine with Python. It’s a beautiful language with ability to hack into basically any part of the language. Batteries, flint, tent and a campsite included.
- quixoticelixer- 6y agoI sort of agree, although there are certainly quite a few Julia users who do use it for performance. On the other hand I much prefer Julia to Python/Numpy/Pandas regardless of speed.
- gameswithgo 6y agosomebody has to make the stuff you guys glue together.
- systemvoltage 6y agoTotally. And they can use C/C++/Rust which is what most do when performance really matters. I don't see Julia as a general purpose langauge. I don't see high performance network stack written in Julia ever. I see Julia as an academic scripting language that happens to be fast * * Debatable.
- dnautics 6y agoreally? I would think the number of people who would need to use a high performance number crunching for their business logic is much higher than the number of people who need a high peroformance network stack. The network is usually pretty slow, and almost always the bottleneck is not any code that hasn't already been integrated into the OS kernel. For 99% of people, the OS network stack is fine.
- 6y ago
- mac01021 6y agoWhat specifically would you like to see effort spent on? As you say, it's already a nicer language.