Skip to main content

One of the First Java Applications

Posted by alexeyp on April 9, 2007 at 11:58 PM PDT

Curious how much Java is a test-driven technology ?

Few words for a background.

The Java TM Compatibility Kit (JCK) is
a test suite, used to
verify if the Java standard is correctly implemented. The first JCK
came out together with the first JDK from SUN, now this effort evolved
into the industry-wide Java
Community Process
.

The JavaTest TM harness is a test
monitor, used in first versions of JCK, then across multiple Java
Technology Compatibility Kits (TCK), now evolved into a general
purpose open
source test harness
.

How it started

With permission of Jonathan
Gibbons
, who was
around when Java was born, here is his story of the JavaTest childhood:

JavaTest started round about JDK 1.0.2, JCK 1.0.2a was
applet-based and did not use JavaTest;  JavaTest was
introduced in JCK 1.0.2b.

It definitely was not the first application written in Java,
but it is true that testing was important to Java from the beginning.
JavaTest is sufficiently old that we had to develop many GUI widgets
ourselves, and one of the early JavaTest developers ( href="http://research.sun.com/people/prinzing/">Tim Prinzing)
went
on to become a significant member in the Swing team. It is probably
reasonable to say that Tim pioneered light-weight components.

Curious how it looked like back then at early JDK times ?
Check href="http://blogs.sun.com/jjg/resource/jtpics/jt1-main.png">here.

You can see that testing is one of keys that
brought Java platform to where it is now.
Java's way of compatibility testing, that is having high quality
TCK required to pass to get Java logo,  is how Write Once Run
Anywhere is
achieved,  it is the cost of application portability and
platform
standardization.

On the road

Inspired by the conversation at href="http://weblogs.java.net/blog/robogeek/archive/2007/02/an_open_quality.html">David
Herron's Blog, I was
looking for analogy to illustrate the value
of compatibility testing
in the Java ecosystem, here it is - Java is
a road,
compatibility testing is its pavement.
Applications
are vehicles and the hard cover on the road makes it
possible to drive
fast. 

For Java ME platform, its  href="https://meapplicationdevelopers.dev.java.net/fragmentation.html">fragmentation
is a freedom to
choose
number of wheels, engine, use a bicycle or a truck. Another
part, the 'dark side', is where the road cover has holes, caused by
bugs in specification and implementations, test coverage problems.
Services are built
around the road to take care of vehicles and holes, like  href="http://java.sun.com/products/javadevice/index.jsp">JDTS
and Java Verified,
while the road has its pavement (TCKs),
differentiating it from deserts, forests and swamps.

Related Topics >>