Programming for the Newton using Macintosh, 2nd ed.

Foreword by Walter Smith

If Newton is your first programming platform, congratulations: you won't have to unlearn as much. The rest of us are so used to the archaic baggage attached to traditional development systems that Newton can be a little confusing, just because of all the things you don't have to do to develop for it.

Here's a typical scene you may find familiar. The first thing you do when unpacking a new development system is find the C compiler and try to get it to work. Once you get it to compile "hello world", you start looking for clues on how to get a window up on the screen. After locating the header file you need, trashing memory and rebooting your machine a few times by failing to initialize a pointer or two, and typing in a surprising amount of code, the window appears. Now you can start to think about how you might resize it. Next week, maybe, you might be getting around to what you actually wanted to do.

Now consider the Newton experience. You sit down with Newton Toolkit and draw most of your application's user interface, including pictures, buttons, pop-up menus, and type-specific data fields. You download the application to a Newton and try it out to see if you like the feel. Once the interface looks good, you start to put some code under it, a piece at a time. Perhaps you save some time by dropping in some interface elements you've already used in your other Newton applications. Newton makes it easy to progressively prototype and try your application so you know you're headed in the right direction.

You'll do a lot without actually writing any code. When you do write some, it will be in NewtonScript. If you're accustomed to a low-level language like C++, NewtonScript will take some getting used to. You can't trash memory with dangling pointers, because there's no way to make one. You can't forget to dispose memory, or accidentally dispose it twice, because the system disposes it for you. You can make a specialized object without having to invent a new class just for it, because you don't need classes. The list goes on, as you'll see.

One of the first things you'll notice in Newton Toolkit is a huge palette of "view templates"--user-interface elements that are preprogrammed and waiting for you in every Newton device. They are fully functional: you don't have to tell the pop-up menu how to pop up. You just determine the behavior specific to your application. That means less code for you to write, less of your effort wasted, and a smaller delivered application.

Of course, it wouldn't matter how easy it was to develop for Newton unless the platform itself had something going for it. Newton is the leading platform for a new product category, with built-in features that include communications, intelligent assistance, handwriting and graphics recognition, persistent object storage with desktop data synchronization, and integrated e-mail, printing, and faxing. It all works on small, light, low-power hardware targeted at the professional and consumer markets.

Newton's future is bright because of the excitement and momentum in the third-party community. Apple is licensing the hardware and software technology widely, and the licensees are developing their own Newton devices with all kinds of capabilities. The dynamic nature of NewtonScript will make it easy for you to take advantage of these special features. Newton applications are inherently portable, which means your software can run on all of these products--even with different microprocessors.

The Newton world is young. If you have great ideas for Newton products, there's room for you to make them a reality. Fire up your Newton Toolkit and help us define the future.

Walter Smith
Newton Group
Personal Interactive Electronics Division
Apple Computer, Inc.
February 1994


An online version of Programming for the Newton using Macintosh, 2nd ed. ©1996, 1994, Julie McKeehan and Neil Rhodes.

Last modified: 1 DEC 1996