3 ms·
"So the question is, why stick to a language just because it is well established." You answered the question yourself: "but decided to convert to Python after
by edblarney 10y ago
"So the question is, why stick to a language just because it is well established."
You answered the question yourself:
"but decided to convert to Python afterwards to make it easier to distribute to other people"
Languages are platforms. They have vast distribution, incumbency, developers, apis etc. - and that has a lot of value.
Imagine if you did dev on Julia - how do you hire devs?
Julia has a very, very small mind-share - in order for it to reach 'platform status' it really has to cross a threshold, and for that - it has to provide significantly more value.
I'm also curious to know 'how much faster' it is - couldn't those performance problems be solved with more horsepower?
Developers have a terrible habit of over-optimizing for performance, which usually comes at the cost of complexity.
Anyhow - I know little about Julia so I'll hold my tongue, maybe it's the bees-knees ...
It'd be great to see some data points.
- tavert 10y ago> Imagine if you did dev on Julia - how do you hire devs? Julia doesn't take long to learn if you've ever written any Python, or Matlab, or R. It's very good at calling into existing code written in other languages (the above, and C) so it's possible to transition gradually. > I'm also curious to know 'how much faster' it is - couldn't those performance problems be solved with more horsepower? Depends on the exact type of computation. If everything you're doing is straight BLAS/LAPACK or other library calls, then Python is just glue code and not taking much of the time. If you're implementing your own custom algorithms (or writing libraries) that are difficult to express in a vectorized way (where numpy just does the work in C) or you want more customized data structures and types than dense arrays of single or double precision floating point numbers, Julia will do well. There are various projects out there that try to make Python faster (PyPy, Numba, Pyston, Pyjion, the list seems to grow every few months) but it's a very difficult problem to do in full generality since you either have to restrict yourself to a subset of the language where the semantics permit optimizations, or lose compatibility with all the C-extension libraries you're used to. Julia has designed the language semantics and the conventions of the standard library to be more amenable to optimization. It's early days yet in terms of multithreading support, but Julia has a better story there as well. For a representative performance comparison case study, see section 4 of https://arxiv.org/pdf/1312.1431v1.pdf https://arxiv.org/pdf/1312.1431v1.pdf. There have been similar experiences reported and published in other application areas since.