News for hackers. Stuff that matters.
Re:Julia 1.6 addresses latency issues by jampekka on Thursday May 27, 2021 @09:25PM (#27310747)
Friction in general, or friction specific to Julia?

My view is that Julia (and R and Matlab etc) ecosystem's view is a "fancy calculator". It's hard to integrate to anything else, it almost actively tries to make e.g. unix-type workflow difficult (not much CLI, everything done in REPL, e.g. package management). Not as bad as e.g. R where its almost impossible to just run a file of code instead of doing a "workflow session".

Perhaps there is some disconnect in how different parties of the discussion see the whole thing. For me this sounds a lot like "you're holding it wrong". What background are you coming from and what languages/programming environments you are familiar with? I get the impression that you don't have much general purpose programming background and somehow tend to assume that people are using "wrong workflows" due to being just stupid or something. But this is how it comes off to me, I think you mean something else, but I don't know what that is.

My approach is: I want files with code and I want to run some of those with some kind of entry point. And preferably organize it to files or something like that. This is the usual setup for general purpose programming languages. In general purpose programming you rarely tend to stick solely to one language, any larger project is usually a mishmash of different stuff, e.g. glue code in python, tight loops in C, maybe some bash thrown around to do some more trivial chores.

This is the overall structure of practically all general purpose programming languages. This requires interfacing with these languages (often done in bash or something in unixy systems at least) and tools that work regardless of language (e.g. version control, grepping, Make etc). Julia (and R and Matlab etc) just plain refuse to even consider this as a valid approach. If you mention it somewhere, you tend to get some bizarre instant putdowns that provide no real rationale, i.e. "you're just holding it wrong".

In programming I tend to think the whole computer and its OS and so on as the programming tool. My impression is that for Julia folks Julia is something totally separate from anything else in the computer. But I don't understand why. Is it that its felt that changing syntax on the fly is too cognitively demanding or something? This is something that one gets used to very fast. And also tends to ease the IMHO weird hung-ups on syntax. In fact, I think Julia has made some (IMHO misguided) syntactic decisions because they just want to do something differently from Python just for the sake of being different. I find this totally senseless.

Us CLI folks are not even asking for much. Just a way to call a program with arguments and so that you don't have to do compile identical code every time you do something. That's it. Is that unreasonable? It wouldn't take anything away from people using REPLs and Notebooks. We don't want to change the language, the language is fine and that's why we'd like to use it but just cant because these paper cuts!

I've expanded on my rationale for my workflow and how Julia makes it really difficult e.g. here, where I admittedly started with too strong wordings out of frustration: https://news.ycombinator.com/item?id=26134970

Re:Julia 1.6 addresses latency issues by ChrisRackauckas on Friday May 28, 2021 @06:00AM (#27313522)
>Perhaps there is some disconnect in how different parties of the discussion see the whole thing. For me this sounds a lot like "you're holding it wrong". What background are you coming from and what languages/programming environments you are familiar with? I get the impression that you don't have much general purpose programming background and somehow tend to assume that people are using "wrong workflows" due to being just stupid or something. But this is how it comes off to me, I think you mean something else, but I don't know what that is.

No, you're not stupid. You've correctly identified current flaws in the tools, and the community tries to lead you to the tools that are known to work well in spite of the issues. We need to work a little bit more on the other tools to make them as good, but large parts of the community are just not the right people to work on that problem. It's not a design problem, it's fixable, but you just have more people who know how to make new differential equation solvers than you have people who can compile a binary, so the tooling ecosystem moves at a different pace from the scientific packages. This is changing with the help of some commercialization aspects though, but it is something we have to be cognizant of.

Re:Julia 1.6 addresses latency issues by acmj on Friday May 28, 2021 @11:07AM (#27316270)
IMO, if Julia lacks the necessary tooling, don't over-advertise it. When I say the lack of static compilation is a design problem, I mean such a critical feature should be in v1.0. Without it, many common tasks in other languages become difficult in Julia. For language adoption, you often only have one chance. If you push someone away, it is much harder to win them back.
Re:Julia 1.6 addresses latency issues by eigenspace on Friday May 28, 2021 @03:39PM (#27319617)
IMO, you are overestimating how big a deal static compilation is. Yes, there are usecases where it's important, but acting like a language shouldn't tag version 1.0 without static compilation just sounds ignorant and self centred.

The world is bigger than you.

Re:Julia 1.6 addresses latency issues by IlyaOrson on Friday May 28, 2021 @05:26PM (#27320720)
This kind of comment just enforces the defensive perception towards the community. He clearly stated that it was just his opinion. Why not just point out that "common tasks" always refers to each own's bubble?

There is no need to insult people around.

Re:Julia 1.6 addresses latency issues by eigenspace on Friday May 28, 2021 @06:19PM (#27321192)
He says it's his opinion, but then states that the language shouldn't have tagged version 1.0 without it, and that people should not advertise julia because it's such a important feature.

I totally get that there are workflows that Julia is inappropriate for, but when someone says that a tool shouldn't be released because it doesn't target their workflow, I really don't know what to call that other than blindingly self centred.

Re:Julia 1.6 addresses latency issues by ChrisRackauckas on Friday May 28, 2021 @05:31PM (#27320769)
Why is static compilation such a major feature for large-scale differential equation solving? That's what I advertise Julia as good for. Probabilistic programming as well. Etc.
Re:Julia 1.6 addresses latency issues by acmj on Friday May 28, 2021 @09:55PM (#27322480)
Static compilation is not needed for numeric computing which Julia is great at. However, Julia is advertised as a general purpose language, which IMO is obvious in your "What is Julia?" section. You pose Julia as a mighty language for everything and your supporters think this way, too. I have had conversations with multiple Julia supporters who thought Julia ought to replace python and even C. When people like jampekka pointed out Julia lacks necessary features to make this happen, these supporters got defensive and made absurd claims beyond their domain of knowledge.
Re:Julia 1.6 addresses latency issues by cbkeller on Friday May 28, 2021 @11:13PM (#27322750)
Ah yes, Python, the famously statically compiled general-purpose programming language :p

More seriously though, just because some language may be considered "general purpose" doesn't mean it's the best language for everything, or should replace other languages outside of whichever particular applications where it excels.

Re:Julia 1.6 addresses latency issues by ChrisRackauckas on Saturday May 29, 2021 @05:43AM (#27324130)
>You pose Julia as a mighty language for everything

No I don't. It needs some work in some places.

Re:Julia 1.6 addresses latency issues by cbkeller on Friday May 28, 2021 @01:39AM (#27312094)
> Us CLI folks are not even asking for much. Just a way to call a program with arguments and so that you don't have to do compile identical code every time you do something. That's it. Is that unreasonable?

Look, everyone wants static compilation, and it's almost certainly going to happen eventually. It's not unreasonable at all to want that. The only thing that would be unreasonable is to (apparently repeatedly!) imply or assert that this lack of static compilation (and/or better caching) is due to some bizarre perversion on the part of the community.

If you want it to happen faster, then stop complaining about it on HN, get familiar with the current attempts at true static compilation in e.g. https://github.com/tshort/StaticCompiler.jl/pull/46 and start contributing yourself.

Re:Julia 1.6 addresses latency issues by jampekka on Tuesday June 01, 2021 @05:09PM (#27361328)
I don't especially want a static compiler. I'm fairly happy with Python workflow even though it's totally dynamic and interpreted, but it's dog slow on numerical stuff and the design is showing its age.

I like the "AOT-JIT" approach of Julia, and I think a separate compilation step is quite a stupid idea in the first place. I see it as some historical relic from computers with extremely limited memory (by current standards) and outdated business models that want obfuscated binaries.

My main gripe is just that I have to do it every time I run anything if I'm not using a REPL/Notebook, which drive me insane with their inconsistent and opaque global state. This could be solved mostly by caching the compilation results and compiling new stuff incrementally. But I'm starting to lose any hope that this is gonna actually happen.

Some lesser stuff follows from lack of this, but they should be relatively easily fixed.

Re:Julia 1.6 addresses latency issues by acmj on Friday May 28, 2021 @01:48AM (#27312133)
Couldn't agree more. What you said is a design flaw that the Julia community keeps denying. The Julia community also behaves defensively when it comes to performance. They refuse to accept that Julia doesn't compete with C/Rust on many non-numeric tasks in the real world. In addition, the Julia community has its own circle, its own style to write code. They will trash your code even if it is efficient and logically correct. I once compared implementations in different languages and found Julia is slower than others. Several of them jumped at me, criticized my coding style and blamed me for their fault. But in the end they couldn't improve the performance. At the Julia discourse, I was alone in the argument. That was a really bad experience.
Re:Julia 1.6 addresses latency issues by dklend122 on Friday May 28, 2021 @10:18AM (#27315592)
Can you please post a pointer to the thread in question?
Re:Julia 1.6 addresses latency issues by acmj on Friday May 28, 2021 @10:46AM (#27315951)
Sorry, I would like to keep my online anonymity.
Re:Julia 1.6 addresses latency issues by eigenspace on Friday May 28, 2021 @03:41PM (#27319628)
If you won't post a link publicly, could you at least contact the julia community stewards [1]? If there are community dynamics that are pushing people away, the stewards need to be told.

For what it's worth, I've seen some nasty (though well meaning) pile-ons in the julia discourse, but for the most part it's a pretty nice place. I find though that the Zulip [2] and Slack communities are generally more friendly and relaxes places though.

[1] https://julialang.org/community/stewards/

[2] https://julialang.zulipchat.com/