Julia is a young language with new ways of expressing problems that we keep on refining. In my opinion, the most important features in Julia is multiple dispatch and a very nice type system. Method overloading makes it easy to express generic algorithms. If a Julia program performs badly, it is usually fairly easy to code around some known rough edges and achieve runtime speeds about 2 times of a similar program written in C.
Great post, it sums up very well the things I think is the strengths of Julia.A few notes:Julia does not look up the method at runtime if the types of the arguments to the function can be deduced from the types of the arguments to the surrounding function (but it behaves that way for the user, unless he redefines the method after the function was compiled #265).
Given that Julia is not even in version 1 and has a lot less libraries than Python I don't think Julia is a serious contender in Scientific Computing today. But I am pretty sure it will be. But that wont happen over night.
I would be into having an auto-formatting tool. The way to do this would be to work on the printing of ASTs until the way the code prints is the standard way it should be formatted. Then you have an auto-formatter: parse the code and print the resulting AST. One missing thing is that parser currently discards comments.
Yep:julia> :(@foo bar):(@foo bar)julia> xdump(ans)Exprhead: Symbol macrocallargs: Array(Any,(2,))1: Symbol @foo2: Symbol bartyp: Any::DataType <: Any
If Julia were to allow prefix style method calls, such as myObject.myMethod() above, where would the system look for myMethod()?
Gentlemen, how's it going?
Worth learning Python or Julia replaces python for scientific computing? I see many people encouraging the use of Python for scientific computing.