As early as 1997 I developed a suite of Java applets for use in calculus instruction. The main applet was the Grapher (gallery below) and specific calculus functions were supplied by related variants; the Riemann Sums Grapher and the Secant Line Grapher.
At the time, graphing calculators such as TI-85 were just beginning to become staples of calculus instruction at universities, and a couple of years earlier I had been part of a team tasked with reinvigorating calculus instruction at UNL with a number of curricular innovations, among which was use of graphing calculators.
Java applets provided the advantage that they could easily be used both in the classroom and at home or in college labs. The quality of the graphing was needless to say much higher than the low resolution of calculators at the time (smart phones wouldn't appear for another ten years!).
The syntax parser in the graphing applets was compatible the the syntax students were using in their graphing calculators, and also becaome the inspiration for the intelligent math grading in WebTests and Enterprise Diploma.
I used these applets in all my calculus classes from 1997 until the last class I taught at UNL, in 2010.