A virtual learning environment is more useful to the extent that students can ask a wider variety of questions within it. With the appearance of Javaenabled web browsers, it became possible to put small interactions in the form of Java applets within the browser itself.
Mathematical Applets are, however, a somewhat paradoxical solution to the problem of bringing interactive and live mathematical learning environments to students on the web. While applets make use of some of the most advanced and sophisticated technology available to the web, and they harness the power of a truly elegant and powerful language, they have placed the creators of these applets in the prehistoric conditions of the early '80s, where programmers had to build pretty much everything from scratch. You must do a fair amount of work to teach Java the meanings of expressions such as the cycloid formulas or complex polynomials. And if you want Java to graph a curve, you must teach it how to do that also. But teaching a computer is far more time consuming than teaching a human being. And if you happen to be teaching a few humans also, you may well wonder where you will find the time to do both.
So we see a proliferation of dedicated "appliances" on the web, each devoted to the illustration of some particular mathematical point, with very little  if any  communication among them. But it is precisely the possibility of communication among tools that can lead to the integrated experiences for students that can elicit new questions and arouse their curiosity. We saw a very simple example of that communication in the epicycloid microworld.
Of course, it is the virtue of Java that programmers can easily develop reusable class libraries that make possible an objectoriented approach to the development of mathematical applets  building them from components. But very few teachers have the time or the inclination to use Java in this most elegant way to place mathematical explorations on their own web pages. So they (and their programmers) often have to "reinvent the wheel" again and again to do such simple things as parsing input expressions, or drawing graphs.
We will see another pedagogically useful example of this communication in the Heron's Formula Interactive Web Book. A Mathwright Interactive Web Book is a microworld that is distributed over more than one web page. These books may feature internal navigation among the story pages, or they may not. Heron's Formula uses internal navigation to "prepare" an experiment on one story page, and then to "perform" the experiment on the next. Later, we will visit a microworld called Cardano that is distributed across 12 web pages but that does not use internal navigation at all.
Interactive Web Books such as Heron and Cardano have in common the fact that they unfold a dynamic story. In general, the author of such a story will have an easier job if all of the tools needed to support that story are available in one place. In this way, the author can reuse and repurpose these tools as the story unfolds. While the advantage for the author is obvious, the pedagogical advantage for readers is less obvious. Such Interactive Web Books, built on a coherent and straightforward functional plan, lead to richer experiences for readers. Readers are invited to participate in the story by

making and testing hypotheses,

preparing and viewing simulations  such as the wheel rolling on a wheel, or the ones we'll see in Heron  and, in general,

by asking their own questions.
These Interactive Web Books also benefit from the new, easytouse, presentation quality, mathematical typesetting tools (such as Design Science's MathPage™) that are becoming available. We used that tool to create the formulas on the preceding page, as well as in both Heron and Cardano. Until MathML becomes available in your browser, you will have to live with GIF images of mathematical formulas.
One of the charming and powerful features of Java is the fact that it is "objectoriented." This means that Java programmers may do things more easily than programmers did in the past, because they can first create a world of conceptually simple objects and their relations, and can then design their programs by thinking more abstractly  at the level of the objects themselves  than they would have been able to do in the past.
MathwrightWeb, the program that shows these microworlds, is a Java Application (running within an ActiveX Control). Why Java? We chose it precisely because it easily supports an objectoriented interface both to the author and to the reader. For a mathematical storytelling program, the teacher/author should be able to "converse" with the program at a level of abstraction that presupposes computer algebra style representation, parsing, simplification, and comparison of algebraic expressions. The system should "understand" rational, complex, and decimal number types, and it should "know" how to create functions of one or several variables, either real or vector valued. One should be able to define vectors, matrices, sets of numbers or names, differential equations, geometric objects, and so on, easily and informally, and always as "mathematical objects." You might like to visit our Definitions of Terms if you have not already done so, for clarification.
In this sense, one might say that Mathwright is "mathematicalobjectoriented." This is a great advantage over raw Java, but it is brought to you by Java itself. The Heron IWB will illustrate that with a few "geometric" objects that it allows the reader to create and manipulate.
Of course, it is also important that the language make available screen objects that display these mathematical objects, such as graphing windows that "know" how to draw graphs of functions and curves, and that can display sprite animations or draw and manipulate geometric objects. There should be windows for displaying correctly mathematical formulas, exact rational (or decimal) matrices, pictures, and database tables (like spreadsheets) for input and output of data. Along those lines, of course, there should be other input gadgets such as text fields, sliders, check boxes, and hotspots.
All of these tools must be tied to builtin programs that handle such tasks as solving equations, differentiating and integrating functions, comparing algebraic expressions, solving differential equations, inverting matrices, transforming geometric objects, and so on. Given such a palette of objects, at such a level of abstraction, teachers have been able to create colorful, interesting, and engaging interactions and simulations as Mathwright Microworlds.