Hacker News new | past | comments | ask | show | jobs | submit login

It's definitely targeting Python and R to the same extent as MATLAB, in the sense that it claims to solve the two-language problem that is so apparent in these languages. MATLAB, Python and R are easy scripting languages, but as soon as you have to do heavy computations, you're forced to call C / FORTRAN libraries. Julia on the other hand is prove that we can have a high-level scripting language that runs as fast as C and Fortran. Combine this with Julia's generic programming and type system, and you can easily run your algorithm with floats, complex numbers, arbitrary precision, etc etc.

Even if Julia wraps a library like Tensorflow, its API is looking really nice compared to Python [1]:

  using TensorFlow

  sess = TensorFlow.Session()

  x = TensorFlow.constant(Float64[1,2])
  y = TensorFlow.Variable(Float64[3,4])
  z = TensorFlow.placeholder(Float64)

  w = exp(x + z + -y)

  run(sess, TensorFlow.global_variables_initializer())
  res = run(sess, w, Dict(z=>Float64[1,2]))
  Base.Test.@test res[1] ≈ exp(-1)
[1] https://github.com/malmaud/TensorFlow.jl



To compete with R it needs something like the tidyverse.


I agree - declarative in memory dataframe manipulation is extremely powerful. And the composability of plotting in the tidyverse is really nice as well.

It looks like there are the beginnings of both of these in Julia:

[0] http://gadflyjl.org/stable/

[1] https://github.com/JuliaStats/DataFramesMeta.jl


I often ask myself the question, how can Julia do things that R cannot do. After all, when something is good at doing something, why replace it?

Part of this is why we did JuliaDB: http://juliadb.org/ and continue to try push the boundaries on parallelism, missing data, OnlineStats.jl and making data manipulation and modeling that much easier.


In some sense, it doesn't really need to compete with R, many times it's better just to use the R, Python, Java, C++, packages via RCall, PyCall, JavaCall, Cxx, or use the built-in ccall to use libraries written in any number of languages that conform to the C ABI (C, Fortran, Rust, ...).

I've joked before, about how there is no such thing as a "One Language To Replace Them All", however, I feel Julia is the best candidate for the "One Language To Rule Them All", since while it solves the "two-language" problem in many cases, you can use it bind code written in many languages together (hopefully in a bit nicer fashion than the "One Ring" bound the other rings and their users!)


Agree completely with this, tidyverse is whats keeping me in R when I'd prefer to mostly use Python.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: