What do serious statisticians use for doing their work? They all use R.
R is an interactive programming environment designed for data analysis. It has its own language (which can confusingly be called S for historical reasons), its own large library of basic and statistical functions, its own quality-controlled repository of contributed libraries, its own interactive shell with integrated plotting. In its own domain, it as complete a working language as Python, Perl or PHP. (It is certainly more mature than Javascript!)
Here are some features of the language to get programmers excited:
Functions are objects.
rmean = function(x=50) mean(rnorm(x))
Inline anonymous functions are easy.
boot(data, function(data, x){ mean(data) - mean(x) })
Numbers are always arrays.
mean(1) == 1
Arithmetic is vectorized.
c(1,2,3) * 2 == c(2,4,6)
Boolean operations are vectorized.
(c(1,2,3) == 3) == c(FALSE, FALSE, TRUE)
Object-oriented support with simple prototype system.
df = data.frame(c(1,2,3))
class(df) == "data.frame"
print.data.frame(df)
print(df) #same as previous because of method lookup
Code blocks are objects.
plot(c(1,2,3))
# graph shows "c(1,2,3)" as axis label... so cool!
More excitement: Django + R graphing .
Working on SnapAds reports, I ran into the UI problem that the effects of colors (red, green, blue) in an advertisement were being graphed with random colors assigned by the graphing software (amcharts) -- very confusing! The real underlying problem was that the names of the colors are entered into the system by outside users. There is no way of knowing ahead of time if the thing being graphed is a color. Unless...
There are only so many words to describe colors. Could there be an 80% solution here? Indeed, I found Stoyan Stefanov had already written a color parser in javascript. I rewrote it quickly in Python so it could run server-side (amazing how closely those two languages can map to one another) and voila -- SnapAds reports now show a red bar if the thing being graphed is the effect of a red button.