News for hackers. Stuff that matters.
Re:How to Make Python Run as Fast as Julia by jordigh on Tuesday December 15, 2015 @10:32PM (#10742193)
I don't think this is accurately representing Julia's aims. Of course the Julia team wrote the Python code in a way that makes it run slowly. But it looks like perfectly natural Python code! It's almost a literal translation of the Julia code. Julia's benchmark is even far worse with Octave, which they almost deliberately wrote in the worst way possible for Octave, with lots of loops and recursion.

We have written some documentation for Octave in order to guide people towards writing faster Octave code:

https://www.gnu.org/software/octave/doc/interpreter/Vectoriz...

But look at how much we have to explain, and look at all the hoops we have to jump through in Python and Octave in order to write faster code. Matlab used to have similar guides telling people don't write this, write that instead.

What Matlab eventually did was look at what people were writing and making that fast. Julia did the same and made it even faster.

This is a lesson from C and C++ compilers that seems to be taking a long time to trickle to other programming languages: as long as you're writing reasonable code, speeding up your code is your compiler's job, not yours. Your compiler usually knows better than you how to unroll loops, how to cache results, how to use multiple cores, how to elide unnecessary intermediate results, how to completely remove dead code. You should focus on writing easy to understand, maintainable, high-level code. That's why you're using a programming language and not machine code.

Re:How to Make Python Run as Fast as Julia by jacobolus on Wednesday December 16, 2015 @12:32AM (#10742574)
> What Matlab eventually did was look at what people were writing and making that fast.

Except in practice, to write fast Matlab code you need very deep understanding of Matlab’s internals and years of experience. Seemingly trivial patterns end up slowing your code down by multiple orders of magnitude, and there’s more “guess and check” involved when trying to write code that can be effectively JIT compiled by Matlab than careful reasoning. Even worse, the JIT and the profiler don’t get along, so it’s often impossible to get any insight into the reasons for JIT-related performance differences.

In general, Matlab is an extremely unpleasant and frustrating environment compared to almost any other language I’ve worked with. The only thing Matlab has on Python/Numpy is a nice quantity of publicly available code for various technical functions. Most of this code is hacky academic prototype stuff, but that’s much better than nothing if you’re trying to follow someone’s algorithm written up in a paper.

The Matlab GUI and tooling is a buggy and unpolished Java turd from the 90s which fits in poorly with any modern operating system.

Re:How to Make Python Run as Fast as Julia by dagw on Wednesday December 16, 2015 @03:10AM (#10742964)
The Matlab GUI and tooling is a buggy and unpolished Java turd from the 90s which fits in poorly with any modern operating system.

And yet every time I try to get Matlab users to use something else (Python or Julia) the one thing they almost immediately complain about is the lack of a GUI IDE as good as the Matlab one.

Re:How to Make Python Run as Fast as Julia by dr_zoidberg on Thursday December 17, 2015 @08:37AM (#10751352)
> And yet every time I try to get Matlab users to use something else (Python or Julia) the one thing they almost immediately complain about is the lack of a GUI IDE as good as the Matlab one.

Pycharm[0] has become my prefered Python IDE about 2 years ago (when they went free commmunity/pay for pro) and it's a way better environment than MATLAB. It now has "Scientific tools" too[1], and I understand some good features, though I haven't used them yet.

The only good thing I still recognize of MATLAB is that most toolboxes work together without (too much?) hacking. Working with Python/NumPy you eventually find stuff that you need to adjust to work with that other library you just found implements that thing you absolutely need.

[0] https://www.jetbrains.com/pycharm/

[1] https://www.jetbrains.com/pycharm/features/scientific_tools....

Re:How to Make Python Run as Fast as Julia by skierscott on Wednesday December 16, 2015 @11:26AM (#10745278)
> And yet every time I try to get Matlab users to use something else (Python or Julia) the one thing they almost immediately complain about is the lack of a GUI IDE as good as the Matlab one.

Spyder offers a similar environment. It has a variable explorer, script editor, console, etc all in one window (which I think is what matlab users are looking for).

Re:How to Make Python Run as Fast as Julia by MagnumOpus on Wednesday December 16, 2015 @12:29PM (#10745759)
It's not just that - it is also the extremely extensive and comprehensive documentation of every function (integrated in the GUI), and the powerful profiler (integrated in the GUI), and the charting (integrated in the GUI)...
Re:How to Make Python Run as Fast as Julia by pkofod on Wednesday December 16, 2015 @03:46AM (#10743077)
Well, they're probably not Linux (Ubuntu only problems perhaps?) users then. Matlab crashes again and again, locking up my entire computer, so I have to hard reset it. It happens so frequently that I simply had to install Windows on my computer, and boot up in that when I need to work on a project where my collaborators voted for Matlab.
Re:How to Make Python Run as Fast as Julia by jarvic on Wednesday December 16, 2015 @08:43AM (#10744160)
I run MATLAB on Ubuntu 14.04 every day and have never had any of the issues you're describing. Are you sure there isn't something else going on there?
Re:How to Make Python Run as Fast as Julia by pkofod on Wednesday December 16, 2015 @09:13AM (#10744331)
It must be then. I had a student doing a term paper with the exact same problem. Often plotting related, but not necessarily. Havn't been able to find a solution myself, or online.
Re:How to Make Python Run as Fast as Julia by x0x0 on Wednesday December 16, 2015 @01:47AM (#10742784)
And that's the pitch for julia. Oh, and mostly fast enough to write in julia the stuff that, for python, you'd write as C extensions, crucially enabling lots of optimizations that are terribly hard to do for python. And avoiding the whole pypy / C api plugin problem.

It's still pretty immature, but promising.

That said, matlab's linear algebra syntax is still better than python's.

Re:How to Make Python Run as Fast as Julia by chm on Wednesday December 16, 2015 @03:07AM (#10742954)
Your first quip also applies to Mathematica. It's very easy to write quite inefficient code in Mathematica. One classic example of this is a newcomer not using N[] and evaluating every expression symbolically. Seems trivial, but it really isn't for someone new. I still could get speedups on linalg code two years into grad school.
Re:How to Make Python Run as Fast as Julia by TheOtherHobbes on Wednesday December 16, 2015 @08:35AM (#10744123)
It applies to most languages.

In practice you can't rely on the compiler, because you don't know what the compiler is doing.

You certainly can't assume it's going to make the smartest possible decision for all of your code. There's no standardisation for optimisations, and they're often a context-dependent trade-off anyway.

The only way to write fast code is to learn the quirks of the tool chain and profile production binaries to find the bottlenecks.

Re:How to Make Python Run as Fast as Julia by gh02t on Wednesday December 16, 2015 @10:34AM (#10744864)
Mathematica also has the double disadvantage that it's syntax and semantics are pretty different from what most people are used to. I find it quite pleasant as it's quite consistent, but it's not the most straightforward thing to learn coming from e.g. [naive] MATLAB. When I show people how to use it, the first thing I warn them is "no For[] loops and only use Table[] sparingly."
Re:How to Make Python Run as Fast as Julia by reikonomusha on Wednesday December 16, 2015 @03:19AM (#10743001)
This is a really good comment and covers what a lot of people seem to miss in benchmarks. The fact I can install 2 different compilers (with varying degrees of support) and some hyperoptimized linear algebra libraries don't really tell me about how fast the system is in general when I need performance.
Re:How to Make Python Run as Fast as Julia by andrepd on Wednesday December 16, 2015 @07:08AM (#10743734)
Exactly! The point is to compare standard, idiomatic and straightforward Julia code with standard, idiomatic and straightforward Python code, not with a jumble of workarounds, experimental JITs, and cumbersome syntax. Because if you are writing statically typed python, then you are not really writing python anymore, are you?
Re:How to Make Python Run as Fast as Julia by JupiterMoon on Wednesday December 16, 2015 @08:47AM (#10744175)
Looping over lists/arrays is not idiomatic Python.
Re:How to Make Python Run as Fast as Julia by tavert on Wednesday December 16, 2015 @09:15AM (#10744342)
The point of that benchmark is looping over lists or arrays. The benchmark verifies the well-known fact that straight Python is a lousy choice for those situations when you absolutely need to do this. Dropping into C extensions or some-of-the-language Numba would be a different comparison, and show a different result.
Re:How to Make Python Run as Fast as Julia by JupiterMoon on Wednesday December 16, 2015 @11:18AM (#10745202)
Did they at least attempt list comprehensions rather than loops?

EDIT Also in the scientific fields I've encountered not using the various libraries like numpy is non-idomatic. I personally think that python should absorb numpy into the standard library but effectively people I know treat it as if it were already there.

You can argue that numpy etc are implemented in C. But is the Julia interpretor not implemented in C?

Re:How to Make Python Run as Fast as Julia by tavert on Wednesday December 16, 2015 @12:13PM (#10745636)
Don't know whether list comprehensions were tried. Refactoring suggestions could be considered, if they still capture the main point of the benchmark.

Most of the Julia standard library is implemented in Julia.

Re:How to Make Python Run as Fast as Julia by JupiterMoon on Wednesday December 16, 2015 @02:27PM (#10746589)
There is no point benchmarking badly written language A vs well written language B. I actually find the Julia benchmarks misleading and that kind of thing leaves a bad taste.

Arguments about liking to loop over arrays to operate on them are a matter of taste. I like whole array operations, it's just what I learned first and best (Fortran 9x+ and numpy). Someone else may prefer to write loops (maybe they started doing numerical work with F77 or C). There is no universal correct way to express things -- but there is sometimes a language specific best way and to benchmark ignoring this is not good.

Re:How to Make Python Run as Fast as Julia by grayclhn on Wednesday December 16, 2015 @12:17PM (#10745662)
An astonishing amount of Julia is written in Julia.
Re:How to Make Python Run as Fast as Julia by JupiterMoon on Wednesday December 16, 2015 @02:30PM (#10746610)
Are they throwing away 40-50 years of work on things like LAPACK/BLAS? Or do they still build on the basic foundations and implement higher level things in Julia?
Re:How to Make Python Run as Fast as Julia by grayclhn on Wednesday December 16, 2015 @04:33PM (#10747520)
No --- I thought about adding that caveat but didn't. Most of the non-Julia code that I'm aware of is scientific libraries: linear algebra (LAPACK/BLAS), random number generators, etc. But lots of very basic foundations and data types are straight Julia --- array addition (as a very trivial example) is implemented by looping over the elements of the arrays in Julia, not by passing the loop to a C library.[1]

Reimplementing LAPACK or BLAS would be a lot of unnecessary work, but I think that one goal of the language is to be fast enough that a reimplementation would not be worse than the existing versions. (I'm not affiliated w/ the project, though, so I'm just guessing.)

[1]: https://github.com/JuliaLang/julia/blob/master/base/arraymat...

Re:How to Make Python Run as Fast as Julia by JupiterMoon on Thursday December 17, 2015 @07:28AM (#10751051)
Interesting. Sensible. How possible/easy is it to use Julia libraries from e.g. python or R or C++?
Re:How to Make Python Run as Fast as Julia by tavert on Thursday December 17, 2015 @04:15PM (#10754601)
There's an embedding API that's not too bad to work with. There are pyjulia and rjulia projects, but they're not quite as actively developed as the other directions of PyCall.jl or RCall.jl. Making standalone libraries out of Julia code isn't easy to do yet, but should eventually be better-supported.
Re:How to Make Python Run as Fast as Julia by co_dh on Wednesday December 16, 2015 @08:55AM (#10744224)
+1
Re:How to Make Python Run as Fast as Julia by andrepd on Saturday December 19, 2015 @07:25AM (#10763392)
You can use the up vote for that.
Re:How to Make Python Run as Fast as Julia by jfpuget on Wednesday December 16, 2015 @09:43AM (#10744504)
In light of your comment, it is interesting to see that Swift team just agreed to remove C style for loop.

https://lists.swift.org/pipermail/swift-evolution-announce/2...

Re:How to Make Python Run as Fast as Julia by thebooktocome on Tuesday December 15, 2015 @11:08PM (#10742309)
What lessons have you learned from developing Octave that you think Julia could benefit from?
Re:How to Make Python Run as Fast as Julia by jordigh on Tuesday December 15, 2015 @11:24PM (#10742369)
That's a bit of a tough one. Julia is much newer software than Octave, and it also has a lot of knowledge already of what does and doesn't work. They're already well-staffed by programming language experts. I have learned a lot about how the Matlab language works, and also a lot about how Octave is put together.

I don't have much to offer to Julia on technical terms. Octave's codebase started as pre-standard C++, and it's been a long and arduous job to very slowly modernise it. Julia has the advantage of starting modern.

I think the biggest lesson I've learned is, don't underestimate Matlab. It may be old, it may be an ugly language, but it also is gigantic, very well-funded, and everywhere. Julia and Octave are approaching Matlab from different angles, Julia by providing a better language and Octave by providing a free drop-in replacement, but ultimately we are both trying to replace Matlab.

Matlab users greatly value having a complete package with an editor, debugger, visualiser, profiler, and system modeller all in one. They don't generally see Simulink or the symbolic toolbox as being separate components, or indeed, as the completely separate programs that they really are. For the devout Matlab users, these conveniences greatly outweigh a better programming language. Going further, many Matlab users don't even consider their activity "programming" at all, and in recent years Matlab even writes the code for you if you just push a few buttons.

We're seeing some academics slowly switching over to Julia. This is great. The Mathworks knows very well that captivating young, malleable minds in university is how you get loyal paying customers, namely, the future bosses of these newly-molded minds. Julia is doing a good job appealing to profs. I am optimistic that within five years or so, new generations of Julia-trained graduates will slowly spread the love of the new language.

Re:How to Make Python Run as Fast as Julia by thebooktocome on Tuesday December 15, 2015 @11:34PM (#10742401)
> Matlab users greatly value having a complete package with an editor, debugger, visualiser, profiler, and system modeller all in one.

That's a very good point. Julia's debugger and profiler are both horrifyingly bad.

Re:How to Make Python Run as Fast as Julia by ViralBShah on Wednesday December 16, 2015 @03:29AM (#10743034)
The debugger is one of Julia's top priorities, and here's a debugger roadmap that Keno recently posted.

https://groups.google.com/forum/#!topic/julia-dev/-LTsBVRv1d...

Re:How to Make Python Run as Fast as Julia by jordigh on Tuesday December 15, 2015 @11:39PM (#10742421)
After many years, we've finally had something that very roughly approaches that in the Octave GUI. I've heard lots of good things about our GUI, but I know we're still very far from the polish of Matlab in this department.
Re:How to Make Python Run as Fast as Julia by pkofod on Wednesday December 16, 2015 @03:48AM (#10743088)
Do you really think profiling is so horrifyingly bad in Julia with ProfileView? Imho, I cannot see what Matlab offers on top of that, but that may just be me.
Re:How to Make Python Run as Fast as Julia by thebooktocome on Wednesday December 16, 2015 @08:26AM (#10744070)
I think ProfileView is great at displaying flame graphs, but there's more to profiling than can be interpreted from a single graph. For example, it doesn't separate execution time from number of executions.
Re:How to Make Python Run as Fast as Julia by _Codemonkeyism on Wednesday December 16, 2015 @05:51AM (#10743458)
If you don't understand other people, wonder then dig deeper. Don't make it an argument against those people.
Re:How to Make Python Run as Fast as Julia by pkofod on Wednesday December 16, 2015 @07:45AM (#10743876)
A: "X is stupid, Y is much better!" B: "Are you sure X is stupid? How is Y better?" C: "Don't argue, B! Dig deeper."

You figure out who's who.

I was merely trying to understand why thebooktocome thought the profiler was so bad.

Re:How to Make Python Run as Fast as Julia by _Codemonkeyism on Wednesday December 16, 2015 @08:31AM (#10744099)
You're obviously the clever one.
Re:How to Make Python Run as Fast as Julia by pkofod on Wednesday December 16, 2015 @08:51AM (#10744194)
I meant no harm, and as you can see, thebooktocome actually understood my comment, and has given me a useful answer.

Have a nice day.

Re:How to Make Python Run as Fast as Julia by _Codemonkeyism on Wednesday December 16, 2015 @10:55AM (#10745044)
Sorry then it was my bad English, as I'm no native speaker, as "Do you really think profiling is so ..." I did not understand as a honest inquiry, mainly because of your usage of "really" and your unconventional - I might say defensive - use of "Imho" in "Imho, I cannot see what Matlab ..." where I understood "Imho" as "In my humble opinion" expanded to "In my humble opinion, I cannot see what ...".

Also your words with the easy usage of "stupid" led me - wrongly! - into the direction that you might not be interested in understanding why users prefer Matlab, but more in expressing your opinion about the topic.

And to be frank, again perhaps due to my weak understanding of English, your usage of "You figure out who's who." and "Have a nice day" to me do not sound as the intention of trying to understand things but more on making clever remarks. But as I've pointed out, this might be due to the fact that English is not my native tongue.

Re:How to Make Python Run as Fast as Julia by sgt101 on Wednesday December 16, 2015 @07:09AM (#10743741)
errm - if someone makes a point respond to the point rather than attacking the fact that they made it? What are the features that the Julia profiler should have? If you can say then I think that everyone will have made some progress.
Re:How to Make Python Run as Fast as Julia by dbcooper on Tuesday December 15, 2015 @11:38PM (#10742418)
Does Matlab have something like iPython notebooks built in? That is something that would be really nice for academic work.
Re:How to Make Python Run as Fast as Julia by jawilson2 on Wednesday December 16, 2015 @04:43PM (#10747585)
Matlab scripts have a cell-mode, where you can execute modules of code. Cells are delimited by %%, and you can run a cell by pressing ctrl-enter, run and progress, etc.

In my experience (15 years), Matlab has been the best for exploratory data analysis. If you change a script, you don't need to worry about re-importing issues like in python; you can even change code DURING a debugging session, EVEN with GUIs. I have been using python+numpy+pandas for a few years now, and python just feels like there is an impedance there that I don't get from Matlab, primarily with graphics/matplotlib. But, deploying and sharing python is easier. I admit it could just be my experience with Matlab that biases me. I usually find that people bitching about Matlab don't like the language, and that is usually because they are viewing Matlab AS the language (like python), and not as a data exploration and analysis environment.

Re:How to Make Python Run as Fast as Julia by sundarurfriend on Wednesday December 16, 2015 @02:14PM (#10746490)
There's an IDE kind of environment as x0x0 mentions, but I think you're referring to the ability to mix code and text and figures all in one document? ~~MATLAB doesn't have that to my knowledge, at least not yet.~~ Strike that, there's MuPad, like the other comment mentions, though it is indeed rarely used in my experience.

Relevant to the topic at hand, Julia does have that functionality already, and it in fact (afaik) uses the same engine that's behind iPython, the Jupyter environment. There's even a web-based community version for people to try stuff out: https://www.juliabox.org/

Re:How to Make Python Run as Fast as Julia by x0x0 on Wednesday December 16, 2015 @01:51AM (#10742795)
I'm not sure what you mean by that exactly, but matlab has a very usable gui / visual editor for mac and windows (and almost certainly linux, but I'm not sure).

If you mean a packaged script more like a mathematica notebook, I don't believe so.

Re:How to Make Python Run as Fast as Julia by tavert on Wednesday December 16, 2015 @03:49AM (#10743089)
They've had the mupad notebook (http://www.mathworks.com/help/symbolic/mupad.html) ever since they replaced the backend of symbolic math toolbox from maple to mupad, around 2008 or 2009. But I don't think it's too popular with Matlab users, there's a certain simplicity to just having a plot come up in a new standalone window that can actually be surprisingly hard to accomplish cross platform. Often have to pick your poison of depending on Tk, Gtk, Qt, Electron, or running in a browser (which still doesn't feel right to a lot of people, and for the non-Python languages supported by jupyter the Python server backend is a non-trivial dependency that can be messy to deal with).
Re:How to Make Python Run as Fast as Julia by qpsk88 on Wednesday December 16, 2015 @04:36AM (#10743248)
well, R2016a claims to have with the Live Editor something like this.
Re:How to Make Python Run as Fast as Julia by jfpuget on Wednesday December 16, 2015 @06:22AM (#10743557)
Thank you, great comment, it spurred a great discussion.

Let me just clear one thing: I am not trying to represent Julia in any way. I wouldn't be legitimate for that at all. I tried to not write anything negative about the Julia language. Let me know if you think i did, in which case I'll modify my text.

To your point about compilers in charge of speeding up code, I see Numba doing more and more. I hope it will cover all of Python soon.

Re:How to Make Python Run as Fast as Julia by Lanzaa on Wednesday December 16, 2015 @01:21PM (#10746105)
I thought the article was good. It started with a basic premise, "Should we ditch Python and other languages in favor of Julia for technical computing?" Then the article shows several methods for speeding up python code to be faster than using julia. I was a little disappointed that pypy was not mentioned, but it is a good introduction to speeding up python code.

I think the flaw in the article is when it switches to answering, "did the Julia team [write] Python benchmarks the best way for Python?" Then it rewrites the fib implementation to use a cache, which makes the comparison to the julia version completely ridiculous. It also does all sorts of optimization which clearly deviated from the spirit of the benchmark, naive python vs naive julia.

I wish the conclusion had been written in a way that clearly answered the original premise, should we ditch python for julia? The article clearly showed that there are a lot of good ways to speed up python code. Looking for algorithmic complexity wins (like in the fib example), using cpython, using numba, and profiling all can be used to speed up python code to the level of naive julia code. Which leads to the conclusion, if all you want is faster code there is no need to ditch python for julia.

Re:How to Make Python Run as Fast as Julia by jfpuget on Wednesday December 16, 2015 @03:31PM (#10747080)
I agree that the first question is a very interesting one. I would be interested in the answer myself.

I made it clear however that I was going to answer a different question: did the Julia team wrote Python benchmarks the best way for Python?

That's all what the post is about: how to run Python code faster.

I will need way more Julia experience to be able to even think about answering the first question. The only thing I am 100% sure is that these micro benchmarks do not help answering that question.

Re:How to Make Python Run as Fast as Julia by co_dh on Wednesday December 16, 2015 @08:53AM (#10744213)
I don't agree that speeding up your code is your compiler's job. If that is true, there is no point to learn data structure and algorithm.
Re:How to Make Python Run as Fast as Julia by the_af on Wednesday December 16, 2015 @09:16AM (#10744348)
I don't think you and the parent post are talking about the same kind of speedups. Of course choosing the right algorithm and data structure is your job. How you tackle the problem is definitely your job, not the compiler's.

But in general, unrolling loops, caching (some) results, and eliding redundant code rightfully is the compiler's job. That's a different kind of speedup.

Re:How to Make Python Run as Fast as Julia by vvanders on Wednesday December 16, 2015 @11:23AM (#10745250)
I would argue that data layout is even more important the the data structure you use(see radix sort) which is also something the compiler can't control.

I pretty strongly disagree that with the meta-parent that it's the "compiler's job to speed up your code". It just doesn't have enough context to be able to do it effectively. I would actually prefer a predictable compiler to one that tries to do all sorts of magic tricks that can be perturbed by seemingly trivial code changes.

Re:How to Make Python Run as Fast as Julia by scott_s on Wednesday December 16, 2015 @10:59AM (#10745072)
Picking the right data structure and algorithms gets your code in the right algorithmic complexity range - did you implement a naive linear algorithm, or did you figure out a way to make it logarithmic? Or maybe even average-case constant? Compilers are generally not good at making optimizations that change complexity class. (Possible, yes, but not commonly.)

That's not what jordigh is talking about. Let's say you figured out a clever way to get your problem to O(log n). That's definitely your job. But in practice, constants matter - that is, 10 log n is way, way worse in practice than 2 log n, even though they are both O(log n). And that's the kind of optimization that compilers may be better at than you. Once you have convinced yourself that the performance of some component matters, a good principle is to figure out the best complexity class you can (using the "right" data structures and algorithms), then write the most idiomatic code possible.

Re:How to Make Python Run as Fast as Julia by grayclhn on Wednesday December 16, 2015 @12:21PM (#10745697)
Regardless of whether or not your main point is true in general, most scientists don't know and will never have time to learn data structures and algorithms. So, for this domain at least (scientific computing), the compiler is getting the job anyway.
Re:How to Make Python Run as Fast as Julia by JupiterMoon on Wednesday December 16, 2015 @02:33PM (#10746641)
> It's almost a literal translation of the Julia code.

Therein lies your problem. If I took some of my python code and literally translated it to Julia would it run like a pig as well? Could I even do a literal translation?

Re:How to Make Python Run as Fast as Julia by Veedrac on Wednesday December 16, 2015 @04:52PM (#10747636)
It'll probably translate, and it'll probably run fine.

Julia's like scientific Python, but where the naïve implementation also runs fast. "Fast by default.", perhaps.

Re:How to Make Python Run as Fast as Julia by Nrpf on Wednesday December 16, 2015 @06:20PM (#10748160)
Actually no. Naive Julia is often slower than python. Vectorized Array expressions are on par with numpy and slower than numba.

"type unstable", IO and text processing code is also slower.

Re:How to Make Python Run as Fast as Julia by Veedrac on Wednesday December 16, 2015 @06:52PM (#10748377)
Although Numba might beat Julia, that's far from saying Julia would "run like a pig".
Re:How to Make Python Run as Fast as Julia by Nrpf on Wednesday December 16, 2015 @07:55PM (#10748694)
Type unstable Julia is often slower than python.