Welcome to the JSC (Java
Statistical Classes) web site! JSC is a project to extend
the Java programming language and Java APIs (Application
Programming Interfaces) to support educational and enterprise development
of statistical software in Java.
The Java programming language offers exciting new opportunities to the
statistical programmer, academic and professional statistician . Some
important features of Java are -
- Object-orientated design - the language embodies
modern ideas from computer science backed by practical experience. Java's
object-orientated approach can be applied to statistical concepts, methods
and data in powerful and expressive ways that would be difficult in
- Platform-independence - Java is not tied to the MS-Windows
platform. The same Java program should require no modification to run
on Windows PCs, Macs, UNIX or LINUX systems. Java provides a degree
of portability not provided by other languages, and its specification
is controlled by Sun Microsystems: so Java avoids the confusion of different
language standards and dialects that have plagued statistical programming
- Graphics - Java's standard libraries provide superb
platform-independent support for graphics making any kind of statistical
display possible, from basic exploratory plots to stunning professional-looking
presentation graphics. They also make it possible to develop animations
for educational use. Unlike other languages, graphical code written
using these libraries will run on any system capable of running Java.
- Graphical user interface components - Java's standard
libraries provide excellent platform-independent support for building
modern graphical user interfaces to your statistical applications.
- Integration with the Web - Java applets running in
the user's web browser can support worldwide statistical education and
dissemination of statistical ideas.
- Internationalization - Java is designed to cope with
differences between countries and languages. With increasing globalization
of commerce, industry, distance education, and the growth of EU statistics,
this is a feature of Java that should appeal to statisticians. A minimal
level of internationalization of data display is possible with little
- XML support - Java supports the Extensible Markup
Language standard for document markup which offers the possibility of
cross-platform, long-term data formats. Statisticians are currently
interested in XML as a means of preserving and sharing statistical data,
and as a medium for defining standards for meta-data - information needed
to ensure a correct analysis of a set of data.
- Accessibility support - There is increasing pressure
on universities and businesses to make their software accessible to
disabled people. Java's accessibility package supports assistive technologies
- such as audible text readers and screen magnification.
- Low cost - You can download everything you need
to develop, compile and run Java programs for the cost of an Internet
connection. The JDK (Java Development Kit), JRE (Java Runtime Environment),
various utilities, tools, documentation and tutorials are all free from
Sun's web site. All you need to write Java code is a basic text editor,
although specialized Java editors are also available for little or no
- Marketable - There is a high demand for Java programmers
in business, finance and the computing industry that is likely to spread
to education and statistical developments. The Internet and the backing
of the computing industry will ensure that Java continues to be valued
and developed for many years to come. The statistician with a knowledge
of Java will be in demand, and in a good position to take advantage
of these developments. For similar reasons, students will also appreciate
being taught statistical programming and performing computing projects
For more information on the advantages of using Java in statistics, see
the Articles page.
The JSC library
The core of this project is JSC - a library of reusable, extendible components
for building statistical software. Java's standard libraries provide many
classes that could be useful in statistical applications; covering such
areas as mathematical functions, data structures, tables, file handling,
graphics and interface components. Some of these standard libraries, however
- particularly those concerned with graphics and interface components
- are complex and difficult for the beginner: whole books devoted to them
have been published. On the other hand, algorithmically they offer little
beyond basic mathematical functions and random number generation (uniform
and normal). Few statistical and numerical algorithms have been published
in Java, and the numerous FORTRAN algorithms published in Applied
Statistics and elsewhere would be difficult to translate into Java.
JSC avoids these difficulties by providing the statistical software
developer with a Java library specifically designed for building statistical
applications. When completed, the JSC library will provide -
- All the high-level graphics you would expect, such as histograms,
boxplots and scatterplots; and low-level graphics that allow you to
easily build your own graphical displays by plotting in a natural coordinate
- Simplified versions of Java's interface components; such as menus,
sliders, dialogue boxes; and ready-made high-level components such as
data windows similar to those found in statistical packages.
- Basic functions and operations useful to the statistician; such as
sorting, ranking, gamma and beta functions; and procedures for evaluating
and differentiating mathematical functions input by the user.
- Statistical algorithms covering many areas of statistics: including
descriptive, traditional, non-parametric, multivariate, resampling and
Bayesian statistics; curve fitting and regression; distributions and
random number generation.
For detailed documentation of the JSC developed to date, see
the JSC API page. Note that this
documentation was generated from the current JSC source code
using Sun's Javadoc
tool: some knowledge of Java's terminology and hierarchical object-orientated
structure is required to fully understand and navigate it.
The current JSC library can be downloaded for non-commercial
use from the Download page.
The JSC project
The JSC project is more than just a library of components. The
library will be used to develop a variety of statistical applications
such as: open-source platform-independent general statistical packages;
specialist packages for non-traditional analyses such as Bayesian, resampling,
and graphical multivariate statistics; and educational simulations, animations
etc. All this software will be freely available for non-commercial use
from this web site in the form of Java applets or downloadable Java applications.
See the Examples page for examples
of software constructed using the JSC library.
This web site will also accept commissions for developing commercial
software, research-related software, or educational software to suit a
particular statistics course or learning environment. See the Contact
| This site is under construction
This site is still under development. The API, Download, and Examples
pages in particular are likely to have new material added over the
next few months.
New distribution-free tests and confidence intervals
Recent developments include the addition of several distribution-free
significance tests and confidence intervals. See jsc.tests
Recent additions to the Distributions package include several
noncentral distributions and the exact null distributions of some
distribution-free test statistics. See jsc.distributions.
CultureLab presented at Oxford conference.
JSC application, CultureLab, was showcased
at the Cultural Capital and Social Exclusion symposium,
St Hugh's College, Oxford, 8-10 January 2004. See CultureLab.