It's mentioned here http://julialang.org/blog/2012/02/why-we-created-julia/ that Mathematica was one of the programs that inspired Julia. How does Julia compare to Mathematica's language?
To make the question more specific, - it's about languages, not implementations, so Mathematica's FrontEnd capabilities are irrelevant (and it's also not about “which one is faster”) - it's not about free vs non-free - it's not about communities and support - it's not about anything related to OOP (feel free to write about, sure, but I will probably be very passive in discussions concerning OOP) - it's about the languages' most high-level features, like meta-programming, macros, interactions with other languages and the way it treats types For example, Wolfram language (which is now the name of Mma's core language), implements meta-programming capabilities via term-rewriting and Hold. It provides some foreign-language interfaces via MathLink (which could be WolframLink already) and also has SymbolicC. It is untyped and proud of it; types can be implemented easily but they are of little practical need in the absence of compiler. - it's also about the languages' most distinctive features: are there things Julia has that WL does not have? (Which means adding them to WL would require reimplementing Julia in WL, much in spirit of Greenspun's tenth rule.) To provide a starting point, here is the definition of type in Julia from documentation http://docs.julialang.org/en/latest/manual/metaprogramming/ type Expr head::Symbol args::Array{Any,1} typend Maybe there's a typo in docs (line 4) but it doesn't really matter. What do Julia users do, for example, to avoid boilerplate code defining lots of types? I understand how to avoid writing boilerplate definitions in WL: it may not be easy but at least I know where to begin in case I need a program that would write new definitions or update existing ones.