> Could someone explain the differences between a reference implementation and
> a production.
It's a distinction in code quality, similar to the difference between
beta software and a full release. A reference implementation is an
implementation which is supposed to indicate how a paper standard
should operate. It would typically be built to track the progress of
the standard, so timeliness of implementation is a higher priority than
quality and reliability. A production release is an implementation which
is supposed to provide a reliable implementation of a standard.
The distinction in code quality carries through to the kind of support you
expect or are able to receive. For example, the JDK Production release
for Solaris is provided by Sun's Solaris division and is bundled with
Solaris 2.6. If you find a bug in it and you've paid your support contract
then you can ask for support and they should send you a fix for it. But
if your bug is something like "it doesn't support the latest feature"
then you may find your fix is a lower priority.
On the other hand, if you get the JDK Reference release from Sun's Java
division then you get a different kind of support. If you tell them
that ODBC access on Windows is broken they may well tell you to live
with it (or just not respond). If you tell them that you think the
implementation of a new API doesn't match the specification then they
may be more interested.
I suspect that the reference and production JDK releases from Sun are
pretty closely related because the JDK reference implementation _is_
actually pretty high quality in most areas. When a new JDK 1.1 reference
release is posted the Solaris production release is typically pretty
close behind, presumably because the reference->production patches don't
change much between minor releases.
-Mark.