So the other day I got a lovely new toy: An EO 440 Personal Comminicator running the Go PenPoint operating system! I haven’t been able to play with it yet, but I’ve learned a lot about how to develop for it. #retrocomputing #penpoint
I’ll post a picture once Mastodon lets me. In the meantime, a little about the platform: The EO 440 is from the early 1990s, uses a 20MHz RISC CPU (AT&T Hobbit), a grayscale display, and mine has 8MB of RAM (max. 12) and a 20MB SCSI hard disk. The OS is entirely custom, originally targeted the 80386, and is built around an extensible OO framework using dynamic dispatch and written in C. #penpoint

The most interesting thing about it to me is that the way you write software for it is basically Objective-C—but without the language front-end! So you have to write everything as

OBJECT win;
WINDOW_NEW_PARAMS wp;

wp.title = "Hello, world!";
wp.closeBox = YES;
win = ObjectSend(msgNew, clsWindow, &wp);

instead of

Window *win;
win = [Window newWithTitle:"Hello, world!" closeBox:YES];

and making new classes is a nightmare of creating various tables. #penpoint

It really seems as if they’d planned to use Objective-C, wrote their own runtime, and then proceeded to use that for everything without finishing a front-end translator to do all of the runtime bookkeeping for the developer. #penpoint
Maybe the picture will work now!