This is interesting. I wonder what was the rationale for a design software company to develop their own programming language.

> As a technical aside, most versions of FreeHand (save the most recent ones) were written in a home grown language, that was humorously, and appropriately, called OOPS (Object Oriented Programming System). It was basically a preprocessor that generated C code that was then compiled to machine code.

In the late 80s lots of people were doing these OOP -> C things, often literally using the C preprocessor. The C++ compilers were still early (and most of them effectively preprocessors) and (as usual) not everybody agreed C++ was even the way to do OOP.

> In the late 80s lots of people were doing these OOP -> C things, often literally using the C preprocessor. The C++ compilers were still early (and most of them effectively preprocessors)

IIRC, some early C++ implementations were described (by their implementors) as C++ => C preprocessors.

True. Stroustrup's first implementation Cfront [1] was a C++ to C translator:

> Cfront was the original compiler for C++ (then known as "C with Classes") from around 1983, which converted C++ to C; developed by Bjarne Stroustrup at AT&T Bell Labs. The preprocessor did not understand all of the language and much of the code was written via translations.

cppfront [2] aims to do the same for translating C++ to C++:

> Cppfront is an experimental compiler from a potential C++ 'syntax 2' (Cpp2) to today's 'syntax 1' (Cpp1), to learn some things, prove out some concepts, and share some ideas.

[1] https://en.wikipedia.org/wiki/Cfront

[2] https://github.com/hsutter/cppfront