Before committing to develop a plug-in, it's useful to have some idea of the effort involved and the time it
will take. Keep in mind that the time estimates discussed below will depend on the experience level of the programmer.
Before developing a plug-in, a programmer must have a working knowledge of the Java programming language and some knowledge of
Swing, the Java GUI toolkit. These are documented in a number of books and on the
JavaSoft Web site.
Tab widget plug-ins are the easiest type of plug-ins to develop. We suggest that you develop
a tab widget plug-in first to see how things work even if your real goal is to develop some other sort of plug-in. If you know
how to program in Java, you can develop your first simple tab widget plug-in in less than a day. Such a plug-in might consist
of just a big button that pops up a dialog to display the number of classes in the knowledge base. What you can do on a tab
is very unconstrained, so it may take you a very long time to develop your particular tab. Nevertheless, to get something simple
up and going the first time is less than a day's work. After you've done this once you can probably do the next one in less than
an hour.
Slot widget plug-ins are more difficult than a tab widget plug-in. There is a protocol
that a slot widget must obey, a number of methods that must be implemented, etc. Experienced Java programmers can develop their
first simple slot widget plug-in in a day or two.
Back-end plug-ins are quite a bit more involved than either tab or slot widget plug-ins.
Fewer back-end plug-ins have been developed so we have less experience with the time required. A week would be a reasonable
lower bound on the time required to develop a plug-in of this type.