Recs.
Updated
Julia is a high-level, high-performance dynamic programming language for technical computing.
SpecsUpdate
Pros
Pro Nice regular syntax
Julia code is easy to read and avoid a lot of unnecessary special symbols and fluff. It uses newline to end statements and "end" to end blocks so there is no need for lots of semicolons and curly braces. It is regular in that unless it is a variable assignment, function name always comes first. No need to be confused about whether something is a method on an object or a free function.
Unlike Python and Ruby, since you can annotate the types a function operates on, you can overload function names, so that you can use the same function name for many data types. So you can keep simple descriptive function names and not have to invent artificial function names to separate them from the type they operate on.
Pro Written in itself
The Julia language is written in itself to a much larger extent than most other languages, so a budding programmer can read through the depths of the standard library and learn exactly how things work all the way down to the low-level bit-twiddling details, which can be englightening.
Cons
Con Not a functional first language
Julia is a very interesting language and supports some functional programming elements like higher order functions (like many other languages nowadays) but is not a language that prioritises the use of a functional programming style. And this includes the documentation. Julia is probably more suited for someone who knows functional programming already a bit rather than to learn functional programming
Con Documentation, example and community to much focused to math gurus
The community is very active and welcoming, but sometimes a bit "elitist". You will not easily find examples with x=1+2
, but rather with some esoteric math plugged into it, even if the things to explain are actually simple.
Recommendations
Comments
Flagged Pros + Cons
Pro Not realy a functional first language
Julia supports some functional programming elements like higher order functions (like many other languages nowadays) but is not a language that prioritises the use of a functional programming style. And this includes the documentation.