When comparing Julia vs Reason ML, the Slant community recommends Reason ML for most people. In the question“What are the best functional programming languages for programming beginners?” Reason ML is ranked 7th while Julia is ranked 13th.
Ranked in these QuestionsQuestion Ranking
Pro Great standard REPL
Out of the box Julia has a very good Read-Eval-Print-Loop, which both completes functions and types, as well as completion based on history of previous statements. It integrates well with the shell and has an excellent online help system.
Pro Strong dynamic typing
Dynamic and high level, but does not isolate the user from properly thinking about types. Can do explicit type signatures which is great for teaching structured thinking.
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 Almost as fast as C
Julia runs almost as fast as (and in fact in some cases faster than) C code.
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.
Pro Amazing learning curve
Julia requires no boilerplate code – a beginner needs to write only the parts they care about. This combined with the REPL provides the best learning experience available.
Pro Powerful n-dimensional arrays
Julia has built in n-dimensional arrays similar in functionality as Python's numpy.
Pro Function and operator broadcasting
You can perform operations on scalars, for example 2^2 or [1, 2, 3].^2.
Pro Function overloading
You can have multiple functions with the same name, but doing different things depending on function arguments and argument types.
Pro High-level code
Julia provides a high level of abstraction, making platform-independent programming trivial and easing the learning curve.
Pro Superior type inference
Ocaml type inference is so smart that you never have to repeat yourself and keep code very clean, type errors also are very pleasant
The same reasonml code can compile to js (eg. run on browsers or node.js, use any lib in npm), or compile to assembly thru ocaml (unless of course you load js externals), running on any device, with C-comparable (or better) performance.
Pro Immutability with escape hatches
reason includes true immutability, but it has escape hatches to let you use mutations in exceptional cases.
Pro JSX syntax natively supoorted
reason was created by the creator of react, for developers already using JSX to template web or native UIs this results very familiar
Con Young language with limited support
Julia was released in 2012. Due to its short existence, there is a limited amount of support for the language. Very few libraries exist as of yet, and the community is still quite small (though growing quickly).
Con 1-based array and column major
This design probably comes from Matlab, but makes it unnatural to interface C and C++ and python.
Con A standard async syntax is pending
Async syntax is not standard across native/js projects and in both cases a bit awkward for non-ocaml devs. Currently this is reasonml most voted issue in their GitHub repo so hopefully, there's news soon.