# What steps should the Julia community take to bring Julia to the next level of popularity?

**URL:** <https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389>\
**Category:** Community\
**Created:** [July 9, 2023, 9:59am UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389 "2023-07-09T09:59:36Z")\
**Posts on this page:** 20\
**Page:** 12

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [July 22, 2023, 9:03pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/223 "2023-07-22T21:03:30Z")

</div>

> [@jreileyclark](#):
>
> Oh if someone wants to do a video call where they hold my hand and teach me how to make a blog with Julia I will pay you money.

Hey @jreileyclark – I am happy to give a video call to you about this. Rather than money, could you help me make a blog about the process I’ll show you and then we could put it up somewhere together? My email is [jacobszelko@gmail.com](mailto:jacobszelko@gmail.com) if you want to continue the conversation. 😄

~ tcp 🌳

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [July 22, 2023, 9:20pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/224 "2023-07-22T21:20:48Z")

</div>

> [@TheCedarPrince](#):
>
> could you help me make a blog about the process I’ll show you and then we could put it up somewhere together?

Should we add blogging to [https://gdalle.github.io/ModernJuliaWorkflows/](https://gdalle.github.io/ModernJuliaWorkflows/) ?

---

<div class="post-metadata">

**Author:** ![jreileyclark](https://avatars.discourse-cdn.com/v4/letter/j/5e9695/32.png) [@jreileyclark](https://discourse.julialang.org/u/jreileyclark)\
**Post date:** [July 22, 2023, 9:25pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/225 "2023-07-22T21:25:02Z")

</div>

Count me in!

---

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [July 22, 2023, 9:28pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/226 "2023-07-22T21:28:23Z")

</div>

I think that would be a brilliant idea and an actionable outcome here from @jreileyclark and I chatting! And awesome – Justin, just email me and we can figure out times that work for us to chat.

Also, at some point @gdalle , I need to send you a list of blog posts I have written over the past to see if we can salvage anything I have written and turn it into a workflow within your workflows project (huge fan).

P.S. Guillaume, we should chat at JuliaCon if you are there this year! Would love to commiserate over ideas here.

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [July 22, 2023, 9:46pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/227 "2023-07-22T21:46:50Z")

</div>

> [@jreileyclark](#):
>
> I don’t need you, at first, to teach me how Julia is the best language to solve differential equations, I need you to teach me what is a differential equation using Julia.

@jreileyclark I found your take really relevant, and the sentence above stuck with me. This approach of “programming as a way to communicate concepts” is exactly what we’ve been trying to do with Alan Edelman for the [JuliaComputation](https://github.com/mitmath/JuliaComputation) class. You’re right, Julia allows us a level of clarity that other languages don’t, and teaching is a great way to showcase it. I am very proud of some of the homeworks we wrote in this spirit (like the [Pokémon one](https://gdalle.github.io/JuliaComputationSolutions/hw1a_solutions.html), or the [one on atmospheric temperatures](https://gdalle.github.io/JuliaComputationSolutions/hw5_solutions.html)), and if I had dedicated funding I would definitely churn out more such content…

… which brings me to my main pain point. The Julia community is overwhelmingly academic, and in our line of work, I feel like such outreach initiatives are not considered worthy of spending time.  
I’d be curious if anyone has suggestions of grants or other support one could apply for, if the goal is to write code or documentation that has pedagogical rather than scientific purpose.

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [July 22, 2023, 10:06pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/228 "2023-07-22T22:06:39Z")

</div>

It is one of the most painful ironies in the world is that academia’s incentives are rarely aligned with pedagogy.

---

<div class="post-metadata">

**Author:** ![reachtarunhere](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/reachtarunhere/32/38358_2.png) [@reachtarunhere](https://discourse.julialang.org/u/reachtarunhere)\
**Post date:** [July 23, 2023, 1:45pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/229 "2023-07-23T13:45:36Z")

</div>

To make Julia “popular” one has to be able to target one of the popular domains and no Scientific Computing and writing simulators doesn’t count. Julia has certain strengths and is very fun to code in so I would obviously want to be able to do more projects in it.

What are these possible domains?

1. Machine Learning (heavy loads)

- Training: I spent a lot of time trying to use Flux for heavy loads and gave up and don’t recommend it to anyone anymore because both PyTorch 2.0 and JAX perform 2x for training certain models. There is no consensus on how to do training on multiple GPUs/nodes (once again a rando package with a CV model showing a demo doesn’t count). I doubt anything similar to FSDP exists or is possible? If we want to train even models that take a couple of hours to train (assuming they fit on a single GPU) a 2 hour training time vs 1 hour on other frameworks will never be acceptable.

- Inference: Suffers from the same reasons. In addition to that libs like ggml made it possible to run things fast on the GPU. As per my understanding this could have been done in Julia but we don’t have support for precision that are not multiples of 8 even though LLVM supports it. I can’t find the post on this forum related to this now but all I saw was someone requesting in and another person just berating them (The post is quite old before ggml etc. happened)

Possible fixes: Flux/Lux support XLA backend as a start (to support kernel fusion and related opti). Stable implementation of multi node training in the libs itself.

1. Distributed Systems/Backend

Better learning materials for Dagger etc.  
Benchmarks with Go/Python frameworks  
Porting MIT Distributed Systems Course Assignments to Julia should be interesting.

1. Systems Programming - Zig is the new hot thing now. My knowledge is limited but can we write good system programming code in Julia?

Please forgive me for complaining so hard but I am practically heartbroken wrt the 1st point.

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [July 23, 2023, 2:09pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/230 "2023-07-23T14:09:28Z")

</div>

This is a poll in twitter from today: (larger data sets meaning around few terabytes)

 ![Screenshot 2023-07-23 at 5.29.36 PM](https://global.discourse-cdn.com/julialang/original/3X/3/5/35cc97072e9cb4f7a1773f071eb5587e21cc7c98.png)

We have to change our reputation about correctness too.

---

<div class="post-metadata">

**Author:** ![Tarny\_GG\_Channie](https://avatars.discourse-cdn.com/v4/letter/t/3bc359/32.png) [@Tarny\_GG\_Channie](https://discourse.julialang.org/u/Tarny_GG_Channie)\
**Post date:** [July 23, 2023, 2:23pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/231 "2023-07-23T14:23:06Z")

</div>

> [@AMJ](#):
>
> We have to change our reputation about correctness too

Well, this is multiple dispatch. People often suggest restricting generics to make them throw error but what about we make them… just work? Or if not possible, throw nice error via multiple dispatch but mostly just make it works. Maybe use more function namespace?

And we can actually use this interface pattern…

```julia
interface(x) = error(“Interface not implemented”) #information here.
interface(x::something) = nothing

```

And we can check interface just by calling the function.

---

<div class="post-metadata">

**Author:** ![xiaoxi](https://avatars.discourse-cdn.com/v4/letter/x/a9adbd/32.png) [@xiaoxi](https://discourse.julialang.org/u/xiaoxi)\
**Post date:** [July 23, 2023, 2:53pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/232 "2023-07-23T14:53:19Z")

</div>

> [@reachtarunhere](#):
>
> To make Julia “popular” one has to be able to target one of the popular domains and no Scientific Computing

Is Julia reaching its peak of popularity in scientific computing? Isn’t Python the most taught language in science and engineering majors?

> [@AMJ](#):
>
> We have to change our reputation about correctness too.

Has anyone surveyed people outside the Julia community about what they think of Julia?

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [July 23, 2023, 4:57pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/233 "2023-07-23T16:57:41Z")

</div>

Anecdotally speaking, the Yuri’s blog post comes up frequently. And also from the same thread here is another negative take, although I don’t know the context of the implemented method he is speaking of(but in general, he is talking about working with Julia both in research and production of a high frequency trading system):

 ![Screenshot 2023-07-23 at 8.22.10 PM](https://global.discourse-cdn.com/julialang/original/3X/5/b/5bc9e18368839becb7c08b859c8f724fcc9dc0fd.png)

---

<div class="post-metadata">

**Author:** ![adienes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adienes/32/37459_2.png) [@adienes](https://discourse.julialang.org/u/adienes)\
**Post date:** [July 23, 2023, 5:08pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/234 "2023-07-23T17:08:16Z")

</div>

> [@AMJ](#):
>
> Anecdotally speaking, the Yuri’s blog post comes up frequently.

I suspect the reason that specific post comes up so frequently is because it is a publicly accessible and concrete list of examples without having to compile a new list—but I also suspect that anyone who has worked with Julia long enough has encountered some bugs that one would not expect to find in other peer languages popularly considered “robust.”

Often this is due to functionality/composability not present in other languages that Julia attempted to add. One example I recently came across is `Iterators.reverse(::Iterators.Filter)`. In e.g. Python, one will get `TypeError: 'filter' object is not reversible`, and in e.g. C++, Rust, any reversed iterator must be explicitly double-ended. Julia, on the other hand, will happily hand you an (incorrect in some cases) iterator. So more functionality, kinda, but the answer can be wrong 😕

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [July 23, 2023, 7:23pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/235 "2023-07-23T19:23:33Z")

</div>

Here is a positive take:

![Screenshot 2023-07-23 at 10.49.25 PM](https://global.discourse-cdn.com/julialang/original/3X/0/b/0b0d4e1f6c8d9087aec7102cb37251797aed9a2d.png)

I know this is a sample of one, but I personally value this person’s opinion a lot, since my interests align with his line of work and he is much more experienced than me.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [July 23, 2023, 7:32pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/236 "2023-07-23T19:32:44Z")

</div>

What is “real-time mode”?

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [July 23, 2023, 7:52pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/237 "2023-07-23T19:52:10Z")

</div>

> [@Blog post: Rust vs Julia in scientific computing](https://discourse.julialang.org/t/blog-post-rust-vs-julia-in-scientific-computing/101711/34):
>
> Note that while saying this, I am currently drafting ideas and designs for more static subsets of Julia and with more direct control over allocation behavior, so I definitely agree that there are currently some benefits of languages like Rust or C++ that I would like to see in a near future Julia.

Something like what Chris is working on. Basically a grantee that a loop happens under a certain threshold with predictable behavior. We can achieve real-time already with preallocating/no allocations in hot loop/… but still we have no direct/deterministic control over allocation.

---

<div class="post-metadata">

**Author:** ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)\
**Post date:** [July 23, 2023, 9:22pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/238 "2023-07-23T21:22:21Z")

</div>

It would be really a good thing if Julia garbage collector had the ability to set an upper bound on its duration. The new garbage collector is multithreaded in 1.10 if it could run in its own thread until it absolutely needed to pause everything, then have the pause be at most some duration, say 100us or something that’d go a long way towards extending the interactive space Julia could support.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [July 23, 2023, 9:59pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/239 "2023-07-23T21:59:19Z")

</div>

So, more static support, and better control over allocations? But I don’t understand the term “real time mode” in this context. What does this have to do with “real time”? And how would this be a “mode”?

I’m not trying to be difficult, I just don’t understand the terminology.

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [July 23, 2023, 10:12pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/240 "2023-07-23T22:12:41Z")

</div>

“Real-time systems” like robots or live audio systems need to respond to signals within 1ms or something. They can’t do that if the compiler or garbage collector etc interrupts them with delays that exceed their time budget.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [July 24, 2023, 4:12am UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/241 "2023-07-24T04:12:45Z")

</div>

> **[What is real-time computing?](https://www.futurelearn.com/info/courses/embedded-systems/0/steps/64783)**
>
> In this article, we explore the properties of real-time computing, and how it affects tasks carried out within embedded systems.

Some OS, e.g. Linux can be compiled to run in “real time mode”. This sacrifices some average performance in favour of hard guaranties within which time high priority threads are served if they become active.

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [July 24, 2023, 5:47am UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/242 "2023-07-24T05:47:15Z")

</div>

Well “Mode” is just a figure of speech for (as an example) a subset of Julia that let’s you overcome challenges as mentioned in above comments that the current tooling/features does not let you, the downside would be you probably will lose some default language features. [StaticCompiler.jl](https://github.com/tshort/StaticCompiler.jl) is a good example of this, it let’s you create tiny binaries with full manual memory allocation, but you can not use it with anything that allocates (tracked with GC).

[Previous page](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389.md?page=11)

[Next page](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389.md?page=13)
