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.

Reply via email to