On Fri, 9 Feb 2001, Brian Ingerson wrote:
> I've never heard of S but it looks cool, and more importantly it looks
> Inlinable, at least from a syntax point of view. Is it implemented in C?
S is a statistical programming language written at Bell labs. It is
somewhat lisp-ish, as arrays and scalars are treated equally (well,
technically a scalar is actually an array, and arrays are expanded as
necessary to match the number of elements necessary to perform whatever
operation). S-Plus is the "reference" implementation of the S language.
It is not free, but is a "standard" piece of software available at most
academic institutions (in the same league as SPSS/SAS). There is a C API
and an SPlus SDK available (only of use to you if you have SPlus as well).
See www.splus.com (MathSoft recently turned into Insightful or some such,
but this page should still work, or at least bounce you), although I
expect it to be pretty much executive-drivel.
'R' is a GPL'ed implementation of the S programming language, with some
minor differences. It is rather young, but growing quickly. It's home
page is at http://www.R-project.org/
Both R and Splus run on most, if not all, unix'es as well as Win32
platforms.
As I've been in a university setting using SPlus for a long time (long
before R ever showed up), I've never had a great reason to migrate to R
(and, as I said, there is some amount of missing functionality in R - of
course, since R isn't so bloated, it runs much faster and cleaner). I've
also never delved into the C API of Splus, because I never really thought
I'd write an XS to use Splus through Perl. Inline, of course, has changed
all that.
Of course another advantage to Inline'ing R/S is that there are CPAN-like
resources for both of these systems that would be fantastic to "wrap" into
perl modules via Inline::R/S. Perl is great for Data Munging (to which
the forthcoming O'Reilly book attests), but with Inline::R/S it becomes a
(more direct) glue into Data Processing and Data Analysis. There's
serious book material here (I'm in the bioinformatics field, where data
analysis is the Last Great Frontier).
Then there's the fact that much of what S and R do well is turn your
streams of numbers and labels into sophisticated automatically generated
graphs. We're not talking about high-school x-y scatter plots here, but
very high level graphical routines of plots you've only seen in
statistical journals (I'm sure you know the type). If I could generate
those plots directly through perl (piping them through ps2pdf, etc), I've
eliminated much of my "command line" typing.
Enough excited blathering. So I guess if there's not anyone else
interested in this stuff, I'll declare myself the current Inline R/S
project manager, and maybe sometime soon I'll start investigating what
needs to be done.
-Aaron