# 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:** 3

<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 12, 2023, 10:15pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/41 "2023-07-12T22:15:01Z")

</div>

> [@Ininterrompue](#):
>
> Corporate funding is probably the single most impactful thing that could happen in this direction.

What should Julia do to get more corporate financing? What did other programming languages do to get corporate funding?

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [July 12, 2023, 11:14pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/42 "2023-07-12T23:14:15Z")

</div>

> [@cpfiffer](#):
>
> Academics usually end up in the real world and face a lot of institutional pressure from whoever employs them next to use more “traditional” tools like R, Python, or Matlab.

Talked to a couple people who faced institutional pressure to use Julia, and as many tips as I gave them to get past a few big assignments, they still hated Julia, really coding in general. I do agree that increasing representation in academia is good, but that’s more for the sake of improving academic code (I admit language bias in this take), not popularity. Popularity needs salesmanship, and the product would be stable packages that handle popular and diverse applications. Evangelism on the language itself will matter to developers of packages from scratch, and even assuming that Julia is the most suitable for that purpose (it’s not), that’s not what most users care about, beyond reading the occasional blogpost. As silly as it sounds, ChatStableGPTDiffusionWhatever.jl is going to draw a hundred times more eyes than “solves the two-language problem, oh what’s that, that would be when…”. I think there’s a healthy middle ground where Julia and the third party packages will improve and cover more ground to the point that developers and users take more and more notice for different reasons.

---

<div class="post-metadata">

**Author:** ![cpfiffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cpfiffer/32/208747_2.png) [@cpfiffer](https://discourse.julialang.org/u/cpfiffer)\
**Post date:** [July 13, 2023, 6:04pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/43 "2023-07-13T18:04:39Z")

</div>

I like the idea that we should ultimately build more external-facing stuff that people can just use. Stuff like Flux, SciML, Turing, etc. are all really beautiful packages but aren’t really tailored for people who just wat to mess around and run cool code.

We could definitely start building more cool things that “just work” as either precompiled binaries or hobbyist code. I’d be interested in trying to help out in identifying projects that are easily distributed to people and have something of a “cool factor”.

---

<div class="post-metadata">

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

</div>

> [@xiaoxi](#):
>
> I think a second blog post with less jargon, more accessible to a wider audience, and focused on how new versions improve daily workflows as you have done could very helpful.

Here’s a nice review article of julia 1.9: [Julia 1.9 brings more speed and convenience [LWN.net]](https://lwn.net/Articles/933019/)

---

<div class="post-metadata">

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

</div>

> [@cpfiffer](#):
>
> Stuff like Flux, SciML, Turing, etc. are all really beautiful packages but aren’t really tailored for people who just wat to mess around and run cool code.

What do you mean?

---

<div class="post-metadata">

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

</div>

> [@ChrisRackauckas](#):
>
> What do you mean?

They’re not canned end-user toys, not really. I think one of the points I liked from @Benny was

> [@Benny](#):
>
> As silly as it sounds, ChatStableGPTDiffusionWhatever.jl is going to draw a hundred times more eyes than “solves the two-language problem, oh what’s that, that would be when…”

There’s lots of utilities in other languages that serve some kind of useful purpose outside the context of the language – `ripgrep` in Rust, `npm` for random tools, webservers, etc. Julia doesn’t have a lot of these kinds of things, I think.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [July 13, 2023, 8:19pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/47 "2023-07-13T20:19:44Z")

</div>

> [@cpfiffer](#):
>
> They’re not canned end-user toys, not really.

Is there a more end user interface you can describe than EasyModelAnalysis?

> **[Getting Started with EasyModelAnalysis · EasyModelAnalysis.jl](https://docs.sciml.ai/EasyModelAnalysis/stable/getting_started/)**
>
> Documentation for EasyModelAnalysis.jl.

I’d like to see some examples and details. At that point it’s just symbolic models and high level queries.

---

<div class="post-metadata">

**Author:** ![sob](https://avatars.discourse-cdn.com/v4/letter/s/65b543/32.png) [@sob](https://discourse.julialang.org/u/sob)\
**Post date:** [July 13, 2023, 8:24pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/48 "2023-07-13T20:24:16Z")

</div>

> [@raman\_kumar](#):
>
> In my opinion path to popularity lies through academia. Best way is to provide internships to students and collaborate with industry for that. help professors to design their computational courses in Julia. 🙏

I disagree with this. Although I left academia a long time ago, it seems to me that academics are well represented in this community.

Taking it to the next level of adoption needs lowering barriers of entry for the people who are actually likely to code stuff and contribute. And (to me) that means making it more accessible as a general purpose language, make it a possible stand-in replacement to python or perl (ie better tooling, more integrated), so that sysadmins, ops, and all devs can pick it up. Not just academia. Otherwise Julia will just be a new (and better) R when the Julia package repo matches CRAN in scope and maturity.

---

<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 13, 2023, 8:48pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/49 "2023-07-13T20:48:17Z")

</div>

> [@sob](#):
>
> Taking it to the next level of adoption needs lowering barriers of entry for the people who are actually likely to code stuff and contribute. And (to me) that means making it more accessible as a general purpose language, make it a possible stand-in replacement to python or perl (ie better tooling, more integrated), so that sysadmins, ops, and all devs can pick it up.

Could the Julia community agree on the next steps to take in the next 18/24 months?  
As an example, Rust developers often write blog posts about how they want to improve the language and ecosystem in the coming months.

> **[Rust Lang Roadmap for 2024 | Inside Rust Blog](https://blog.rust-lang.org/inside-rust/2022/04/04/lang-roadmap-2024.html)**
>
> Want to follow along with Rust development? Curious how you might get involved? Take a look!

> [@Benny](#):
>
> I do agree that increasing representation in academia is good, but that’s more for the sake of improving academic code (I admit language bias in this take), not popularity.

Julia could increase its popularity in academia by helping them as R has. A while back, the company behind R’s data science libraries released its code review principles and it seems to have been well received in the academic community, where code reviews aren’t so widespread.

> **[Tidyteam code review principles](https://www.tidyverse.org/blog/2023/06/code-review-principles/)**
>
> We've written a collection of tidyteam code review principles that act as a resource for new contributors and as a source of truth when there are questions about our code review process. We hope you find them useful!

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [July 13, 2023, 9:01pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/50 "2023-07-13T21:01:53Z")

</div>

> [@ChrisRackauckas](#):
>
> Is there a more end user interface you can describe than EasyModelAnalysis?

Quite literally the first sentence in that link is

> EasyModelAnalysis.jl is made to work with a [ModelingToolkit.jl model](https://docs.sciml.ai/ModelingToolkit/stable/). If one is unfamiliar with ModelingToolkit, check out its tutorial before getting started.

whose first sentence is likewise

> ModelingToolkit.jl is a modeling language for high-performance symbolic-numeric computation in scientific computing and scientific machine learning.

Being redirected to _another_ tutorial which describes itself as “high performance symbolic-numeric computation” is not a hallmark of being a canned end-user toy; the target audience is clearly an academic who already knows what all these words mean.

---

<div class="post-metadata">

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

</div>

It’s literally a high-level and as of next week GUI-based format. You don’t even have to know how to program in order to use it. Is that high level enough for you?

> [@Sukera](#):
>
> which describes itself as “high performance symbolic-numeric computation” is not a hallmark of being a canned end-user toy

The whole point is that it’s a canned end-user toy that does all of the high performance in the backend. This is why we use this for training first year undergrads and high school students rather than direct interaction with the solvers. It allows usage like a calculator instead of a programming language.

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [July 13, 2023, 9:23pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/52 "2023-07-13T21:23:47Z")

</div>

> [@ChrisRackauckas](#):
>
> Is that high level enough for you?

It’s high level, granted, but throws around jargon like it’s candy at halloween. That is NOT end-user; that’s suited for someone working with these things as their profession. That may be an “end-user” from your POV, but surely not from the POV of people who feel the need to point out that _the Julia community is a bubble full of academics_.

“Wider adoption” as I understand it to be taken in this thread does not mean “wider adoption in academia”, but “wider adoption outside of academia”, because that’s where the vast majority of people are; and that majority surely don’t know what a jacobian is (which is part of the assumed knowledge of the [Getting Started](https://docs.sciml.ai/ModelingToolkit/stable/tutorials/ode_modeling/) for ModelingToolkit.jl).

* * *

To be clear, I have no issue with the ModelingToolkit.jl docs; for people who are already deep in the weeds of systemic & symbolic modeling, they are fantastic! I simply want to point out that there’s (at least) two very different understandings of “end user” and “wider adoption” in this thread; and y’all are at high risk of talking past each other.

---

<div class="post-metadata">

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

</div>

> [@Sukera](#):
>
> To be clear, I have no issue with the ModelingToolkit.jl docs; for people who are already deep in the weeds of systemic & symbolic modeling, they are fantastic! I simply want to point out that there’s (at least) two very different understandings of “end user” and “wider adoption” in this thread; and y’all are at high risk of talking past each other.

Do you have an example of demonstrating this? Can you share your data of difficulties doing this with an end-user training group? Is there an example of what you think it should look like or do you have no concrete helpful comments? Please show the workshops of previous trainings along with post workshop evaluations since we’d be happy to learn from your information, if you can make it concrete.

---

<div class="post-metadata">

**Author:** ![zdenek\_hurak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zdenek_hurak/32/53118_2.png) [@zdenek\_hurak](https://discourse.julialang.org/u/zdenek_hurak)\
**Post date:** [July 13, 2023, 9:35pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/54 "2023-07-13T21:35:15Z")

</div>

Could you please sketch a profile of a potential user of ModelinkToolkit.jl for whom the terms such as scientific machine learning, ordinary differential equations or numerical optimization constitute an unknown jargon?

---

<div class="post-metadata">

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

</div>

Good lord, this feels like quite a pile-on now - I’m not claiming that ModelingToolkit.jl specifically should target people who aren’t familiar with these terms. I’m saying that claiming that ModelingToolkit.jl is a good “end-user toy” is just not true - the target audience is not an end user who might want to use Julia for some non-academic task. That’s all I (and I think the people before me) are saying.

You’re focusing too much on your niche, which admittedly is quite a large portion of the current Julia userbase. The argument/thread above is simply about getting into other niches. Does that mean that you specifically need to start focusing on other things? Of course not! But you also shouldn’t claim that everything is ok just because your niche is doing fine.

---

<div class="post-metadata">

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

</div>

The main thing is that the numerical optimizations are all introduced at a high level. For example, it doesn’t even require knowing what a Jacobian is. Here for example it describes what it is:

> [Symbolic and sparse derivatives](https://docs.sciml.ai/ModelingToolkit/stable/tutorials/ode_modeling/#Symbolic-and-sparse-derivatives)

> One advantage of a symbolic toolkit is that derivatives can be calculated explicitly, and that the incidence matrix of partial derivatives (the “sparsity pattern”) can also be explicitly derived. These two facts lead to a substantial speedup of all model calculations, e.g. when simulating a model over time using an ODE solver.

> By default, analytical derivatives and sparse matrices, e.g. for the Jacobian, the matrix of first partial derivatives, are not used. Let’s benchmark this (`prob` still is the problem using the `connected_simp` system above):

> Now have MTK provide sparse, analytical derivatives to the solver. This has to be specified during the construction of the ODEProblem:

If someone doesn’t know anything about Jacobians, they will at least walk away thinking “`jac=true,sparse=true` is a fast mode button if models get large”, which IMO for a much less technical audience is probably good enough?

If anyone has an idea for simplifying that anymore I’d be happy to take it, but I haven’t been able to refine that part any more.

---

<div class="post-metadata">

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

</div>

> [@Sukera](#):
>
> Good lord, this feels like quite a pile-on now - I’m not claiming that ModelingToolkit.jl specifically should target people who aren’t familiar with these terms. I’m saying that claiming that ModelingToolkit.jl is a good “end-user toy” is just not true

And I’m asking for help. “Hey, how can we make this better? Please and thank you”. “No you just suck”. This isn’t helpful. Please can you try to be helpful? What should we change? Do you have examples from running workshops with high schoolers that highlights a spot that was difficult? Do you have spots of the documentation you find have been particularly hard to teach with to undergrads? I’d be very happy to have specifics. I’m just asking for actual concrete help man. A high level gripe that the docs suck is not helpful, please help me fix it then. Please.

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [July 13, 2023, 10:01pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/58 "2023-07-13T22:01:04Z")

</div>

> [@ChrisRackauckas](#):
>
> Here for example it describes what it is:

No Chris, that is exactly my point - every other non-filler word in your quotes is technical jargon. That may be fine for an undergrad who’s actively taking courses in that material, but it doesn’t work for the average joe who _may_ have learnt what a derivative is in high school.

I mean, I am an undergrad and know what a derivative is, but not a physics undergrad, and so things like

> Let us start with a minimal example. The system to be modelled is a first-order lag element:

> Here, t is the independent variable (time), x(t) is the (scalar) state variable, f(t) is an external forcing function, and \tau is a parameter. In MTK, this system can be modelled as follows. For simplicity, we first set the forcing function to a time-independent value.

make no sense to me at all - what is a lag element? What is an external forcing function? Why is setting the forcing function to a time independent value simpler (ok I actually think I get this one from prior experience with other stuff - interdependencies in evolving systems are hard)?

These are the kinds of questions a non-academic end user (who does not currently take a course focusing on this!) may have (if they haven’t already thrown in the towel because they’re overwhelmed by just how much new stuff there is to learn - and again, that’s not necessarily a problem! I don’t think this would necessarily be simpler in other languages).

I want to reiterate that this doesn’t mean that your docs are bad - they are great docs, as I’ve said lots of times before! Their target audience just isn’t the general public/built for getting people interested in Julia-The-Language, but in Julia-The-MTK-Frontend. And that’s perfectly fine, but is a different goal than furthering Julia adoption in areas other than symbolic modelling.

> [@ChrisRackauckas](#):
>
> And I’m asking for help. “Hey, how can we make this better? Please and thank you”. “No you just suck”. This isn’t helpful. Please can you try to be helpful? What should we change? Do you have examples from running workshops with high schoolers that highlights a spot that was difficult? Do you have spots of the documentation you find have been particularly hard to teach with to undergrads? I’d be very happy to have specifics. I’m just asking for actual concrete help man. A high level gripe that the docs suck is not helpful, please help me fix it then. Please.

Oh come on now, this is a very uncharitable and incorrect read of what I wrote 😕 I explicitly praised your docs for being good at what they are. Your docs don’t suck and I’ve never claimed that. Please stop putting that into my mouth. You already know that my gripe is with Base, not with your SciML ecosystem.

To be very clear & explicit - I have no experience in teaching MTK/user studies/focus groups/training groups (at least, Julia specific) and I haven’t claimed that this is an issue. Asking for THAT is quite unreasonable, when you know perfectly well that you’re the only game in town in that regard (at least that’s my impression).

–

I just want to reiterate that my initial post was about people in this thread having VERY different thoughts on what an “end user” is, not that MTK docs suck. MTK docs are good docs.

---

<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 13, 2023, 10:46pm UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/59 "2023-07-13T22:46:59Z")

</div>

I don’t think I often see such epic communication breakdowns.

As far as I can tell, @Sukera neither intends to criticize nor help improve EasyModelAnalysis, nor the wider SciML-ecosystem with their remarks, but simply try to convey that ‘canned end-user toys’ are something quite different than a tool for optimizing mathematically defined physics models.

A canned end-user toy would be, pardon if I misunderstand the intended meaning, something aimed at a general audience who don’t necessarily know what optimization is, what a physics model is, or what a programming language is. Like a note taking app or a casual mobile game.

---

<div class="post-metadata">

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

</div>

Regarding web dev. I think optimizing the throughput like [GitHub - omcloudinc/c\_http\_jl: wrapping c lib and benchmarking with http.jl and node](https://github.com/omcloudinc/c_http_jl) and pushing [Add Oxygen to Techempower · Issue #63 · ndortega/Oxygen.jl · GitHub](https://github.com/ndortega/Oxygen.jl/issues/63) could attract more users. And supporting [quicktype](https://github.com/quicktype/quicktype/pull/1624) can also be useful.

[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=2)

[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=4)
