We are getting close to 1.0. I am not trying to start a flame war. I want Julia to succeed. Alas, I am wondering what the target use and audience for julia 1.0 in 3 months will be. In what applications can Julia offer a reasonably good and viable alternative to R, python, C++, perl, Matlab, etc?
Graphics and Statistics julia’s 1.0 target is probably not graphics and statistics. These seem to be promising, but are still in flux. It’s not about the deep and unusual graphics and statistics—it’s that many basic tasks are still too hard. Users do not even know which graphics packages are supposed to be used or working at any moment in time. R is still far beyond Julia 1.0, in simplicity, in basics, and in depth. So, I find it hard to recommend learning Julia 1.0 over learning R, much less switching. Maybe 3.0.
(Big) Data I originally thought julia would be rolling out as a viable “big data analysis” programming environment. Alas, I am not sure that julia considers data programming to be important and central. Right now, it looks to me, as a typical user, that julia 1.0 is not going to be a viable solution. (more below.)
Mathematical Programming I see one good use immediately—julia seems to be a viable mathematical programming language. Maybe for optimizing hand-coded models that take days to run and are not particularly data intensive. Great Array handling. Is mathematical programming the targeted Julia’s 1.0 (only) niche? PS: If so, parallel programming changes targeted for 2.0 will be super-important.
Structured large user software projects Stronger typing and generic programming are great advantages over R. Not as good as C++, though. Judgment: Viable in principle. Problem: For large projects, developers tend to be very conservative in the languages and tools that they pick. Julia 3.0, perhaps.
Others Unstructured text processing (ala perl)? Special domains (e.g., biochem or learning libraries)?
what and who will 1.0 be for? where can Julia pick off (new) users in competition with other languages?
PS: Data Programming Let me expand here why I don’t think julia 1.0 will be viable for data programming. I see two main problems, one conceptual, one concrete:
-
conceptual: is data programming even considered to be important and integral to julia, or merely one of many needs? I am asking partly because I am not even sure whether (the pretty darn good) dataframes is just another community package or considered to be a vital central feature of julia. if dataframe were to become neglected, my program(mer)s will be dead.
-
concrete: can julia handle the most important standards for the exchange of large data sets among users and programs well—which I believe are large
.csv.gz
and.gzip
files? yes, I hate these formats, too, but almost all financial data sets in my corner seem to come in this format. For example, I experimented with a 2GB gzip compressed data file (600MB). R can read it into a data frame with fread in about 10 seconds. the fastest I managed for julia was about 7 minutes. (readtable( GZip.gzopen("test.csv.gz") )
; and I have not yet found a way to write compressed data files.
This could be fixed with a modest amount of love before the 1.0 release.