Julia scientific programming language

sidetone

Daemon

Reaction score: 396
Messages: 1,115

OP
OP
sidetone

sidetone

Daemon

Reaction score: 396
Messages: 1,115

I think Julia can be the basis for math and science user end software. It seems the programming language would work as is, lacking the graphing environment.

Oko or anyone else who cares to answer:
In your opinion, how does/would Julia fit into a mathematics environment comparable to Mathlab, Mathematica, etc?
 

Oko

Daemon

Reaction score: 771
Messages: 1,620

Oko or anyone else who cares to answer:
In your opinion, how does/would Julia fit into a mathematics environment comparable to Mathlab, Mathematica, etc?
You are mixing lots of things so lets look at the basics first.

Maxima (open source maintained by University of Texas),
Mathematica, Maple, and Mupad are all examples of general computer algebra systems. They are in some sense all descendants of Macsyma the first computer algebra system started as a PhD project 1969 at MIT. The main characteristic of computer algebra systems is that they can perform symbolic computations. A basic problem for a computer science student would be to write an algorithm/program for symbolic differentiation. Now not all problems are trivial like symbolic differentiation and there is a whole field of people who do research in symbolic computations algorithms. Many of those algorithms are so sophisticated that only partial implementations exist.

If you have to use a general computer algebra system I would go with Mathematica unless you are one of those people who cares about the symbolic algorithms rather than for mathematics or physics that you are trying to do using computer algebra.

Python language has a module for symbolic manipulation. I would recommend the module for researchers or hobbyists interested in symbolic computations for the sake of symbolic computation.

You than also have a class of very specialized computer algebra programs which are specific for a certain field. An example would be GAP (specialized software for computational group theory). That is a very long story.


Anyhow long story short Julia doesn't belong to that group. Julia belongs to the group of languages which are specialized in numerical computation.

Most of those languages are relaying on open source libraries like ATLAS, BLAS, LAPACK (written in Fortran for most part) to do the actual work. MATLAB started as a domain specific language (linear algebra) with intention to lower the bar for people to do numerical analysis (no knowledge of Fortran and C required). Clave Moller who originally developed MATLAB was a professor of numerical analysis at the University of New Mexico and it is a still full professor at the University of Michigan. GNU Octave, FreeMat, SciLab are all clones of MATLAB which are more or less compatible. FreeMat is probably the most compatible but with the big caveat. It only reproduces core MATLAB not the toolboxes. Those toolboxes which can cost tens of thousands of dollars are real gems of the MATLAB (I have research license for all boxes, over fifty of them).

Then you have Python which is a general programming language and let say R which is more of the domain specific language. Python has nice modules numpy, scipy, matplotlib (pandas and sci-kit learn if you into data mining and machine learning) but it is not as fast and optimized as MATLAB. Also the language is less elegant than MATLAB language. Arguably Python is general purpose programming language which beats the crap out of MATLAB but people who use MATLAB typically care for their science not for a general purpose language.

So where is the Julia? Julia fits a niche space between MATLAB and Python. The language is very fast, very optimized and developed by people who were primarily MATLAB users. It is the open source (which is HUGE advantage over MATLAB) and designed ground up for numerical computations (unlike Python). So would I recommend Julia? If you are like my daughters in the middle school by all means. If you are contemporary researcher I am afraid that my answer would be not yet. Namely Julia is not mature enough for a wide scientific adoption right now. Probably some people could be happy with it but many would quickly find the lack of libraries as a major limitation to their scientific work.

One of my co-workers in spite of my "advise" took the plunge and spent about two months on Julia just to go back to Python (we are large machine learning/data mining lab). This is an excellent post
little outdated (Julia is very rapidly developing)

https://sciencehouse.wordpress.com/2014/06/29/julia-vs-python/

Bard, the guy who made the recommendation is the regents professor across the street of me (he is at Pitt). Carson is also at Pitt and many people who posted follow up are my former colleagues most notably Rob Clewley and me go long time back when we were at the Georgia State. Those are all ultra smart guys and they know what they are doing. Please read things carefully.
 

jrm@

Daemon
Developer

Reaction score: 473
Messages: 1,205

The micro-benchmarks on http://julialang.org/ (about 1/3 of the way down the page) are enlightening. Yes, benchmarks need to be very carefully interpreted.
 
OP
OP
sidetone

sidetone

Daemon

Reaction score: 396
Messages: 1,115

Ah, gadfly was what I was looking for, to serve on top of a programming language. There is a gadfly port, but I don't think it is the same one that Julia references. The one in ports is an SQL database written in python. Gadfly referenced from Julia's homepage is for plotting graphs, and written in Julia.
 
Top