Why Julia - A Manifesto

well, I’d agree with you that the wording I suggested was not optimal. I still think the original wording may result in overly optimistic expectations followed by disappointment.

1 Like

I strongly disagree with you. Take me as an example, Julia enables me to be not only more (huge) productive but also be able to write advanced algorithms that I cannot even try to do with C++. BTW, the Julia code is also as fast as my legacy C++ code.

As seeing some posts express their kinda of negative review. I feel I must say out loud that I totally agree with @Datseris and I love his style of writing. I give him 100% support!

5 Likes

Thanks for the effort! This text attests to what I have always thought about Julia: a programming language that empowers scientists and engineers and helps them to be more productive.

I hope the website of Julia lang will publish an abridged version of the text.

Criticism is not the same as negative review. Actually, jacobusmmsmit writes

and I agree with him on this point to. @Datseris , thank you for your effort!

Now some more critical points:

Julia has software organizations for seemingly every scientific area.

What about chemistry?

The fact that Julia matches Python’s library ecosystem, and in many fields it surpasses it

First, it is a very strong claim. Second, it is at best difficult to substantiate (even though I’d agree that in many a few fields Julia is objectively stronger). Third, something is claimed to be a fact, whereas it seems to be just a hypothesis. Personally I am very allergic to that kind of, sorry, demagogical tricks, and I guess many scientists tend to be attentive readers, too. @Datseris , I’m pretty sure you didn’t mean it that way, but that is what stands in your text.

I think it is important to be able to substantiate every single claim of the Manifesto.

Also, personally I think the Manifesto would be (even) more convincing for the target audience if also informing the reader about the typical Julia noob problems - maybe in an accompanying text.

4 Likes

FWIW:

1 Like

@Eben60 I agree. I’ve updated the document to say “some” instead of many: relax statement of many to some · Datseris/whyjulia-manifesto@65d09a9 · GitHub . Now it appears to me that the claim is a rather trivial statement of fact.

Is it really so difficult to substantiate? The document provides links to several top-of-the-class packages like DifferentialEquations.jl, DynamicalSystems.jl, JuMP.jl, Agents.jl, Turing.jl, etc. More than 2 references quality as “some”, so I got the “some” aspect of my claim covered. Some of these packages even went the extra mile of making an explicit comparison across all similar software in all languages, and established their top quality, so this is also covered with rather objective means.

Is this enough evidence?

And personally I am allergic to claims without any substantiation. Yes, what I state is a fact, that’s what I truly believe. You claim it isn’t a fact, and it is just a “hypothesis” when I have provided up to 20 links in the document. Yet you provided nothing for your own counter-claim.

Can you substantiate your claims please? I would absolutely love it if I can make the document more objective, while still keeping it an opinionated document. My problem is, I don’t know how, because there isn’t much information in the counter-claims done here. If you are convinced that what I say is arbitrary/handwavy/hypothesised, please show me how I am wrong. Don’t just say that I am wrong, and expect me to believe it as the absolute truth.

6 Likes

Quotes as example only.
Beware: this Manifesto is a VERY DIFFICULT task! Finding the right tone and the right balance between objective facts and only believes, but we all agree on them (more or less), is not a trivial or a minor thing to do. It will never be perfect for everybody. At some point we need to agree that it’s best to have it like it is, instead of having nothing, even if one find this or that not perfectly the truth.

It’s to early, but perhaps it could be decided by survey if the community agrees with the outcome. A simple majority may be not enough.

2 Likes

Folks, the stakes are getting elevated out of proportion to what’s happening here. This is one document authored primarily by one person. It doesn’t need to describe everyone’s feelings here, nor could it ever truly represent the entire community. And to my read it doesn’t even try to do that. There’s no need for surveys or votes or community consensus writ large. We do have a wide variety of perspectives here — and that’s great thing.

@Datseris asked for feedback, and we can definitely facilitate that in this thread. George doesn’t need to be responsive to all feedback — and we can let disagreements stand. That’s ok!

35 Likes

I see this as something like the well known and awesome Please read: make it easier to help you which is widely accepted and linked by the community.
If this manifest is able to serve for similar purposes it would be of great help. Of course we can just wait if it is linked and used like the PSA “make it easier to help you” or not, but if not, all the effort (and feedback) would be lost. But I agree, a survey may be overkill.

That “Please read” topic has official weight behind it. It’s a globally pinned topic that everyone sees on first login, with a “staff notice” banner. I should probably further add links to it in the site FAQ, but it makes some sense to have it as a discourse topic since it’s for and about discourse. And it is a community document: it’s a wiki!

This manifesto is a GitHub repo on Datseris’ personal account. Folks who like it can and should link to it! But there’s quite a difference here. We wouldn’t globally pin such a manifesto, and I’m not sure if the folks that maintain the community julialang.org website would even accept it there (beyond, perrrrrhaps, as a blog post, but that’s again where the authorship is more obvious).

8 Likes

Yes, that’s right, I’ve seen too much.

1 Like

There’s not need to back down/relax to some; “some” is true, but “many” is also true?! I don’t know how many exactly, You didn’t say “most”. I think you want to be correct and humble.

[Maybe “most” might apply? At least if used with Python… You can always use together, and it may be transparent with PythonCall. For at least the end-user of a package that has a Python dependency.]

[I don’t know if Julia matches the full Python ecosystem, alone, Julia+Python certainly good since you can use all their libraries. For *science* Julia alone may match or exceed already. With some few exceptions, ok “some” exceptions…]

The document suggests Turing is best in class. However in the benchmarks I’ve seen it’s commonly outperformed by Stan. For example, Benchmark Results · StatisticalRethinkingJulia/MCMCBenchmarks.jl

The link that you posted shows that the benchmarks are done in Julia 1.2.0. I would be curious on what the updated benchmarks are in Julia 1.9.4

1 Like

Julia 1.2.0 isn’t the main issue. The main issue is that the version of Turing.jl is 0.7.0 instead of the latest stable that is 0.29.3. That’s like 20+ versions behind. The Julia language website itself advertises Turing.jl as best in class:

I’ll stick with the claim.

2 Likes

I wonder if Datseris thought of writing the text as an open letter. It would have better suited his passionate tone.

Thank you. Somehow I overlooked that. And yes, I am aware of a number of chemical Julia packages which do not belong to any organization

Surely not enough.

The fact that Julia matches Python’s library ecosystem, and in many fields it surpasses it

Here you speak about the respective library ecosystems as a whole, or as least the respective science sub-ecosystems. Julia counts about 10_000 packages, PyPi 500_000. Both offer a lot for a lot of science areas. But what is the probability that there is a package for some specific task in one language and not in another one? For my topics surely I could have the overview, but what about the science areas I’ve never heard of in the first place? I don’t see how you can tell whether the ecosystems match (by some halfway defined metric) or not, at least not without some dedicated study. Now, what you cannot falsify is a hypothesis (or a belief - see below), not a fact.

@Datseris, I’m playing advocatus diaboli here, I hope you don’t take it personal. On the whole I like your Manifesto and consider it an important effort.

3 Likes

While I don’t want to discount the importance of mature packages for a language, for me the most important factorse in scientific programming are

  1. how quickly I can implement an algorithm for exploratory work,
  2. how much effort is it to make it fast if I want to,
  3. whether the end result remains a one-off effort, or can I actually use it in another project.

These are of course not so clearcut, as one goes back and forth between changing algorithms and optimizing them, but it pretty much captures 90% of what I do when I write code.

Julia shines in all of the above. The workflow allows me to prototype quickly, then I sit down to profile and benchmark (now that I use JET in CI, a lot of problems are caught early on), and a lot of the result is reusable or can be made such with very little effort.

I am of course not claiming that this is all of scientific programming. I am aware that there is a lot of scope for just scripting existing libraries together. But while Julia makes that easy too, it is not where its comparative advantage lies.

19 Likes