# 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:** 1\
**Showing post:** 662

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [September 5, 2023, 2:28am UTC](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/662 "2023-09-05T02:28:47Z")

</div>

> [@ParadaCarleton](#):
>
> Other examples of poor defaults that are easy to miss when you’re learning Julia:
> 
> 1. FMA (not default because it could confuse devs if someone ran a computation on a pre-2008 computer)

That’s not the reason. In a language for people that care about numerics, you aren’t allowed to arbitrarily re-associate floating-point operations, because then you are computing something different from what the programmer specified. Even clang & gcc [only do this with `-ffast-math`](https://stackoverflow.com/questions/55974090/clang-gcc-only-generates-fma-with-ffast-math-why).

See e.g. [X \* y + z does not automatically use FMA instruction - #2 by GunnarFarneback](https://discourse.julialang.org/t/x-y-z-does-not-automatically-use-fma-instruction/100640/2)

> [@ParadaCarleton](#):
>
> The inability to use positional arguments with keywords (because then, developers wouldn’t be able to change the names of positional arguments without breaking user code)

That’s not the main reason. The basic issue with using keywords for positional arguments is that it makes multiple dispatch ambiguous, unless you disallow re-ordering (and even then it is a problem if different methods use different argument names). See e.g. [Allow use of named-argument syntax for positional arguments?](https://discourse.julialang.org/t/allow-use-of-named-argument-syntax-for-positional-arguments/5287)

Anyway, this is not an example of a “poor default”, but a language choice that you disagree with. Fair enough, everyone has their own tastes, but people who have different taste than you are not being hostile by saying so.

> [@ParadaCarleton](#):
>
> Performance footguns like type instabilities

Making type instabilities impossible would require an entirely different sort of language, not a dynamically typed language. (There are lots of great static languages, and liking them is fine! But that’s not what Julia is.)

* * *

…Anyway, this kind of unfocused thread, into which every sort of complaint is dumped, is not particularly productive. I’m doubtful I should even be responding, because it just goes around in circles with the subject continually shifting to a new grievance.

---

_[View the full topic](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389)._
