S (programming language)


S is a statistical programming language developed primarily by John Chambers and Rick Becker and Allan Wilks of Bell Laboratories. The aim of the language, as expressed by John Chambers, is "to turn ideas into software, quickly and faithfully".
The modern implementation of S is R, a part of the GNU free software project. S-PLUS, a commercial product, was formerly sold by TIBCO Software.

History

"Old S"

S is one of several statistical computing languages that were designed at Bell Laboratories, and first took form between 1975–1976. Up to that time, much of the statistical computing was done by directly calling Fortran subroutines; however, S was designed to offer an alternate and more interactive approach. Early design decisions that hold even today include interactive graphics devices, and providing easily accessible documentation for the functions.
The first working version of S was built in 1976, and operated on the GCOS operating system. At this time, S was unnamed, and suggestions included ISCS , SCS , and SAS . The name 'S' was chosen, as it was a common letter in the suggestions and consistent with other programming languages designed from the same institution at the time.
When UNIX/32V was ported to the 32-bit DEC VAX, computing on the Unix platform became feasible for S. In late 1979, S was ported from GCOS to UNIX, which would become the new primary platform.
In 1980 the first version of S was distributed outside Bell Laboratories and in 1981 source versions were made available. In 1984 two books were published by the research team at Bell Laboratories: S: An Interactive Environment for Data Analysis and Graphics and Extending the S System. Also, in 1984 the source code for S became licensed through AT&T Software Sales for education and commercial purposes.

"New S"

By 1988, many changes were made to S and the syntax of the language. The New S Language was published to introduce the new features, such as the transition from macros to functions and how functions can be passed to other functions. Many other changes to the S language were to extend the concept of "objects", and to make the syntax more consistent. However, many users found the transition to New S difficult, since their macros needed to be rewritten. Many other changes to S took hold, such as the use of X11 and PostScript graphics devices, rewriting many internal functions from Fortran to C, and the use of double precision arithmetic. The New S language is very similar to that used in modern versions of S-PLUS and R.
In 1991, Statistical Models in S was published, which introduced the use of formula-notation, data frame objects, and modifications to the use of object methods and classes.

S4

The latest version of the S standard is S4, released in 1998. It provides advanced object-oriented features. S4 classes differ markedly from S3 classes; S4 formally defines the representation and inheritance for each class, and has multiple dispatch: the generic function can be dispatched to a method based on the class of any number of arguments, not just one.