IntegraWorks - My (unrealistically big) idea for a program

Brief description

This program is a plug-in based word processor. You can embed equations in your text, without having to switch to an equation editor. You can include spreadsheet results, commutative diagrams (math), pictures, movies, etc., etc. The possibilites are just about endless, because each feature will be implemented in a separate plug-in. Plug-ins can be written by any developer, not just the authors of IntegraWorks.

Another good reason for using plug-in technology is nesting. For example, a math equation can be inside a commutative diagram, which in turn is embedded in your document's text. Another example would be a math graph, which can contain equations in its heading and axis labels. OK, so I have a bias towards math!! But there are lots of other examples of nesting too.

Just imagine it! A word-processing program that handles just about anything!

Similarities with other programs

As I envision this program, it will have similarities to a number of products currently available, but this program will combine them into a "conceptually integrated" program (to use Fred Brooks' terminology). This program will combine the best features of three programs that are known to me: TeX, Microsoft Word, and Claris Works 3.0.


Microsoft Word


Every imaginable plug-in

I propose many different types of object editors. Here is a list of objects that I have thought of. This will give you an idea as to how wide a range of objects is possible - my list is a mere beginning! But actually the list doesn't stop there. Lots of other features can be implemented as objects - many you wouldn't think of as objects at first.


I would implement this in parts as follows: Having the line-breaking "engine" separate from the text module means that other objects such as formulae can also be broken across lines if that is appropriate.

I would use C++ for this, since speed is essential, and the task is well suited to object programming. I would start off doing it for the Mac, but when it is working there, I would port it to Windows 2000 (yeah, I assume that the new century will be in before I'm anywhere near done!).

The code for each type of embedded object should ideally be in a separate plug-in file, so that new types of objects can be created by other software developers. The C++ interface for writing object editors should be well documented, so that it is easy for developers to write these.

Click here to go to my Computing Web-Page

Last updated: Sept 22, 1998