I really don't understand why each language ecosystem has to go through this phase. What would be so bad about implementing packaging the way it has been done in OSGi for a decade? It's language agnostic, since the bundle can export/import namespaces or arbitrary capabilities, it has solved the dependencies-are-a-graph-not-a-list problem, it supports versioning and multiple parallel versions of the same package.
especially these seem very interesting:
http://julialang.org/blog/2013/03/julia-tutorial-MIT/
It's also a huge plus that they can pretty much call any python inline:
http://nbviewer.ipython.org/url/jdj.mit.edu/~stevenj/IJulia%...
So we have the fall back python libraries and can do plotting etc..
I just finished the data science coursera class, and while we used Python, we didn't get into R. I've played around a little R on my own, and while I certainly don't think it's too difficult to learn for a programmer with a math background, as a programmer I feel much more at home with Python. Given the choice, I'd rather use Python than R just because it feels more natural to me.
If Julia is a truly a programming language, I'd agree that it would be more of a competitor with python than R (in the sense that its audience would be people like me who would lean toward python)... but I think it could be very successful by making it very easy for a programmer to stay within a programming language. In other words, it wouldn't compete with R, it would compete with python by bringing what you get from R to a programming language.
function(x1, x2) becomes (function x1 x2)
R has a number of warts as a language (e.g. how it deals with copying objects in memory, amongst others), however it's just as "real" as Python, which also has its warts.
I do like the direction Julia's heading, even if I'd prefer to see something like Clojure/Incanter, or better still, something like Racket be the next baton holder.
Some of this may also simply be a result of doing some exercises in Python (in the coursera class), and not doing any R. I was pretty bummed that we didn't't get at all into R in the coursera class, because sometimes just getting set up a little bit (like having some sample skeleton files for homework) and a few exercises can make a big difference. Not meant as a knock on the course, which was free and (I thought) very good. But a bit of exposure to R would be helpful (while I appreciate the importance of visualization, I do think that given the choice between tableau and an intro to R, I'd definitely have preferred R).
R was really where I started to see the world through functional eyes. I originally came to R with a background involving a little C, a little Perl, a little ObjC, and a whole lot of Python.
Eventually, I hit a point with R where I was trivially doing pretty complicated things that would have been... ugly in Python. Even my Python now looks more like R. This was partly due to finding Peter Norvig's Udacity course, but also partly due to the fact that his somewhat un-"pythonic" python style really, really resonated with my R-tainted brain.
Anyway, on the topic of R, I highly suggest the Johns Hopkins data related courses on Coursera. Many of them use R as the central tool, and the three I've taken really stood out for how much the instructors reminded me of getting a private tutorial from a bright colleague on an area of their own expertise.
Based on your description, you'd probably already know most of what would be covered, but the Roger Peng class on "Computing for Data Analysis"[1] is starting again soon, and it includes an overview of R that might have some gems for you. I liked that the lectures were relatively succinct, and the assignments put it in practice.
I'm curious; can you give any examples?
https://gist.github.com/pschmied/5903410
I make no guarantees about the quality of my hackish code :-)
For X to be the next baton holder, X would need to be quite widely adopted, and the superficially matlab-like look and feel of Julia should really help in this.
Hmm.
I'd say they're pretty different niches.
What would you call a lambda calculus reducer numerically?
Well, no, that's not quite right. Really, it's more like someone took Matlab and made it a real general-purpose language, and built it close enough to C to be generally fast, not just fast at a few things. Matlab actually has more in common with Clojure, being a JVM language.
There're way too many interesting languages these days :)
Agreed about too many interesting languages though :)
http://stackoverflow.com/questions/5721496/learning-java-so-...
http://stackoverflow.com/questions/11358929/what-should-a-sc...
http://www.reddit.com/r/Clojure/comments/1ev4u5/what_do_i_ne...
It is LLVM based, and already really fast even though it is still a 0.2 and the JIT seems to have a lot of room for optimisation.
Whats more, it seems to offer just the right blend of language features: - Easily include C libraries via a simple ffi [1] - It is homoiconic like Lisp and thus allows for fantastic macro facilities [2]
- It has solid parallel programming support via a Coroutines implementation (Tasks) (similar to Goroutines as far as I can tell)
- It is a non-pure functional language
- In contrast to Go it has generics, so functional constructs like map, apply, drop, reduce, fold, partition & friends are already in there (or can easily be implemented) [3]
- It has optional types, so that you can assign types and the compiler will check for it and mark errors and will be able to create optimised code, but you don't have to [4]
- Running external programs is a joy [5] (Example: a=readall(`echo hello`))
The community seems to be very alive. There's a simple web framework called "Morsel" and I've recently set it up against a couple of contenders from the web framework benchmark (cpoll-cppsp, phreeze, and some others), and even though it is still a version 0.2, the performance for the json serialization benchmark would be pretty close to Scalatra (I yet have to publish these numbers, will do so soon).
I really hope that Julia will grow, as I love the choices that went into the design of the language, and it would be a shame if it would be only a replacement for R instead of something much bigger, as it is such a nice language.
[1] http://docs.julialang.org/en/latest/manual/calling-c-and-for...
[2] http://docs.julialang.org/en/latest/manual/metaprogramming/
[3] http://docs.julialang.org/en/latest/stdlib/base/#general-col...
[4] http://docs.julialang.org/en/latest/manual/types/
[5] http://docs.julialang.org/en/latest/manual/running-external-...