Agree that while raw speed is important, in most situations it wouldn't be 
the most important reason to choose one programming language over another.

I came from the angle of an engineer in a small company. For myself, the 
main attraction of Julia was the easiness to achieve decent speed without 
making much explicit effort: that means what feels more natural vectorized 
will be vectorized, while what feels more natural in a loop will be in a 
loop; that means I don't need to resort to another language or a library 
only for improving speed; and that means apart from sticking to a couple 
good habits, I can use objects, functions etc. the same way inside a loop 
vs. outside. None of these is critical by itself, but they add up to an 
uninterrupted flow of thoughts while writing code to explore, try, fail, 
and retry, for many iterations.

During this "less careful" prototyping, 1-2x slow down is fine, but with 
Julia I know I won't sit there for tens of minutes waiting for a result 
while debating myself whether I should rewrite it in C++ or rehaul the code 
with Cython etc.; instead I can rest assured that as long as my algo and 
coding have no mistakes or major flaws, the speed is close to what I will 
get even if I make several times more effort to rewrite it in C++.

Another big deal for me is the resulted removal of the barrier between 
prototype and production code. For production I can review and improve my 
code carefully, but rewriting it in a less expressive language is too much.

I was a huge fan of Python (heck I even persuaded my previous boss, a VP, 
to pick up Python - though I don't know if he really had time to finish it. 
:-)). However, the slow raw speed and the over-freedom to change class 
definition anywhere always gave me the itch to find something better. My 
brother at JPL who worked on Python projects also complained about having 
to think really hard to vectorize almost everything and then couldn't 
easily understand what he was doing a few months later because the code was 
too unnatural for the problem; the indentation was also a big headache as 
collaborators use different editors with different tab definitions. 

So I'm really happy to have found Julia, which gave me the same joy as 
coding in Python and removed the main itches.

-Zhong











Reply via email to