# Julia motivation: why weren't Numpy, Scipy, Numba, good enough?

**URL:** https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236
**Category:** Community
**Tags:** history
**Created:** [February 22, 2017, 3:34pm UTC](https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236 "2017-02-22T15:34:33Z")
**Posts on this page:** 4
**Page:** 7

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [September 21, 2018, 8:42am UTC](https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236/123 "2018-09-21T08:42:09Z")

</div>

> [@oxinabox](#):
>
> NumExpr is kinda hideous

It is also very complex, apparently implementing a

1. parser,
2. compiler, with loop fusion,
3. a virtual machine to run the result on.

The problem with this approach is that it does not scale easily for generic programming. Looking at the issues, many of them are asking for an implementation of some operator or function.

The great thing about Julia, often underappreciated by outsiders, is that in the ideal case, orthogonal components can work together. Eg a Bayesian MCMC library can get derivatives via AD to estimate models with ODEs. If the code is written well, they don’t even need to know about each other, eg the ODE library authors don’t need to ask the AD library maintainers to include specific code for their functions.

---

<div class="post-metadata">

### Author: ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)
#### Post date: [September 21, 2018, 1:08pm UTC](https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236/124 "2018-09-21T13:08:53Z")

</div>

Do I say something stupid? Because I don’t understand your post.

---

<div class="post-metadata">

### Author: ![NiclasMattsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/niclasmattsson/32/21988_2.png) [@NiclasMattsson](https://discourse.julialang.org/u/NiclasMattsson)
#### Post date: [September 21, 2018, 1:19pm UTC](https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236/125 "2018-09-21T13:19:26Z")

</div>

> [@KZiemian](#):
>
> This topic is very long now and span over a year and half. Can we summarized results of current discussion in some concise way?

> [@NiclasMattsson](#):
>
> Ooo! I have an idea! Let’s put a button just below the first post that says “Summarize This Topic” and does the job automatically! Would that be hard to implement? 🙂

> [@KZiemian](#):
>
> Do I say something stupid? Because I don’t understand your post.

[Including quotes for context.] Not at all, I’m very sorry if it came across that way. I had just switched over from Reddit and maybe was still stuck in an inappropriate mindset for this forum.

Anyway, it was just a playful way of pointing your attention to the “Summarize This Topic” button that automatically gets included at the top of long ~~posts~~ threads. It basically just shows you the “best” posts of the thread, with “best” defined by some heuristic based on a combination of likes and replies. Not perfect, but it usually gives you enough context to catch up with a long thread.

---

<div class="post-metadata">

### Author: ![favba](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/favba/32/2735_2.png) [@favba](https://discourse.julialang.org/u/favba)
#### Post date: [September 21, 2018, 1:33pm UTC](https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236/126 "2018-09-21T13:33:41Z")

</div>

That is really interesting. I never noticed this “Summarize Topic” button.

[Previous page](https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236.md?page=6)
