AppWare

AppWare was a rapid application development system for Microsoft Windows and the Mac OS based on a simple graphical programming language. AppWare was developed by Joseph Firmage and marketed by Serius, a company started by Firmage in 1989. The AppWare product was originally known as Serius Developer before Novell purchased it in 1993 during Ray Noorda's period of intense empire building. Immediately after the acquisition AppWare was positioned as one of the "three pillars" of Novell's long-term strategy, the others being NetWare and UnixWare, but the product was quickly killed off when Noorda was forced out of Novell in 1994. It was sold off to a small group of its original developers in 1995, who reformed as Network Multimedia and sold AppWare under the unfortunate name Micro Brew for a short time before simply disappearing.

Applications in AppWare were constructed by dropping icons representing pre-rolled objects onto a worksheet, and then connecting them together to represent message flow between them. Some of the "objects" represented basic logic statements, while others represented GUI widgets such as text editors. The overall logic for any particular object, say a text editor in a window, was constructed as a series of chains of these object connections, fired up in response to an event. At a high level the system is similar in concept to HyperCard or Visual BASIC, in that the program's logic is strongly associated with the object that sends some initial event.

AppWare built true "double clickable" applications that ran natively on either Windows or the Mac. Unlike most systems of the sort, the applications did not end up looking generic, and generally behaved as first-class citizens of the host system. However the applications were also similar to HyperCard and VB in that they generally did not support multi-window operation or the creation of new documents. AppWare applications consisted of a fixed number of forms and windows, a side effect of its lack of a NEW-type operator for creating new objects at runtime.