Title: Resurrecting Applets
1Resurrecting Applets
Eric Roberts Professor of Computer Science,
Stanford University ACM Java Task Force Chair
SIGCSE 2007 Symposium Covington, Kentucky March
10, 2007
2The ACM Java Task Force
The ACM Java Task Force was established in early
2004 with the following charter
To review the Java language, APIs, and tools from
the perspective of introductory computing
education and to develop a stable collection of
pedagogical resources that will make it easier to
teach Java to first-year computing students
without having those students overwhelmed by its
complexity.
The Task Force released Version 1.0 of its
materials in August.
http//jtf.acm.org
3Principles
4The Rise and Fall of the Applet Paradigm
In the early years of Java, applets were
responsible for much of the tremendous excitement
associated with the language.
Anyone using a computer who hasnt been in a cave
for the last year has heard of Java applets. Many
people believe that Java is useful only for
applets.
K. Mitchell Thompson. Tips and techniques for
Java (in Dwight, Irwin, and Niles, Using CGI,
1997)
5The Pace of Change
The biggest challenge involved in keeping applets
running lies in keeping up with the changes in
Java. Java evolves rapidly, and it is
difficult for anyonefaculty and browser
manufacturers aliketo keep up. Moving toward
plug-in strategies provides some insulation from
the changes, but the user is still responsible
for keeping those plug-ins current.
6Applets Are Incredibly Useful
The decline in the practicability of applets is
unfortunate, because they turn out to be
incredibly useful
- Applets make it easier for people developing
educational tools to demonstrate their software
on the web. The programs in the JTF Demo Gallery
all run as applets on the web. - The ability to save programs as applets allows
instructors to make interactive classroom demos
easily available to students. - Having all student programs run as applets make
it much easier for students to share their
accomplishments with their families and friends
at other schools.
7Reach Out and Touch Someone
Students love the ability to put their work on
their web site. Consider the following e-mail
exchange with a student last year
8Applets Are Not Going Away
The good news is that applets are extremely
unlikely to disappear entirely, mostly because
doing so is not in anyones interest.
- Removing applet functionality makes it impossible
to view web pages that use them, which would in
turn make those browsers less popular. - Taking out the code to support applets requires
work. Browser developers would surely prefer to
invest that effort in developing new features.
At the same time, the fact that relatively few
people are writing new applets that depend on
newer releases of Java means that developers have
no real incentive to keep current.
The bottom line is that applets will continue to
run as long as one is willing to maintain
compatibility with old versions of Java.
9How Old Is Old?
It is staggering, however, how old the stable
Java standard is. If you walk into essentially
any Internet storefront anywhere in the
worldyour local Kinkos, the massive
EasyInternetCafe outlets, a coffee shop that has
a few machinesthat machine will likely be
running the JDK 1.1 release of the Java runtime.
That means
- No Swing
- No collections framework
- No Java 5.0 generics
- No Scanner class
- Reduced functionality in many classes
10Outline of Our Strategy
- At no time did the Java Task Force ever propose
that students would write in anything other than
the latest version of Java.
- Initially, we had tried to write the libraries
themselves using JDK 1.1 so that it would be
possible to load them on older browsers. - We abandoned that strategy for the reasons I cite
in the paper - The code was too difficult to maintain
- Our code could not serve as a model for students
- Many people somehow believed that it was possible
to use the ACM Java Libraries only with older
versions of Java - It didnt actually solve the problem
- What we did instead is create an acm11.jar
library that reimplements the features from the
JDK subset using the JDK 1.1 model.
11The End