The NetWorKs project classes are robust, easily modified, and simple to use. The only observed difficulties is that the NetWorKs applet runs rather slowly on older machines and on machines with less memory. This might be corrected by future revisions which will eliminate some less efficient code.
Using Java made it relatively easy to write a platform independent program. There were some problems with the FileDialog class on the Sun platform. Several of these were resolved when the Sun stations were upgraded over spring break, but the EndsWithFilter still does not work. The FileDialog class will not fetch file names on the author's Pentium computer which runs Windows 95 and the Java Development Kit provided with teach yourself JAVA in 21 days. Another problem is that the Macintosh implementation of the Java awt does not layout graphic objects in an applet in the same manner as the Sun and IBM platform implementations. This causes problems with the NetWorKs applet algorithm control panel layout. The NetWorKs application has not yet been tested on a Macintosh.
In comparison with similar programs available over the Internet, NetWorKs is typically less modal. Most of these other programs use buttons or lists to initiate modes such as add vertex, delete vertex, add edge, etc. Also, most of these illustrate a particular algorithm where NetWorKs is designed to illustrate as many as desired.
Carla Laffra has a nice Java applet illustrating Dijkstra's algorithm [7]. An interesting feature is that the edge weights/costs are adjusted by sliding an arrow along the edge. She has the user press the shift key while pressing the mouse button to move vertices. Users press the control key while clicking on a vertex to delete the vertex. The NetWorKs program avoids any use of the keyboard except for labeling vertices. And since default labels are provided automatically, users are not required to use the keyboard at all. This makes NetWorKs easier to use for the new pointer-based web browsers.
Russ Albright, Joydeep Ghoshal and Jian Wang wrote a nice Java applet which implements Prim's algorithm for finding minimum weight spanning trees [1]. The applet has buttons which initiate modes, and vertex movement is animated. The algorithm runs to completion rather than illustrating each step.
Skreekanth Nagarajan has a ``Bayesian Network Editor'' which uses buttons to initiate various modes [9]. One very interesting feature is that users may save networks on the server--something applets are not typically allowed to do for security reasons.
There is a ``Path Calculator'' which calculates shortest paths, available at Princeton University [12]. It uses a list to initiate modes. Vertices may be moved, but the motion is not animated. Also, the entire shortest path is calculated and the result is displayed; it is not possible to illustrate each step of the algorithm. There are two similar projects at Princeton based on fixed ``land'' maps. These are of course very different from NetWorKs, but are interesting applications [11] [13].
Several modifications to the NetWorKs classes are being considered. Curved edges might be better for displaying dense networks, and would allow vertices to be fit to a ``grid''. It would be nice to be able to select a group of vertices or edges and adjust the attributes of the entire group. A number of methods use String objects when StringBuffer objects would be more efficient. Also, the GraphAlgorithm extensions should not be part of the GraphStuff package. This allows more access to NetWorKs internal objects than appropriate. There are a few places that should really have ``Are you sure?'' dialogs, but these will have to wait until the applet clear button has been replaced with a file button which brings up a list of graphs that may be downloaded over the Internet. NetWorKs should also provide a help feature or at least some documentation on how to edit graphs. And of course, there are many more graph algorithms left to illustrate.