姿态 -- a site by bzy

999 – Julia

life | research |

Julia | programming | coding | learning | tools |

This blog should begin with a million thanks to Andre Calmon, who recommended to me Julia quite some days ago. I did not have time to really check it out until this brisk autumn afternoon. (Okay, it was not that lovely as it chilled a lot after the shower. But still, it’s November already.)

… and it is GREAT, so great that I feel like blogging.

Since I am not an expert developer, let me not boast something not in my (comparative) expertise. However, I want to highlight some key features of Julia (in my view):

  • It is a programming language for computing. (Think of it as a subsitute for Matlab, if you wonder what “for computing” means.)

  • It is fast. See how Julia advertises herself: http://julialang.org/benchmarks/. Note how close its perfomance is to the benchmark (i.e. C) and comparable in the same magnitude to Fortran!

  • Very, very natural syntax. For example, this is how you would write to greet every one:

people = ["Julia", "Julie", "Judy", "Judieth",]
for who in people
    print("Bonjour, $who\!\n")
end

Very easy to read, no? Everyone will agree that it takes a bit more lines of codes to do the same in Matlab. In particular, it inherits some Python flavor—for who in people—and in the meawhile, for those who are familiar with Bash or Pearl, $who is notably easy to understand.

  • Indexing starts from 1. This is more of a personal taste I guess. I think only the Dutch really understands that all numbers begin with 0, not 1. (Just like “they are the only species who can do Kronecker product in their mind”, Andrew Harvey used to say.) Even after three years proficient use of Python (a Dutch language, lol), I am still more used to count indices from 1, not 0. Plus, Julia knows consistently that indices are always inclusive:
s = "Hello, world!"
print(s[1:3])

will print "Hel", not "He" as would be the case in Python (whose indexing is always first closed then open).

  • Because of the intuitive syntax (actually quite similar to Matlab), the learning curve appears less steep than I thought. I am now halfway of the documentation, just in two hours.

Verdict

I want to stop here. For those who are interested in the latest tools, Julia is definitely something worth trying. I think the above is a good teaser already.

So my verdict is: I will use Julia for my next project.

Sorry, R(omeo), I was thinking about you… untile I met Julia(e).

17:44, Nov 02, 2014
bzy@Fontainebleau