Java Statistical Classes
Home API Download Examples Articles About Contact

 JSC  Home Page

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.

Please read the Terms of use.

Why 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 traditional languages.
  • 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 for decades.
  • 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 effort.
  • 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 cost.
  • 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 in Java.

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 system.
  • 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 page.

 JSC   News
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 and

New distributions
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.

Copyright © Andrew James Bertie, 2005, all rights reserved. Terms of use